From 3c566762a142362bf169a911469632753c404682 Mon Sep 17 00:00:00 2001 From: KnightMiner Date: Mon, 20 Jan 2025 02:43:19 -0500 Subject: [PATCH] Data tweaks Luck no longer allows using crystals for levels 2, 3, or pants as that makes it too easy with recent changes to cheese the cost. Tool belt similarly disallows using crystals for levels 2+ Severing is now allowed on ranged tools, as severing arrows/spit functions now Fixed missing frame in melting pan charging Correct a couple of typos from #5287 --- .../tools/modifiers/ability/luck_crystal.json | 30 ------------------- .../tools/modifiers/ability/luck_level_1.json | 4 +-- .../tools/modifiers/ability/luck_level_2.json | 2 +- .../tools/modifiers/ability/luck_level_3.json | 2 +- .../tools/modifiers/ability/luck_pants.json | 2 +- .../tools/modifiers/ability/tool_belt_1.json | 2 +- .../modifiers/ability/tool_belt_crystal.json | 22 -------------- .../modifiers/salvage/upgrade/severing.json | 11 +++++-- .../tools/modifiers/upgrade/severing.json | 11 +++++-- .../tools/data/ModifierRecipeProvider.java | 26 +++++----------- .../book/encyclopedia/en_us/armor/info.json | 4 ++- .../armor/chestplate/tconstruct_wings.json | 2 +- .../general/tconstruct_embellishment.json | 2 +- .../melting_pan/overlay_charged.png.mcmeta | 4 ++- 14 files changed, 38 insertions(+), 86 deletions(-) delete mode 100644 src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_crystal.json delete mode 100644 src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_crystal.json diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_crystal.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_crystal.json deleted file mode 100644 index ca800b3c07..0000000000 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_crystal.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "tconstruct:multilevel_modifier", - "allow_crystal": true, - "levels": [ - { - "level": 1, - "slots": { - "abilities": 1 - } - }, - { - "level": { - "max": 3, - "min": 2 - } - } - ], - "result": "tconstruct:luck", - "tools": [ - { - "tag": "tconstruct:modifiable/melee/weapon" - }, - { - "tag": "tconstruct:modifiable/harvest" - }, - { - "tag": "tconstruct:modifiable/ranged/bows" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_1.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_1.json index c0172f0d95..a60f8ac3d1 100644 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_1.json +++ b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_1.json @@ -1,6 +1,6 @@ { "type": "tconstruct:modifier", - "allow_crystal": false, + "allow_crystal": true, "inputs": [ { "tag": "forge:ingots/copper" @@ -38,7 +38,7 @@ "tag": "tconstruct:modifiable/harvest" }, { - "tag": "tconstruct:modifiable/ranged/bows" + "tag": "tconstruct:modifiable/ranged" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_2.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_2.json index 2a375e66f5..b35f708a8f 100644 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_2.json +++ b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_2.json @@ -28,7 +28,7 @@ "tag": "tconstruct:modifiable/harvest" }, { - "tag": "tconstruct:modifiable/ranged/bows" + "tag": "tconstruct:modifiable/ranged" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_3.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_3.json index 287f7d76a1..de2e024fec 100644 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_3.json +++ b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_level_3.json @@ -28,7 +28,7 @@ "tag": "tconstruct:modifiable/harvest" }, { - "tag": "tconstruct:modifiable/ranged/bows" + "tag": "tconstruct:modifiable/ranged" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_pants.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_pants.json index c631c20e4d..48924e79f1 100644 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_pants.json +++ b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/luck_pants.json @@ -1,6 +1,6 @@ { "type": "tconstruct:modifier", - "allow_crystal": true, + "allow_crystal": false, "inputs": [ { "ingredient": [ diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_1.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_1.json index a06b31a73f..942372f39b 100644 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_1.json +++ b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_1.json @@ -1,6 +1,6 @@ { "type": "tconstruct:modifier", - "allow_crystal": false, + "allow_crystal": true, "inputs": [ { "item": "minecraft:leather" diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_crystal.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_crystal.json deleted file mode 100644 index 92c1cf00a4..0000000000 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/ability/tool_belt_crystal.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "tconstruct:multilevel_modifier", - "allow_crystal": true, - "levels": [ - { - "level": 1, - "slots": { - "abilities": 1 - } - }, - { - "level": { - "max": 6, - "min": 2 - } - } - ], - "result": "tconstruct:tool_belt", - "tools": { - "tag": "tconstruct:modifiable/armor/leggings" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/severing.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/severing.json index 0466118080..cb1706102c 100644 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/severing.json +++ b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/salvage/upgrade/severing.json @@ -4,7 +4,12 @@ "slots": { "upgrades": 1 }, - "tools": { - "tag": "tconstruct:modifiable/melee" - } + "tools": [ + { + "tag": "tconstruct:modifiable/melee" + }, + { + "tag": "tconstruct:modifiable/ranged" + } + ] } \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/severing.json b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/severing.json index 28c9a4a1d8..11f1ebb41f 100644 --- a/src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/severing.json +++ b/src/generated/resources/data/tconstruct/recipes/tools/modifiers/upgrade/severing.json @@ -22,7 +22,12 @@ "slots": { "upgrades": 1 }, - "tools": { - "tag": "tconstruct:modifiable/melee" - } + "tools": [ + { + "tag": "tconstruct:modifiable/melee" + }, + { + "tag": "tconstruct:modifiable/ranged" + } + ] } \ No newline at end of file diff --git a/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java b/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java index f5f8c6df12..13ca35b8d1 100644 --- a/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java +++ b/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java @@ -54,7 +54,6 @@ import slimeknights.tconstruct.library.recipe.ingredient.ToolHookIngredient; import slimeknights.tconstruct.library.recipe.modifiers.adding.IncrementalModifierRecipeBuilder; import slimeknights.tconstruct.library.recipe.modifiers.adding.ModifierRecipeBuilder; -import slimeknights.tconstruct.library.recipe.modifiers.adding.MultilevelModifierRecipeBuilder; import slimeknights.tconstruct.library.recipe.modifiers.adding.OverslimeModifierRecipeBuilder; import slimeknights.tconstruct.library.recipe.modifiers.adding.SwappableModifierRecipe.VariantFormatter; import slimeknights.tconstruct.library.recipe.modifiers.adding.SwappableModifierRecipeBuilder; @@ -397,7 +396,7 @@ private void addModifierRecipes(Consumer consumer) { .addInput(Items.TNT) .setMaxLevel(3) // max +25% head drop chance, combine with +15% chance from luck .setSlots(SlotType.UPGRADE, 1) - .setTools(TinkerTags.Items.MELEE) + .setTools(ingredientFromTags(TinkerTags.Items.MELEE, TinkerTags.Items.RANGED)) .saveSalvage(consumer, prefix(TinkerModifiers.severing, upgradeSalvage)) .save(consumer, prefix(TinkerModifiers.severing, upgradeFolder)); IncrementalModifierRecipeBuilder.modifier(TinkerModifiers.fiery) @@ -963,8 +962,9 @@ private void addModifierRecipes(Consumer consumer) { if (level == 1) { builder.setSlots(SlotType.ABILITY, 1); builder.saveSalvage(consumer, prefix(ModifierIds.toolBelt, abilitySalvage)); + } else { + builder.disallowCrystal(); // prevent cheesing cost by extracting level 1 } - builder.disallowCrystal(); // handled below builder.save(consumer, wrap(ModifierIds.toolBelt, abilityFolder, "_" + level)); }; toolBeltRecipe.accept(1, Tags.Items.INGOTS_IRON); @@ -973,11 +973,6 @@ private void addModifierRecipes(Consumer consumer) { toolBeltRecipe.accept(4, TinkerMaterials.cobalt.getIngotTag()); toolBeltRecipe.accept(5, TinkerMaterials.hepatizon.getIngotTag()); toolBeltRecipe.accept(6, TinkerMaterials.manyullyn.getIngotTag()); - MultilevelModifierRecipeBuilder.modifier(ModifierIds.toolBelt) - .setTools(TinkerTags.Items.LEGGINGS) - .addLevel(SlotType.ABILITY, 1, 1) - .addLevelRange(2, 6) - .save(consumer, wrap(ModifierIds.toolBelt, abilityFolder, "_crystal")); ModifierRecipeBuilder.modifier(ModifierIds.soulBelt) .addInput(Items.LEATHER) .addInput(Ingredient.of(Items.RECOVERY_COMPASS)) @@ -1104,7 +1099,7 @@ private void addModifierRecipes(Consumer consumer) { .save(consumer, prefix(ModifierIds.gilded, abilityFolder)); // luck is 3 recipes // level 1 always requires a slot - Ingredient luckSupporting = ingredientFromTags(TinkerTags.Items.MELEE_WEAPON, TinkerTags.Items.HARVEST, TinkerTags.Items.BOWS); + Ingredient luckSupporting = ingredientFromTags(TinkerTags.Items.MELEE_WEAPON, TinkerTags.Items.HARVEST, TinkerTags.Items.RANGED); ModifierRecipeBuilder.modifier(ModifierIds.luck) .setTools(luckSupporting) .addInput(Tags.Items.INGOTS_COPPER) @@ -1114,7 +1109,7 @@ private void addModifierRecipes(Consumer consumer) { .addInput(Tags.Items.STORAGE_BLOCKS_LAPIS) .setMaxLevel(1) .setSlots(SlotType.ABILITY, 1) - .disallowCrystal() // handled below + .allowCrystal() .save(consumer, wrap(ModifierIds.luck, abilityFolder, "_level_1")); ModifierRecipeBuilder.modifier(ModifierIds.luck) .setTools(luckSupporting) @@ -1123,7 +1118,7 @@ private void addModifierRecipes(Consumer consumer) { .addInput(Tags.Items.INGOTS_GOLD) .addInput(Tags.Items.ENDER_PEARLS) .addInput(Tags.Items.ENDER_PEARLS) - .disallowCrystal() // handled below + .disallowCrystal() // would allow a cost cheese .exactLevel(2) .save(consumer, wrap(ModifierIds.luck, abilityFolder, "_level_2")); ModifierRecipeBuilder.modifier(ModifierIds.luck) @@ -1133,7 +1128,7 @@ private void addModifierRecipes(Consumer consumer) { .addInput(TinkerMaterials.roseGold.getIngotTag()) .addInput(Tags.Items.GEMS_DIAMOND) .addInput(Items.NAME_TAG) - .disallowCrystal() // handled below + .disallowCrystal() // would allow a cost cheese .exactLevel(3) .save(consumer, wrap(ModifierIds.luck, abilityFolder, "_level_3")); // pants have just one level @@ -1146,14 +1141,9 @@ private void addModifierRecipes(Consumer consumer) { .addInput(Items.NAME_TAG) .setMaxLevel(1) .setSlots(SlotType.ABILITY, 1) + .disallowCrystal() // prevents cheesing cost using luck 1 .saveSalvage(consumer, wrap(ModifierIds.luck, abilitySalvage, "_pants")) .save(consumer, wrap(ModifierIds.luck, abilityFolder, "_pants")); - // extra crystal recipe - MultilevelModifierRecipeBuilder.modifier(ModifierIds.luck) - .setTools(luckSupporting) - .addLevel(SlotType.ABILITY, 1, 1) - .addLevelRange(2, 3) - .save(consumer, wrap(ModifierIds.luck, abilityFolder, "_crystal")); // salvage lets you salvage from chestplates ModifierRecipeBuilder.modifier(ModifierIds.luck) .setTools(ingredientFromTags(TinkerTags.Items.MELEE, TinkerTags.Items.HARVEST, TinkerTags.Items.BOWS)) diff --git a/src/main/resources/assets/tconstruct/book/encyclopedia/en_us/armor/info.json b/src/main/resources/assets/tconstruct/book/encyclopedia/en_us/armor/info.json index 6ae5264583..d9ef1919ee 100644 --- a/src/main/resources/assets/tconstruct/book/encyclopedia/en_us/armor/info.json +++ b/src/main/resources/assets/tconstruct/book/encyclopedia/en_us/armor/info.json @@ -1,6 +1,8 @@ { "title": "Armor Information", "text": [ - { "text": "Armor is crafted in the Crafting Station instead of the Tinker Station or Anvil. Armor have varying number of upgrade, defense, and ability slots based on the type; some types even have material traits. Unlike tools, holding the armor typically provides no effect; most modifiers require wearing the armor to be applicable." } + { "text": "Armor can be created in a variety of forms. Some armor is created in te crafting station, some in the tinker station, and some is made by casting." }, + { "text": "Armor have varying number of upgrade, defense, and ability slots based on the type; some types even have material traits.", "paragraph": true }, + { "text": "Unlike tools, holding the armor typically provides no effect; most modifiers require wearing the armor to be applicable.", "paragraph": true } ] } diff --git a/src/main/resources/assets/tconstruct/book/mighty_smelting/en_us/abilities/armor/chestplate/tconstruct_wings.json b/src/main/resources/assets/tconstruct/book/mighty_smelting/en_us/abilities/armor/chestplate/tconstruct_wings.json index 963f5a5559..a04cf6c82b 100644 --- a/src/main/resources/assets/tconstruct/book/mighty_smelting/en_us/abilities/armor/chestplate/tconstruct_wings.json +++ b/src/main/resources/assets/tconstruct/book/mighty_smelting/en_us/abilities/armor/chestplate/tconstruct_wings.json @@ -6,7 +6,7 @@ } ], "effects": [ - "Allows gliding by jumping whil in air", + "Allows gliding by jumping while in air", "Single level", "Requires 2 ability slots" ] diff --git a/src/main/resources/assets/tconstruct/book/puny_smelting/en_us/slotless/general/tconstruct_embellishment.json b/src/main/resources/assets/tconstruct/book/puny_smelting/en_us/slotless/general/tconstruct_embellishment.json index 1844fcc9b6..0ef40b36a4 100644 --- a/src/main/resources/assets/tconstruct/book/puny_smelting/en_us/slotless/general/tconstruct_embellishment.json +++ b/src/main/resources/assets/tconstruct/book/puny_smelting/en_us/slotless/general/tconstruct_embellishment.json @@ -2,7 +2,7 @@ "modifier_id": "tconstruct:embellishment", "text": [ { - "text": "Ever seen a metal so nice you wish it were armor? Now any metal is armor." + "text": "The original cosmetic to change the appearance of tools and armor!" } ], "effects": [ diff --git a/src/main/resources/assets/tconstruct/textures/item/tool/melting_pan/overlay_charged.png.mcmeta b/src/main/resources/assets/tconstruct/textures/item/tool/melting_pan/overlay_charged.png.mcmeta index d515eacb52..52956f7705 100644 --- a/src/main/resources/assets/tconstruct/textures/item/tool/melting_pan/overlay_charged.png.mcmeta +++ b/src/main/resources/assets/tconstruct/textures/item/tool/melting_pan/overlay_charged.png.mcmeta @@ -7,7 +7,9 @@ 0, 2, 0, - 3 + 3, + 0, + 4 ] } }