Breaking changes and API changes for 1.19
KnightMiner opened this issue ยท 0 comments
To anyone discovering this issue looking for news about 1.19, see the FAQ. This issue is simply a TODO list, not an indicator of update progress.
API changes that can be implemented on 1.18.2
These changes need to be done before a 1.19 release, but can be implemented on 1.18 with deprecations instead of removals
- Migrate all non-essential methods on
Modifier
toModifierHook
. - Implement composable dynamic modifier loader
- Fix or remove EFLN
- Have toolstack stop deleting item stack hide flags
- Make slime islands proper features, with a base feature and configured features, instead of 5 hardcoded base features
- Look into using GameTest for automated tests, not sure how long our method will keep working as mojang changes bootstrap (plus world sensitive tests would be nice to have)
Breaking changes for 1.19
- Books: Remove all uses of named section transformers in favor of generic section data transformers
- Remove
ValidatedResult
in favor ofRecipeResult
, Consider keeping the original name, the generics is the big thing - Ditch fixed materials in
ToolBuildHandler
, we have a better method now and its a lot of extra code - Cleanup unneeded methods on various
ResourceLocation
subclasses now thatIdParser
is a thing.
Modifiers
- Fully migrate tool definition data to hooks
- Support merging on tool definition data
- Move modifier restrictions to part of the modifier definition
- Remove the old modifier hook system entirely
- Remove all hooks that have been migrated to
ModifierHook
s - Remove redundant dynamic modifiers
- Make
validate
returnComponent
instead ofValidatedResult
- Migrate durability bars to use the 0-13 vanilla ranges
- Narrow return types on
ToolStack
methods to useNamespaceNBT
instead ofModDataNBT
when reasonable - Add starting tool modifier slots to volatile data instead of persistent data, far more stable
- Remove toolbelt NBT migration
- Rename
UnarmedModifier
toAmbedextrousModifier
- Remove old options in the modifier serializer
- Remove old aqua affinity hooks
Tags
- Rename
tconstruct:modifiable/unarmed
totconstruct:modifiable/melee/unarmed
- Rename
tconstruct:modifiable/melee
totconsturct:modifiable/melee/held
- Rename
tconstruct:modifiable/melee_or_unarmed
totconstruct:modifiable/melee
- Rename
tconstruct:modifiable/staffs
totconstruct:modifiable/ranged/staffs
Resources
- Cleanup the number of factory interfaces on recipes, notably casting recipes
- Replace predicates with the Mantle classes, generics prevent doing so now
- Consider recipe class renames for clarity, since we have a lot more types now
- Remove condition backwards compat from
ModifierSetWorktableRecipe
- Decide whether I like the tinker station or modifier workstation handling of result tools better, and be consistent
New forge features on 1.19 to use
- Enchantment override hooks on item stacks as a modifier hook
- Fluid API (fluids will finally do something!)