Commit
f0e36d0fc8b821e1a519f2f185abb6fb115d3377
by KnightMinerImplement 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)
|
| src/generated/resources/data/tconstruct/tags/items/modifiable/armor.json (diff) |
| src/main/java/slimeknights/tconstruct/library/modifiers/data/ModifierMaxLevel.java (diff) |
| src/main/java/slimeknights/tconstruct/library/modifiers/data/VanillaMaxLevel.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/defense/revitalizing.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/armor/ThornsModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/logic/ToolEvents.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/armor/UnarmedModifier.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/springy.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/armor/ProtectionModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/armor/SpringyModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/logic/InteractionHandler.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/springy.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/FireProtectionModifier.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/defense/golden.json (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/armor/held.json |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/AbstractProtectionModifier.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/magnetic.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/ricochet.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/magnetic_armor.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/thorns.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/sticky.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/sticky.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/general/MagneticModifier.java (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/armor/worn.json |
| src/main/java/slimeknights/tconstruct/common/TinkerTags.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/helper/ModifierUtil.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/context/EquipmentContext.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/thorns.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/defense/golden.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/ricochet.json (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/shields.json |
Commit
688295b10d4e372a683cb051fa78ee4b9e2ba606
by KnightMinerMove 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
|
| src/main/java/slimeknights/tconstruct/library/tools/item/IModifiable.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/data/ModifierIds.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/traits/FastUseItemModifier.java |
| src/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/data/ModifierProvider.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/logic/EquipmentChangeWatcher.java (diff) |
| src/generated/resources/data/tconstruct/tinkering/modifiers/fast_use_item.json |
| src/main/java/slimeknights/tconstruct/tools/item/ModifiableCrossbowItem.java (diff) |
Commit
bada41da0d1813abf80c09716d2136aa7a2ad2c5
by KnightMinerImplement 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
|
| src/main/java/slimeknights/tconstruct/library/tools/helper/ModifierUtil.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/logic/InteractionHandler.java (diff) |
| src/main/java/slimeknights/tconstruct/library/modifiers/hook/interaction/GeneralInteractionModifierHook.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/logic/EquipmentChangeWatcher.java (diff) |
| src/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/item/ModifiableItem.java (diff) |
|
| src/main/java/slimeknights/tconstruct/tools/modifiers/traits/general/TastyModifier.java (diff) |
|
| src/main/java/slimeknights/tconstruct/tools/logic/InteractionHandler.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/stat/ToolStats.java (diff) |
| src/main/resources/assets/tconstruct/lang/en_us.json (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/helper/TooltipUtil.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/BlockingModifier.java |
| src/main/resources/assets/tconstruct/mantle/colors.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff) |
Commit
e660a36504408bf156cf2730e557ae45f5d6c082
by KnightMinerAdd 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
|
| src/main/java/slimeknights/tconstruct/library/modifiers/util/ModifierHookMap.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionDataBuilder.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionData.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/module/IToolModule.java |
| src/test/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionDataTest.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/ToolDefinitionLoader.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/module/package-info.java |
Commit
56844a77def6ca6e494f56c54b94d85ea1fd7bb4
by KnightMinerImplement 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
|
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/HarvestAbilityModifier.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/attack_modifier_clearing.json |
| src/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/DualOptionInteraction.java |
| src/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/InteractionToolModule.java |
| src/main/java/slimeknights/tconstruct/tools/TinkerTools.java (diff) |
| src/main/java/slimeknights/tconstruct/library/modifiers/dynamic/InventoryMenuModifier.java (diff) |
| src/main/resources/assets/tconstruct/lang/en_us.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/invisible_ink_removing.json (diff) |
| src/generated/resources/data/tconstruct/tinkering/tags/modifiers/dual_interaction.json |
| src/main/java/slimeknights/tconstruct/common/TinkerTags.java (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/interactable/right.json (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/nbt/IToolContext.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/FirestarterModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/module/ToolModuleHooks.java |
| src/generated/resources/data/tconstruct/tags/items/modifiable/interactable/left.json (diff) |
| src/main/java/slimeknights/tconstruct/library/recipe/worktable/ModifierSetWorktableRecipe.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/invisible_ink_adding.json (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/package-info.java |
| src/main/java/slimeknights/tconstruct/library/recipe/worktable/ModifierSetWorktableRecipeBuilder.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/tool/GlowingModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/BlockTransformModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/interaction/ShearsAbilityModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/common/data/tags/ModifierTagProvider.java (diff) |
| src/main/java/slimeknights/tconstruct/library/recipe/worktable/AbstractWorktableRecipe.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/definition/module/interaction/PreferenceSetInteraction.java |
| src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/worktable/attack_modifier_setting.json |
| src/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/tool/BucketingModifier.java (diff) |
|
| src/main/java/slimeknights/tconstruct/library/tools/item/ModifiableStaffItem.java |
| src/main/java/slimeknights/tconstruct/library/modifiers/hook/interaction/EntityInteractionModifierHook.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/item/ModifiableLauncherItem.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/helper/ModifiableItemUtil.java (diff) |
| src/main/java/slimeknights/tconstruct/library/tools/helper/ToolAttackUtil.java (diff) |
|
| src/main/java/slimeknights/tconstruct/library/tools/helper/ModifierUtil.java (diff) |
Commit
278d60d3136b42a757c3a5a43c8372c54f196af6
by KnightMinerImplement 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
|
| src/generated/resources/data/tconstruct/recipes/armor/repair/travelers_wood_repair_kit.json |
| src/main/java/slimeknights/tconstruct/tools/TinkerTools.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/data/ToolDefinitionDataProvider.java (diff) |
| src/generated/resources/data/tconstruct/recipes/armor/repair/travelers_copper_repair_kit.json (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/durability.json (diff) |
| src/generated/resources/data/tconstruct/recipes/armor/repair/travelers_copper_station.json (diff) |
| src/generated/resources/data/tconstruct/recipes/armor/building/travelers_shield.json |
| src/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield_broken.png |
| src/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield_modifiers/tconstruct_dyed.png |
| src/generated/resources/data/tconstruct/tags/items/modifiable/dyeable.json (diff) |
| src/main/resources/assets/tconstruct/models/item/base/shield.json |
| src/main/java/slimeknights/tconstruct/tools/ToolClientEvents.java (diff) |
| src/main/resources/assets/tconstruct/models/item/base/shield_blocking.json |
| src/main/java/slimeknights/tconstruct/tools/data/ToolsRecipeProvider.java (diff) |
| src/generated/resources/data/tconstruct/recipes/armor/repair/travelers_wood_station.json |
| src/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield_modifiers/tconstruct_dyed_broken.png |
| src/main/java/slimeknights/tconstruct/library/json/predicate/modifier/SingleModifierPredicate.java |
| src/generated/resources/data/tconstruct/tags/items/modifiable/interactable/left.json (diff) |
| src/generated/resources/data/tconstruct/tinkering/tool_definitions/travelers_shield.json |
| src/main/java/slimeknights/tconstruct/library/client/model/TinkerItemProperties.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/ArmorDefinitions.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/travelers_shield.json |
| src/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff) |
| src/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/armor/building/travelers_shield.json |
| src/main/resources/assets/tconstruct/lang/en_us.json (diff) |
| src/main/resources/assets/tconstruct/models/item/travelers_shield.json |
| src/main/resources/assets/tconstruct/textures/item/tool/armor/travelers/shield.png |
| src/generated/resources/data/tconstruct/tags/items/modifiable/shields.json (diff) |
Commit
35fc1efe2b257065db3bde899e3fe1ad58e47c1b
by KnightMinerAdd 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
|
| src/main/resources/assets/tconstruct/models/item/sword.json (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/excavator.json |
| src/main/resources/assets/tconstruct/models/item/blocking/broad_axe.json |
| src/main/resources/assets/tconstruct/models/item/blocking/scythe.json |
| src/main/resources/assets/tconstruct/models/item/flint_and_brick.json (diff) |
| src/main/resources/assets/tconstruct/models/item/scythe.json (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/sword.json |
| src/main/resources/assets/tconstruct/models/item/blocking/kama.json |
| src/main/resources/assets/tconstruct/models/item/blocking/sledge_hammer.json |
| src/main/resources/assets/tconstruct/models/item/blocking/flint_and_brick.json |
| src/main/resources/assets/tconstruct/models/item/broad_axe.json (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/mattock.json |
| src/main/resources/assets/tconstruct/models/item/base/tool_blocking.json |
| src/main/resources/assets/tconstruct/models/item/blocking/pickadze.json |
| src/main/resources/assets/tconstruct/models/item/mattock.json (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/vein_hammer.json |
| src/main/resources/assets/tconstruct/models/item/pickadze.json (diff) |
| src/main/resources/assets/tconstruct/models/item/hand_axe.json (diff) |
| src/main/resources/assets/tconstruct/models/item/kama.json (diff) |
| src/main/resources/assets/tconstruct/models/item/sledge_hammer.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/ToolClientEvents.java (diff) |
| src/main/resources/assets/tconstruct/models/item/vein_hammer.json (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/pickaxe.json |
| src/main/resources/assets/tconstruct/models/item/pickaxe.json (diff) |
| src/main/resources/assets/tconstruct/models/item/cleaver.json (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/cleaver.json |
| src/main/resources/assets/tconstruct/models/item/blocking/dagger.json |
| src/main/resources/assets/tconstruct/models/item/blocking/hand_axe.json |
| src/main/resources/assets/tconstruct/models/item/excavator.json (diff) |
| src/main/resources/assets/tconstruct/models/item/dagger.json (diff) |
Commit
b8d6a15734a83675abdde36f70e62da9ef3c6afe
by KnightMinerImplement 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.
|
| src/generated/resources/data/tconstruct/recipes/tools/repair/staff_station.json |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/earth.png |
| src/main/resources/assets/tconstruct/models/item/blocking/earth_staff.json |
| src/generated/resources/data/tconstruct/tinkering/tool_definitions/sky_staff.json |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/sky_large_broken.png |
| src/main/resources/assets/tconstruct/models/item/ichor_staff.json |
| src/generated/resources/data/tconstruct/recipes/tools/building/sky_staff.json |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/earth_large.png |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/earth_large_broken.png |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/ichor_large_broken.png |
| src/main/resources/assets/tconstruct/lang/en_us.json (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/aoe.json (diff) |
| src/main/resources/assets/tconstruct/models/item/earth_staff.json |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/sky_broken.png |
| src/main/java/slimeknights/tconstruct/common/TinkerTags.java (diff) |
| src/generated/resources/data/tconstruct/tinkering/tool_definitions/ichor_staff.json |
| src/main/resources/assets/tconstruct/models/item/blocking/ichor_staff.json |
| src/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/tools/building/earth_staff.json |
| src/generated/resources/data/tconstruct/tinkering/tool_definitions/earth_staff.json |
| src/generated/resources/data/tconstruct/recipes/tools/building/ichor_staff.json |
| src/generated/resources/data/tconstruct/tags/items/modifiable/durability.json (diff) |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/ichor.png |
| src/main/java/slimeknights/tconstruct/tools/TinkerTools.java (diff) |
| src/main/resources/assets/tconstruct/models/item/sky_staff.json |
| src/generated/resources/data/tconstruct/tags/items/modifiable/interactable/dual.json |
| src/main/java/slimeknights/tconstruct/tools/ToolDefinitions.java (diff) |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/sky.png |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/ichor_broken.png |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/ichor_large.png |
| src/main/java/slimeknights/tconstruct/tools/ToolClientEvents.java (diff) |
| src/main/resources/assets/tconstruct/models/item/blocking/sky_staff.json |
| src/main/java/slimeknights/tconstruct/tools/data/ToolDefinitionDataProvider.java (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/staffs.json |
| src/main/java/slimeknights/tconstruct/tools/data/ToolsRecipeProvider.java (diff) |
| src/generated/resources/data/tconstruct/tags/items/modifiable/armor/held.json (diff) |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/sky_large.png |
| src/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/tools/building/sky_staff.json |
| src/generated/resources/data/tconstruct/advancements/recipes/tconstruct/tools/tools/building/ichor_staff.json |
| src/generated/resources/data/tconstruct/recipes/tools/building/earth_staff.json |
| src/generated/resources/data/tconstruct/recipes/tools/repair/staff_repair_kit.json |
| src/main/resources/assets/tconstruct/textures/item/tool/staff/earth_broken.png |
| src/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff) |
Commit
d8253eef66e1e0427c03a61f3764452d860b3d87
by KnightMinerTweak 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
|
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/shulking.json (diff) |
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/fire.json (diff) |
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/melee.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/ShulkingModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/ability/armor/ProtectionModifier.java (diff) |
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/turtle_shell.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/BlastProtectionModifier.java (diff) |
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/projectile.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/ProjectileProtectionModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/TurtleShellModifier.java (diff) |
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/magic.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/MeleeProtectionModifier.java (diff) |
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/abilities/armor/protection.json (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/protection.json (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/DragonbornModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/FireProtectionModifier.java (diff) |
| src/main/java/slimeknights/tconstruct/tools/modifiers/defense/MagicProtectionModifier.java (diff) |
| src/main/resources/assets/tconstruct/book/encyclopedia/en_us/defense/protection/blast.json (diff) |
|
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/blocking.json |
| src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff) |
| src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/blocking.json |
| src/main/resources/assets/tconstruct/tinkering/modifier_icons.json (diff) |
| src/main/resources/assets/tconstruct/textures/gui/modifiers/melee/blocking.png |