Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking changes and API changes for 1.19 #5064

Open
29 of 35 tasks
KnightMiner opened this issue Jan 17, 2023 · 0 comments
Open
29 of 35 tasks

Breaking changes and API changes for 1.19 #5064

KnightMiner opened this issue Jan 17, 2023 · 0 comments
Labels
1.19 Issue affects 1.19 Technical Pull requests making changes to workspace or targeted versions

Comments

@KnightMiner
Copy link
Member

KnightMiner commented Jan 17, 2023

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!)
@KnightMiner KnightMiner added the 1.19 Issue affects 1.19 label Jan 17, 2023
@SlimeKnights SlimeKnights locked and limited conversation to collaborators Jan 17, 2023
@KnightMiner KnightMiner added the Technical Pull requests making changes to workspace or targeted versions label Jan 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
1.19 Issue affects 1.19 Technical Pull requests making changes to workspace or targeted versions
Projects
None yet
Development

No branches or pull requests

1 participant