Changes

Summary

  1. Implement tags for holdable armor (details)
  2. Move logic that clears fast item use into interaction handler (details)
  3. Implement active modifier system (details)
  4. Migrate tasty to the improved logic (details)
  5. Implement blocking modifier and shield stats (details)
  6. Add option for tools to have arbitrary modules registered as part of the definition (details)
  7. Implement tool definition module for changng interactions (details)
  8. Implement modifiable staff item (details)
  9. Fix stutter when blocking or eating a tool (details)
  10. Implement travelers shield (details)
  11. Add tool blocking predicates to all melee weapons that can receive the blocking modifier (details)
  12. Implement slime staffs (details)
  13. Tweak protection modifiers (details)
  14. Add recipe for blocking modifier (details)
Commit f0e36d0fc8b821e1a519f2f185abb6fb115d3377 by KnightMiner
Implement tags for holdable armor

Will be used for shields shortly, and eventually staffs
Holdable armor triggers most modifier hooks as if it were worn armor, but only triggers counterattack when blocking (making counterattack shield exclusive)
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/armor.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/data/ModifierMaxLevel.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/data/VanillaMaxLevel.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/defense/revitalizing.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/armor/ThornsModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/logic/ToolEvents.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/armor/UnarmedModifier.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/springy.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/armor/ProtectionModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/armor/SpringyModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/logic/InteractionHandler.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/springy.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/FireProtectionModifier.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/defense/golden.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/armor/held.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/AbstractProtectionModifier.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/magnetic.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/ricochet.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/magnetic_armor.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/thorns.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/sticky.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/sticky.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/general/MagneticModifier.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/armor/worn.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/TinkerTags.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ModifierUtil.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/context/EquipmentContext.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/thorns.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/defense/golden.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/ricochet.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/shields.json
Commit 688295b10d4e372a683cb051fa78ee4b9e2ba606 by KnightMiner
Move logic that clears fast item use into interaction handler

Ensures we do not need to implement a modifier every time we want that fix. Also will be needed for a future API improvement
Also reduce the timer on client equipment change watcher to remove stutter when the hook triggers
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/item/IModifiable.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierIds.java (diff)
The file was removedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/FastUseItemModifier.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierProvider.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/logic/EquipmentChangeWatcher.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/tinkering/modifiers/fast_use_item.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/item/ModifiableCrossbowItem.java (diff)
Commit bada41da0d1813abf80c09716d2136aa7a2ad2c5 by KnightMiner
Implement active modifier system

Improved version of the interaction modifier hooks, instead of marking in persistent data and then looking for your marker, we mark then only call the marked modifier
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ModifierUtil.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/logic/InteractionHandler.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/hook/interaction/GeneralInteractionModifierHook.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/logic/EquipmentChangeWatcher.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/item/ModifiableItem.java (diff)
Commit 138895be14455b06c8a6582d95fa6be5ec30c4a8 by KnightMiner
Migrate tasty to the improved logic

Will prevent eating daggers wrongly from preventing dagger stacking
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/general/TastyModifier.java (diff)
Commit 27b986fe7cf6b4b10583a4ff48b40813e0a80348 by KnightMiner
Implement blocking modifier and shield stats

TODO: item model predicate/transforms for blocking
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/logic/InteractionHandler.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/stat/ToolStats.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/TooltipUtil.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/BlockingModifier.java
The file was modifiedsrc/main/resources/assets/tconstruct/mantle/colors.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff)
Commit e660a36504408bf156cf2730e557ae45f5d6c082 by KnightMiner
Add option for tools to have arbitrary modules registered as part of the definition

For 1.19, will move AOE logic, harvest logic, and melee logic to this system. Will be useful for addons that wish to make up their own additional JSON settings, and just encourage me to do less hardcoding of stuff in classes
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/util/ModifierHookMap.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionDataBuilder.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionData.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/definition/module/IToolModule.java
The file was modifiedsrc/test/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionDataTest.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionLoader.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/definition/module/package-info.java
Commit 56844a77def6ca6e494f56c54b94d85ea1fd7bb4 by KnightMiner
Implement tool definition module for changng interactions

By default, most tools allow any interaction modifier to act
Slimestaffs support both left and right click interaction, they use a worktable recipe to choose which interaction on a per modifier basis
Shields support left click interaction, and also have a single right click modifier for blocking. They use a more restricted version of the module
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/HarvestAbilityModifier.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/attack_modifier_clearing.json
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/DualOptionInteraction.java
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/InteractionToolModule.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerTools.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/dynamic/InventoryMenuModifier.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/invisible_ink_removing.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/tinkering/tags/modifiers/dual_interaction.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/TinkerTags.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/interactable/right.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/nbt/IToolContext.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/FirestarterModifier.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/definition/module/ToolModuleHooks.java
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/interactable/left.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/recipe/worktable/ModifierSetWorktableRecipe.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/invisible_ink_adding.json (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/package-info.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/recipe/worktable/ModifierSetWorktableRecipeBuilder.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/tool/GlowingModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/BlockTransformModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/ShearsAbilityModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/data/tags/ModifierTagProvider.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/recipe/worktable/AbstractWorktableRecipe.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/PreferenceSetInteraction.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/attack_modifier_setting.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/tool/BucketingModifier.java (diff)
Commit fc9c651cfd3fdb10361fae68568d22b59686dafc by KnightMiner
Implement modifiable staff item

Base class for shields, staffs, and potentially slimeslings
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/item/ModifiableStaffItem.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/hook/interaction/EntityInteractionModifierHook.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/item/ModifiableLauncherItem.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ModifiableItemUtil.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ToolAttackUtil.java (diff)
Commit 42a3a8414aa163c3ab4032c97e073164a8a09cae by KnightMiner
Fix stutter when blocking or eating a tool

Turns out you want to set the active hand after changing the item NBT
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ModifierUtil.java (diff)
Commit 278d60d3136b42a757c3a5a43c8372c54f196af6 by KnightMiner
Implement travelers shield

Travelers shields are lightweight shields, allowing you to dash while shielding. They only block a max of 10 damage, which is sufficient against most attacks
Plate shield will come in a later commit
The file was addedsrc/generated/resources/data/tconstruct/recipes/armor/repair/travelers_wood_repair_kit.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerTools.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ToolDefinitionDataProvider.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/armor/repair/travelers_copper_repair_kit.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/durability.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/armor/repair/travelers_copper_station.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/armor/building/travelers_shield.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield_broken.png
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield_modifiers/tconstruct_dyed.png
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/dyeable.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/base/shield.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/ToolClientEvents.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/base/shield_blocking.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ToolsRecipeProvider.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/armor/repair/travelers_wood_station.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield_modifiers/tconstruct_dyed_broken.png
The file was addedsrc/main/java/slimeknights/tconstruct/library/json/predicate/modifier/SingleModifierPredicate.java
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/interactable/left.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/tinkering/tool_definitions/travelers_shield.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/client/model/TinkerItemProperties.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/ArmorDefinitions.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/travelers_shield.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/armor/building/travelers_shield.json
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/travelers_shield.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield.png
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/shields.json (diff)
Commit 35fc1efe2b257065db3bde899e3fe1ad58e47c1b by KnightMiner
Add tool blocking predicates to all melee weapons that can receive the blocking modifier

Well, will be able to receive it. Need to decide on a recipe still, and arrange a couple of things for daggers
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/sword.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/excavator.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/broad_axe.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/scythe.json
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/flint_and_brick.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/scythe.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/sword.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/kama.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/sledge_hammer.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/flint_and_brick.json
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/broad_axe.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/mattock.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/base/tool_blocking.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/pickadze.json
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/mattock.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/vein_hammer.json
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/pickadze.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/hand_axe.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/kama.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/sledge_hammer.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/ToolClientEvents.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/vein_hammer.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/pickaxe.json
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/pickaxe.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/cleaver.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/cleaver.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/dagger.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/hand_axe.json
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/excavator.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/dagger.json (diff)
Commit b8d6a15734a83675abdde36f70e62da9ef3c6afe by KnightMiner
Implement slime staffs

Slime staffs are items that do nothing, but can be modified with any interaction modifier. They are set apart from other tools by starting with two ability slots, and in some cases defense slots.
In the future, they will get some unique spell modifiers.
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/repair/staff_station.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/earth.png
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/earth_staff.json
The file was addedsrc/generated/resources/data/tconstruct/tinkering/tool_definitions/sky_staff.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/sky_large_broken.png
The file was addedsrc/main/resources/assets/tconstruct/models/item/ichor_staff.json
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/building/sky_staff.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/earth_large.png
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/earth_large_broken.png
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/ichor_large_broken.png
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/aoe.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/earth_staff.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/sky_broken.png
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/TinkerTags.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/tinkering/tool_definitions/ichor_staff.json
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/ichor_staff.json
The file was addedsrc/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/tools/building/earth_staff.json
The file was addedsrc/generated/resources/data/tconstruct/tinkering/tool_definitions/earth_staff.json
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/building/ichor_staff.json
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/durability.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/ichor.png
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerTools.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/sky_staff.json
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/interactable/dual.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/ToolDefinitions.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/sky.png
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/ichor_broken.png
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/ichor_large.png
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/ToolClientEvents.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/models/item/blocking/sky_staff.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ToolDefinitionDataProvider.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/staffs.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ToolsRecipeProvider.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/armor/held.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/sky_large.png
The file was addedsrc/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/tools/building/sky_staff.json
The file was addedsrc/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/tools/building/ichor_staff.json
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/building/earth_staff.json
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/repair/staff_repair_kit.json
The file was addedsrc/main/resources/assets/tconstruct/textures/item/tool/staff/earth_broken.png
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff)
Commit d8253eef66e1e0427c03a61f3764452d860b3d87 by KnightMiner
Tweak protection modifiers

Protection is now 5% per level, but is capped at one level per piece
Conditional protection is now 10% per level
Goal is buffing armor to be closer to vanilla without making it too strong once you have dragon heads
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/shulking.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/fire.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/melee.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/ShulkingModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/ability/armor/ProtectionModifier.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/turtle_shell.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/BlastProtectionModifier.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/projectile.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/ProjectileProtectionModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/TurtleShellModifier.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/magic.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/MeleeProtectionModifier.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/abilities/armor/protection.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/protection.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/DragonbornModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/FireProtectionModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/defense/MagicProtectionModifier.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/blast.json (diff)
Commit 0895451316ede9bb9f3ab35634e602eb6bce5088 by KnightMiner
Add recipe for blocking modifier
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/blocking.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/blocking.json
The file was modifiedsrc/main/resources/assets/tconstruct/tinkering/modifier_icons.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/melee/blocking.png