Changes

Summary

  1. Fix cobalt grip stats and update lightweight to work on ranged (details)
  2. Fix non-fallback traits not being included in materials (details)
  3. Implement basic stat bow modifiers (details)
  4. Improve bow tags (details)
  5. Implement punch, fiery, and impaling on bows (details)
  6. Implement generic conditional stat hook (details)
  7. Improve ability to access modifier hooks (details)
  8. Make longbow more strict on showing the "fully charged" model (details)
  9. Implement looting on bows and arrow modifier capability (details)
  10. Update test dummy and uncomment it as its useful for testing this bow stuff (details)
  11. Implement hook when a projectile hits an entity (details)
  12. Seems arrows fired by non-players have the arrow entity for both (details)
  13. Fix copper durability being too high (details)
Commit 473735c5a2dd1f3a0ad1bfccd7abee7aaeab2569 by KnightMiner
Fix cobalt grip stats and update lightweight to work on ranged
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/material/MaterialStatsDataProvider.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierProvider.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tinkering/modifiers/lightweight.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tinkering/materials/stats/cobalt.json (diff)
Commit 1f13cd20e604e8b906422b19afbc0a5916e763d8 by KnightMiner
Fix non-fallback traits not being included in materials
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/materials/traits/MaterialTraits.java (diff)
Commit e6f171963e5f917987930c66dffe3ef78a217c9d by KnightMiner
Implement basic stat bow modifiers

Includes bamboo's trait, quickcharge, trueshot, blindshot, power, diamond, emerald, netherite
Includes projectile damage as a new (hidden) stat, may consider showing it later
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierIds.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tinkering/modifiers/diamond.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/stat/ToolStats.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/quick_charge_from_block.json
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/quick_charge_from_dust.json
The file was addedsrc/generated/resources/data/tconstruct/tinkering/modifiers/trueshot.json
The file was modifiedsrc/generated/resources/data/tconstruct/tinkering/modifiers/netherite.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/ranged/blindshot.png
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierProvider.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/ranged/quick_charge.png
The file was addedsrc/generated/resources/data/tconstruct/tinkering/modifiers/power.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/item/ModifiableBowItem.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/trueshot.json
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/quick_charge.json
The file was addedsrc/generated/resources/data/tconstruct/tinkering/modifiers/quick_charge.json
The file was modifiedsrc/generated/resources/data/tconstruct/tinkering/modifiers/emerald.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/slotless/blindshot.json
The file was addedsrc/generated/resources/data/tconstruct/tinkering/modifiers/blindshot.json
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/power.json
The file was modifiedsrc/main/resources/assets/tconstruct/mantle/colors.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/ranged/trueshot.png
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/ranged/power.png
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/trueshot.json
The file was modifiedsrc/main/resources/assets/tconstruct/tinkering/modifier_icons.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/power.json
The file was addedsrc/generated/resources/data/tconstruct/tinkering/modifiers/flexible.json
Commit fbd84fa6aa5c25b6788881ef808f0c322742417e by KnightMiner
Improve bow tags

Remove one handed as its basically just interaction modifiers (not supported)
Add bow, longbow, and crossbow tags to give more control over modifier filtering
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/TinkerTags.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/common/data/tags/ItemTagProvider.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/ranged/bows.json
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/ranged/crossbows.json
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/one_handed.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tags/items/modifiable/ranged.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/tags/items/modifiable/ranged/longbows.json
Commit c563aca0a384cd3ab0e003e0398a0f4065c7a3a1 by KnightMiner
Implement punch, fiery, and impaling on bows

Impaling is useless for now as crossbows don't yet exist, will have a different longbow exclusive modifier in its place
Fiery is the same modifier as for melee, so melee fire and ranged fire together
Adding punch changed the knockback recipe to be just slime blocks
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/punch.json
The file was addedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/ranged/ImpalingModifier.java
The file was addedsrc/main/java/slimeknights/tconstruct/library/modifiers/hook/ArrowLaunchModifierHook.java
The file was modifiedsrc/main/resources/assets/tconstruct/mantle/colors.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/impaling.json
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/fiery.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/fiery.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/tinkering/modifier_icons.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/impaling.json
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/ranged/punch.png
The file was addedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/ranged/package-info.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/item/ModifiableBowItem.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/punch.json
The file was addedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/ranged/PunchModifier.java
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/melee/FieryModifier.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/ranged/impaling.png
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/knockback.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff)
Commit c6fffed815c512cf4eeee5e089e97c39f1e58b8d by KnightMiner
Implement generic conditional stat hook

In the future, will implement on some pre-existing stats where practical, though I suspect melee will want more context
Use for ranged version of dwarven, momentum, conducting, raging, and airborne
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/harvest/AirborneModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/melee/ConductingModifier.java (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/mob_effect/momentum_ranged.png
The file was addedsrc/main/java/slimeknights/tconstruct/library/modifiers/hook/ConditionalStatModifierHook.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/melee/RagingModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/item/ModifiableBowItem.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/client/model/TinkerItemProperties.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/harvest/MomentumModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/harvest/DwarvenModifier.java (diff)
Commit 347da0624f69b7c64f81ef40559657e1670fb107 by KnightMiner
Improve ability to access modifier hooks

In most cases, we want to get the hook or default, but sometimes you may want to know if a hook is set. Expose the hook map for that usecase and include a method to get or null to reduce map lookups
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/util/ModifierHookMap.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/ModifierHooks.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/Modifier.java (diff)
Commit c61816ceac6d03a62ffc8d096b600082ead2a6e3 by KnightMiner
Make longbow more strict on showing the "fully charged" model

Since we cannot rely on the vanilla shaking for fully charged as that is hardcoded
The file was modifiedsrc/main/resources/assets/tconstruct/models/item/longbow.json (diff)
Commit 5ef96f1a1e25f6bb138b6766f30901c2c48f1039 by KnightMiner
Implement looting on bows and arrow modifier capability

Modifier capability works on any entity, allowing them to receive a list of modifiers. Right now we just clone the list from bows when fired. Means the modifiers will be more limited in their hook context
Looting now supports projectile looting as a new hook
Tools now only receive luck if they support harvesting. If not in the harvest tag, they get looting
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/ranged/ImpalingModifier.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/looting_level_1.json
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_1.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_2.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/looting_level_2.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/hook/ArrowLaunchModifierHook.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/luck_level_3.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/ranged/PunchModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/looting_level_3.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/capability/PersistentDataCapability.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/looting_level_2.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ModifierLootingHandler.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/dynamic/LootModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/hook/LootingModifierHook.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/melee/FieryModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/nbt/IToolContext.java (diff)
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/capability/EntityModifierCapability.java
The file was addedsrc/main/java/slimeknights/tconstruct/library/tools/nbt/DummyToolStack.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/nbt/ModDataNBT.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/nbt/IToolStackView.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/nbt/ModifierNBT.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/looting_level_1.json
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/luck_level_1.json (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/looting_level_3.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ModifierUtil.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_3.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/item/ModifiableBowItem.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/harvest/MomentumModifier.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/ability/luck_level_2.json (diff)
Commit 57c503062ee90d45f25614a50785e0a815789c8b by KnightMiner
Update test dummy and uncomment it as its useful for testing this bow stuff
The file was modifiedbuild.gradle (diff)
Commit d8fbac1f5bf4609c8c6e52cb97cd40fba1ceccf8 by KnightMiner
Implement hook when a projectile hits an entity

Handles enderference, insatibl, lacerating, necrotic, and enderporting
Piercing does not currently work as intended due to damage hooks being weird, so will add later
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/melee/NecroticModifier.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/necrotic.json (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/item/ModifiableBowItem.java (diff)
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/freezing.json
The file was addedsrc/main/java/slimeknights/tconstruct/library/modifiers/hook/ProjectileHitModifierHook.java
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/capability/PersistentDataCapability.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/melee/InsatibleModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/TinkerModifiers.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/mantle/colors.json (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/necrotic.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/gui/modifiers/ranged/freezing.png
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/capability/EntityModifierCapability.java (diff)
The file was modifiedsrc/main/resources/META-INF/accesstransformer.cfg (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/modifiers/TinkerHooks.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/general/EnderportingModifier.java (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/lang/en_us.json (diff)
The file was modifiedsrc/main/resources/assets/tconstruct/tinkering/modifier_icons.json (diff)
The file was addedsrc/main/resources/assets/tconstruct/textures/mob_effect/insatiable_ranged.png
The file was addedsrc/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/ranged/FreezingModifier.java
The file was addedsrc/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/freezing.json
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/logic/ToolEvents.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/melee/LaceratingModifier.java (diff)
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/modifiers/traits/melee/EnderferenceModifier.java (diff)
Commit c007fb8f1dc97716ab6c81f6a77e2aeba3343692 by KnightMiner
Seems arrows fired by non-players have the arrow entity for both
The file was modifiedsrc/main/java/slimeknights/tconstruct/library/tools/helper/ModifierLootingHandler.java (diff)
Commit b89b0c1f88cd7d4df0199b898d72d169dcf202d9 by KnightMiner
Fix copper durability being too high
The file was modifiedsrc/main/java/slimeknights/tconstruct/tools/data/material/MaterialStatsDataProvider.java (diff)
The file was modifiedsrc/generated/resources/data/tconstruct/tinkering/materials/stats/copper.json (diff)