Changes

Summary

  1. Implement a super-interface for ModifierModule for just a module with hooks (details)
  2. Implement modifier priority command (details)
  3. Implement basic modifier, helper to replace raw modifier usages (details)
  4. Disallow boon of sssss and strong bones from working on non-helmets (details)
Commit 50def7ef579e3180828e911842aafe634b55615c by KnightMiner
Implement a super-interface for ModifierModule for just a module with hooks

Will be useful in simplifying ModifierHookMap usages without requiring it be serializable. May have other usages in the future. Adding to 1.18 instead of 1.19 as it will make documenting this stuff easier
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/util/ModifierHookMap.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/modules/ModifierModule.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/modifiers/modules/ModifierHookProvider.java
Commit 563cb6b87dff17ba0bed2675d7b4b106e860500d by KnightMiner
Implement modifier priority command

Ths commit introduces a subcommand "/tconstruct report" for "/tconstruct report modifier_priority", it also moves modifier_usage to be a subcommand of the same (which will make it nicer to tab complete "/tconstruct modifiers"
Useful for determining the order things with the same hook will run. Unfortuantely will have limited benefits until 1.19 when modifier hooks are mandatory (as the report won't show overrides of non-modiifer hooks)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/ModifierHooks.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/shared/command/TConstructCommand.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/shared/command/subcommand/ModifierPriorityCommand.java
The file was addedsrc/main/java/slimeknights/tconstruct/shared/command/argument/ModifierHookArgument.java
Commit eda8b43782d6f367e96ce2d971ea6bc3dc8c3188 by KnightMiner
Implement basic modifier, helper to replace raw modifier usages

Since its builder based its a bit bulkier than some constructors, but also more flexible. Still have a couple things I want to decide before full
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/util/ModifierHookMap.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/modifiers/impl/BasicModifier.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/dynamic/ComposableModifier.java (diff)
Commit 7e5cf1203308da7f4db76e5465c113a99f40a2e2 by KnightMiner
Disallow boon of sssss and strong bones from working on non-helmets

While cleaning this up in the breaking changes branch, noticed a couple of bugs that would happen if used on other slots so figured switching to the simplier logic with the limited slot is the best play here

* Boon of Sssss and Strong Bones both are restricted to helmets in implementation now, as they had some functionality that required hemets anyways
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/skull/BoonOfSssssModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/skull/StrongBonesModifier.java (diff)