This snapshot is possibly one of the most impactful for API we have ever had. This PR is an inital port to support 22w06a, stuff will be missing and broken.
# Removed modules:
- fabric-mining-levels-v0 - Previously deprecated
- fabric-object-builders-v0 - Previously deprecated
- fabric-tag-extensions-v0
- fabric-tool-attribute-api-v1
# Modules with API breaking changes:
- fabric-biome-api-v1
- fabric-content-registries-v0
- fabric-data-generation-api-v1
- fabric-mining-level-api-v1
- fabric-object-builder-api-v1
- fabric-resource-conditions-api-v1
- fabric-structure-api-v1
# Impactful API changes:
### fabric-object-builder-api-v1
- Removed - FabricBlockSettings.breakByHand
- Removed - FabricBlockSettings.breakByTool - Previously deprecated
# Notable changes
- fabric-registry-sync-v0 moves vanilla's new registry freezing to a later point in time, allowing mods to add to the registry during init.
# Known issues:
- ServerBugfixMixin used to fix https://bugs.mojang.com/browse/MC-195468 has not yet been ported.
* Mining Level API, part 1
* Fix incorrect netherite mining level in MiningLevelManager docs
* Add some format checks in dynamic mining level tag checking
* Add mining level API test mod
* Grammar
* Add cursed basic support for the tool attribute api
* Fix tool attribute JD
* Add proper compat for tool attribute api
Also fixes the remaining bugs in it!
* Update license headers
* stuff
* better comments
* more test mod work
* more
* Fix test mod
* i'm done with this module
* Address some code review things
* Use Reference2IntMap (basically IdentityHashMap for int values)
* Prefix mixin handlers with fabric$
* Add missing license header
* Update fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/block/FabricBlockSettings.java
* Resolve liach's comment
* Update to use TagFactory
* Write to the trade map directly
* Add warning when TradeOfferHelper#refreshOffers is called
* Correctly use synchronized, just in case
* Add null check - PR should be ready for merge now
* Make ctor private to hide it from javadoc
* Add custom value denoting module lifecycles.
* Make the module validation work.
My hand has been forced - we must use buildSrc since JsonSlurper is not available in main buildscript.
* Apply task to each project and dont cross projects
* A horrible hack
* Wait what
* It works now.
* Not needed
* Drop unneeded maven repo, cache map lookup
(cherry picked from commit daa38b3d82)
* Add helper methods to create custom villager types.
* Rename biome method
* Make it register and register the instance of the villager type.
* Javadoc 2
* Add texture javadoc
* Boost to Loom 0.5
Add null related annotations
* Rearrange nullable to be overline
* Fix anno sorting for picky
* Add imports
* Address feedback
* Fix import
* Better consistency with vanilla mobs
* Added a new method for just tracking distance
* Renamed param names
* Update FabricEntityTypeBuilder.java
* Updated v0 for backwards compatibility
* Updated descriptions and parameter names of FabricEntityTypeBuilder
* Added compat with new builders
* Style fix
* Fix style again
* Added backwards compat
* Add ability to define default attributes within the entity type builder.
* Update fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/entity/FabricDefaultAttributeRegistry.java
Co-authored-by: Pyrofab <redstoneinfire@gmail.com>
* Add ability to specify spawn restriction. Add a Living and Mob builder to handle attributes and spawn restrictions seperately from default builder.
* Let's not cast like a maniac
* Add misc overloads for living builder
* Add a few null checks
* Allow factory to be defined in builder
* Make spawn group a builder parameter
Co-authored-by: Pyrofab <redstoneinfire@gmail.com>
The lower methods in the class are commented with their categories:
`FABRIC DELEGATE WRAPPERS` for additional methods to allow editing fields not actually exposed in vanilla.
`FABRIC HELPERS` for methods to handle things like mining levels.
Per these two categories, the new method does not belong in `FABRIC HELPERS` and has been moved accordingly
* Add Object builders for simplifying the process of creating villager professions and point of interest types.
* Move everything to new object-builders-api
* flatten a bit down
* a few javadoc changes
* More JD tweaks
* Actual support
* Remove this useless mixin
* Resolve some issues
* Remove duplicate entries
* maybe?
* fix max breaking speed
* choose an item that is the closest
* Set version to 1.1
* better docs remove stuff
* deprecation doc and no todo comments
* Check if block has valid mining level
* javadocs
* Most of the issues resolved
* Some more javadoc and resolve some issues
* Forgot to change order for these
* Adds post process method to DynamicAttributeTool
Fixed going to vanilla again to query
Fixed tool mining level < 0
Fixed vanilla items on modded blocks not working
Renamed taggedToolHandlerInvoker to toolHandlerInvoker
Renamed entries to ENTRIES
* New comparision method for modded tools to vanilla blocks
* Remove useless mixins and use getMaterial().getMiningSpeed to support more tools.
* Simply mixin
* Some useful javadocs
* Fix license
* Bump fabric-object-builders-v0 because we are good
* Bump version of fabric-object-builder-api-v1 because we are nice
* Resolve some issues
* a
* remove vanilla tools vanilla blocks thing ok
* descriptive
* Get the faster speed instead
* Rename ModdedToolsVanillaBlocksToolHandler
* Remove tri state
* Fix compile errors
* testmod
* fix formatting
* fix testmod javadoc
* forgot to license format testmod
* Bump to 1.1.0
# Conflicts:
# fabric-object-builder-api-v1/build.gradle
# fabric-tool-attribute-api-v1/build.gradle
# fabric-tool-attribute-api-v1/src/main/java/net/fabricmc/fabric/api/tool/attribute/v1/DynamicAttributeTool.java
# fabric-tool-attribute-api-v1/src/main/java/net/fabricmc/fabric/mixin/tool/attribute/MixinItemStack.java
# fabric-tool-attribute-api-v1/src/main/java/net/fabricmc/fabric/mixin/tool/attribute/MixinPlayerInventory.java
This was done to keep mod compat and will be removed very shortly. I dont think they were used by many mods (only added in a recent 1.16 snapshot) so I think this is the best course of action.