* Improve loot table API
Alternative to #629.
- Deprecates all classes and methods that use outdated Yarn names.
- Adds FabricLootTable and FabricLootTableBuilder to replace
the LootSupplier naming variants.
- Deprecates LootEntryTypeRegistry and LootJsonParser
as their functionality is exposed in vanilla now.
- Adds methods to FabricLootPoolBuilder for working
with collections as builder parameters.
- FabricLootPool and FabricLootTable/Supplier now return immutable lists
instead of modifiable fixed-size ones.
Still WIP: LootTableLoadingCallback uses the deprecated FabricLootSupplier.
Update fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootTableBuilder.java
Co-authored-by: i509VCB <i509vcb@gmail.com>
Fix compilation
Create loot table API v2
Move incorrect classes and revert unnecessary change
Add test for replacing loot tables
Document FabricLootPools
builder() -> create()
Add accessor for LootPool.bonusRolls
Add loot pool builder method for bonus rolls
Use Blocks.DIRT.getLootTableId() instead of raw string in v1 loot test mod
Make links in deprecation docs cleaner
Make FabricLootPoolBuilder.copyFrom(pool, true) also copy bonus rolls
...and mention it in the javadoc
Remove copyFrom from v2 builders
It seems like a maintainability mess if Mojang ever decides
to extend loot tables, and the chosen boolean flags are arbitrary.
It also doesn't really have use cases apart from the internal use
in the copyOf methods, and even then users can replicate its functionality
with the other API methods.
Rename 'supplier' to 'table' in LootManagerMixin
Add 'stable' lifecycle to loot-table-api-v2, deprecate v1
Add internal comment for implementors about updates
Cancel all remaining callbacks when a loot table is replaced
Remove unused shadowed logger from LootManagerMixin
Migrate subproject versioning to new system
Start the AW migration
Update test mod
* Use interface injection
* Fix some issues
* Remove outdated bonusRolls test from LootTest
It's a vanilla feature now.
* Create transitive access widener module
* Replace LootTableLoadingCallback with two events
* Use friendlier exception message
* Add resource source tracking
* Add loot table sources
* Add resource pack source for DefaultResourcePack$1 (anon resource)
* Add license header
* Make FabricResource an internal API in resource loader
* Remove my TAW module
* Add loot table-related TAWs
* Run CI
* Fix LootUtil.determineSource giving null values
* Clarify LootUtil comment
* Rename loot-table-api => loot-api + minor comment changes
* Add README
* Fix mixin file name
* Use ImmutableMap.Builder instead of HashMap.computeIfAbsent in loot event impl
* Prefix accessor methods with fabric_ to prevent conflicts with loot v1
* Document mixins
* Document mixins more extensively
* Improve NRMMixin comments
* Change weird wording in FabricResourceImpl
* Minor updates
- Support new built-in mod respack source
- Fix ResourceMixin comment
- Add more docs to LootTableEvents.MODIFY
- Add package-info
* Add license header
* Add framework for common-tags-v1
* Add javadoc to fabric tool tags
* Fix wrong package arrangement
* Add some more tags
* Add more biome tags
Thanks to TelepathicGrunt for the suggestions
* Update fabric-common-tags-api-v1/src/main/java/net/fabricmc/fabric/api/tags/v1/CommonEnchantmentTags.java
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
* Update fabric-common-tags-api-v1/src/main/java/net/fabricmc/fabric/api/tags/v1/CommonEnchantmentTags.java
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
* Clarify enchantment tags
* Add no-shulker tag
* Add minecart tag
* Begin work on datagen and populating tags
* Add bucket tags
* First pass at populating biome tags
* Add boat tag
* Fix missing inclusion of f:shears into c:shears
* Hide fabric tool tags in datagen
* Add weapon damage enhancement tag
* Change impl package name to be inline with rest of fapi
* Rename enchantment tags
* Some cleanup
* Populate blocktag datagen
Remove crops tag
* Add javadoc links to vanilla counterparts
* Move datagen to its own sourceset
* Fix package names for checkstyle
* Populate more entries
* Remove exclusion tag
* Add license headers
Fix checkstyle
* Add missing nether quarts to ores tag
* Use `worldgen/biome` instead of `biomes` for biome tags
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
* Manually include all biomes for overworld
* Remove ancient debris from NetheriteOres
* Add and populate glass tags
* Add and populate movement enhancement
* Break up item tags
* Add armour damage reduction tag
* Add missing ore and related tags
* Fix quartz tags
* Add floral tag
* Add golden carrot
* Correct some biome tag issues
* Separate SNOWY_PLAINS and PLAINS
* Add SNOWY tag and remove snowy biomes from ICY
* Correct enchantment tag
Remove silk touch tag
* Fix more biome issues
* Add deep and shllow ocean tags
* Add no-move tag
* Remove netherite ores
* Add shulker tags
* Add raw ore
* Add dye tags
* Fif dye tags
* Fix typo
* Document some biome tags where the naming may not be clear
* Remove tag mirroring for blocks and items
* Rename module
Remove unused methods
* Rename impl package
* Rename packages and module
* Rename folder
* Rename api classes
* Add generateResources task to cover all resource generation tasks.
* Add generated tags to repo
* Fix ocean tag excluding shallow ocean
* Iterate registry to generate foods tag
* Remove cache, add to gitignore
* Rename generated folder
Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Add transitive AW module with block constructors
* Add various registries to transitive AW module
* Fix module name in README, add skip flags to class reading
* Add reasons for TAWs, document Block ctor finding algorithm
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.