Tinkers Construct

Tinkers Construct

160M Downloads

Breaking changes and API changes for 1.19

KnightMiner opened this issue ยท 0 comments

commented

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 to ModifierHook.
  • 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 of RecipeResult, 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 that IdParser 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 ModifierHooks
  • Remove redundant dynamic modifiers
  • Make validate return Component instead of ValidatedResult
  • Migrate durability bars to use the 0-13 vanilla ranges
  • Narrow return types on ToolStack methods to use NamespaceNBT instead of ModDataNBT when reasonable
  • Add starting tool modifier slots to volatile data instead of persistent data, far more stable
  • Remove toolbelt NBT migration
  • Rename UnarmedModifier to AmbedextrousModifier
  • Remove old options in the modifier serializer
  • Remove old aqua affinity hooks

Tags

  • Rename tconstruct:modifiable/unarmed to tconstruct:modifiable/melee/unarmed
  • Rename tconstruct:modifiable/melee to tconsturct:modifiable/melee/held
  • Rename tconstruct:modifiable/melee_or_unarmed to tconstruct:modifiable/melee
  • Rename tconstruct:modifiable/staffs to tconstruct: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!)