From 77934c92148a4d6a13d6d4dd4c362eae16b6b759 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 16 Jul 2021 17:54:35 -0500 Subject: [PATCH] Made changes to crafting to allow modular weapons to work as intended. --- .../modular/damage/sword/metal_blade.ron | 6 +- .../crafting_ing/modular/held/sword/hilt.ron | 21 + assets/common/material_stats_manifest.ron | 40 +- assets/common/recipe_book.ron | 1125 +++++++++-------- common/src/comp/inventory/item/mod.rs | 3 + common/src/comp/inventory/item/modular.rs | 2 +- common/src/comp/inventory/trade_pricing.rs | 2 +- common/src/recipe.rs | 31 +- voxygen/src/hud/crafting.rs | 41 +- 9 files changed, 658 insertions(+), 613 deletions(-) create mode 100644 assets/common/items/crafting_ing/modular/held/sword/hilt.ron diff --git a/assets/common/items/crafting_ing/modular/damage/sword/metal_blade.ron b/assets/common/items/crafting_ing/modular/damage/sword/metal_blade.ron index 45b78c1fd8..e7ade42a6a 100644 --- a/assets/common/items/crafting_ing/modular/damage/sword/metal_blade.ron +++ b/assets/common/items/crafting_ing/modular/damage/sword/metal_blade.ron @@ -7,9 +7,9 @@ ItemDef( stats: ( equip_time_secs: 0.25, power: 1.0, - effect_power: 0.75, - speed: 0.0, - crit_chance: 0.1, + effect_power: 1.0, + speed: 1.0, + crit_chance: 0.2, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, diff --git a/assets/common/items/crafting_ing/modular/held/sword/hilt.ron b/assets/common/items/crafting_ing/modular/held/sword/hilt.ron new file mode 100644 index 0000000000..a66169a019 --- /dev/null +++ b/assets/common/items/crafting_ing/modular/held/sword/hilt.ron @@ -0,0 +1,21 @@ +ItemDef( + name: "Sword hilt", + description: "A sword hilt.", + kind: ModularComponent(( + toolkind: Sword, + modkind: Held, + stats: ( + equip_time_secs: 1.0, + power: 1.0, + effect_power: 1.0, + speed: 1.0, + crit_chance: 1.0, + range: 1.0, + energy_efficiency: 1.0, + buff_strength: 1.0, + ), + )), + quality: Common, + tags: [ModularComponent((toolkind: Sword, modkind: Held))], +) + diff --git a/assets/common/material_stats_manifest.ron b/assets/common/material_stats_manifest.ron index 66ca732282..0dd89bfefa 100644 --- a/assets/common/material_stats_manifest.ron +++ b/assets/common/material_stats_manifest.ron @@ -3,9 +3,9 @@ "common.items.mineral.ingot.bloodsteel": ( equip_time_secs: 1.0, power: 1.75, - effect_power: 1.75, - speed: 1.75, - crit_chance: 1.75, + effect_power: 1.0, + speed: 1.0, + crit_chance: 1.0, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, @@ -13,9 +13,9 @@ "common.items.mineral.ingot.bronze": ( equip_time_secs: 1.0, power: 0.75, - effect_power: 0.75, - speed: 0.75, - crit_chance: 0.75, + effect_power: 1.0, + speed: 1.0, + crit_chance: 1.0, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, @@ -23,19 +23,19 @@ "common.items.mineral.ingot.cobalt": ( equip_time_secs: 1.0, power: 1.5, - effect_power: 1.5, - speed: 1.5, - crit_chance: 1.5, + effect_power: 1.0, + speed: 1.0, + crit_chance: 1.0, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, ), "common.items.mineral.ingot.copper": ( equip_time_secs: 1.0, - power: 0.4, - effect_power: 0.4, - speed: 0.4, - crit_chance: 0.4, + power: 0.5, + effect_power: 1.0, + speed: 1.0, + crit_chance: 1.0, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, @@ -53,19 +53,19 @@ "common.items.mineral.ingot.steel": ( equip_time_secs: 1.0, power: 1.25, - effect_power: 1.25, - speed: 1.25, - crit_chance: 1.25, + effect_power: 1.0, + speed: 1.0, + crit_chance: 1.0, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, ), "common.items.mineral.ingot.tin": ( equip_time_secs: 1.0, - power: 0.25, - effect_power: 0.25, - speed: 0.25, - crit_chance: 0.25, + power: 0.5, + effect_power: 1.0, + speed: 1.0, + crit_chance: 1.0, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, diff --git a/assets/common/recipe_book.ron b/assets/common/recipe_book.ron index 3739c1417b..ec1ecb0c52 100644 --- a/assets/common/recipe_book.ron +++ b/assets/common/recipe_book.ron @@ -2,454 +2,454 @@ "crafting_hammer": ( output: ("common.items.tool.craftsman_hammer", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 6), - (Item("common.items.crafting_ing.stones"), 6), + (Item("common.items.crafting_ing.twigs"), 6, false), + (Item("common.items.crafting_ing.stones"), 6, false), ], craft_sprite: Some(Anvil), ), "mortar_pestle": ( output: ("common.items.crafting_tools.mortar_pestle", 1), inputs: [ - (Item("common.items.crafting_ing.stones"), 6), - (Item("common.items.crafting_ing.bowl"), 1), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.crafting_ing.stones"), 6, false), + (Item("common.items.crafting_ing.bowl"), 1, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(CraftingBench), ), "sewing_set": ( output: ("common.items.crafting_tools.sewing_set", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 1), - (Item("common.items.mineral.ingot.tin"), 1), + (Item("common.items.crafting_ing.cloth.linen"), 1, false), + (Item("common.items.mineral.ingot.tin"), 1, false), ], craft_sprite: Some(CraftingBench), ), "velorite_frag": ( output: ("common.items.mineral.ore.veloritefrag", 2), inputs: [ - (Item("common.items.mineral.ore.velorite"), 1), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.mineral.ore.velorite"), 1, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(Anvil), ), "potion_s": ( output: ("common.items.consumable.potion_minor", 1), inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1), - (Item("common.items.food.apple"), 4), - (Item("common.items.crafting_ing.honey"), 1), + (Item("common.items.crafting_ing.empty_vial"), 1, false), + (Item("common.items.food.apple"), 4, false), + (Item("common.items.crafting_ing.honey"), 1, false), ], craft_sprite: Some(Cauldron), ), "potion_m": ( output: ("common.items.consumable.potion_med", 1), inputs: [ - (Item("common.items.consumable.potion_minor"), 2), - (Item("common.items.mineral.ore.veloritefrag"), 4), + (Item("common.items.consumable.potion_minor"), 2, false), + (Item("common.items.mineral.ore.veloritefrag"), 4, false), ], craft_sprite: Some(Cauldron), ), "cactus_colada": ( output: ("common.items.food.cactus_colada", 1), inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1), - (Item("common.items.crafting_ing.cactus"), 8), + (Item("common.items.crafting_ing.empty_vial"), 1, false), + (Item("common.items.crafting_ing.cactus"), 8, false), ], craft_sprite: Some(Cauldron), ), "collar_basic": ( output: ("common.items.utility.collar", 1), inputs: [ - (Item("common.items.crafting_ing.leather.leather_strips"), 5), - (Item("common.items.mineral.gem.ruby"), 1), + (Item("common.items.crafting_ing.leather.leather_strips"), 5, false), + (Item("common.items.mineral.gem.ruby"), 1, false), ], craft_sprite: None, ), "bomb_coconut": ( output: ("common.items.utility.bomb", 1), inputs: [ - (Item("common.items.crafting_ing.stones"), 10), - (Item("common.items.food.coconut"), 2), - (Item("common.items.mineral.ore.veloritefrag"), 2), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.stones"), 10, false), + (Item("common.items.food.coconut"), 2, false), + (Item("common.items.mineral.ore.veloritefrag"), 2, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CraftingBench), ), "firework_blue": ( output: ("common.items.utility.firework_blue", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 1), - (Item("common.items.crafting_ing.stones"), 1), - (Item("common.items.food.coconut"), 1), - (Item("common.items.mineral.ore.veloritefrag"), 1), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.twigs"), 1, false), + (Item("common.items.crafting_ing.stones"), 1, false), + (Item("common.items.food.coconut"), 1, false), + (Item("common.items.mineral.ore.veloritefrag"), 1, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CraftingBench), ), "firework_green": ( output: ("common.items.utility.firework_green", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 1), - (Item("common.items.crafting_ing.stones"), 1), - (Item("common.items.food.coconut"), 1), - (Item("common.items.mineral.ore.veloritefrag"), 1), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.twigs"), 1, false), + (Item("common.items.crafting_ing.stones"), 1, false), + (Item("common.items.food.coconut"), 1, false), + (Item("common.items.mineral.ore.veloritefrag"), 1, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CraftingBench), ), "firework_purple": ( output: ("common.items.utility.firework_purple", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 1), - (Item("common.items.crafting_ing.stones"), 1), - (Item("common.items.food.coconut"), 1), - (Item("common.items.mineral.ore.veloritefrag"), 1), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.twigs"), 1, false), + (Item("common.items.crafting_ing.stones"), 1, false), + (Item("common.items.food.coconut"), 1, false), + (Item("common.items.mineral.ore.veloritefrag"), 1, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CraftingBench), ), "firework_red": ( output: ("common.items.utility.firework_red", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 1), - (Item("common.items.crafting_ing.stones"), 1), - (Item("common.items.food.coconut"), 1), - (Item("common.items.mineral.ore.veloritefrag"), 1), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.twigs"), 1, false), + (Item("common.items.crafting_ing.stones"), 1, false), + (Item("common.items.food.coconut"), 1, false), + (Item("common.items.mineral.ore.veloritefrag"), 1, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CraftingBench), ), "firework_white": ( output: ("common.items.utility.firework_white", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 1), - (Item("common.items.crafting_ing.stones"), 1), - (Item("common.items.food.coconut"), 1), - (Item("common.items.mineral.ore.veloritefrag"), 1), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.twigs"), 1, false), + (Item("common.items.crafting_ing.stones"), 1, false), + (Item("common.items.food.coconut"), 1, false), + (Item("common.items.mineral.ore.veloritefrag"), 1, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CraftingBench), ), "firework_yellow": ( output: ("common.items.utility.firework_yellow", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 1), - (Item("common.items.crafting_ing.stones"), 1), - (Item("common.items.food.coconut"), 1), - (Item("common.items.mineral.ore.veloritefrag"), 1), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.twigs"), 1, false), + (Item("common.items.crafting_ing.stones"), 1, false), + (Item("common.items.food.coconut"), 1, false), + (Item("common.items.mineral.ore.veloritefrag"), 1, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CraftingBench), ), "apple_shroom_curry": ( output: ("common.items.food.apple_mushroom_curry", 1), inputs: [ - (Item("common.items.food.mushroom"), 8), - (Item("common.items.food.coconut"), 1), - (Item("common.items.food.apple"), 4), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.food.mushroom"), 8, false), + (Item("common.items.food.coconut"), 1, false), + (Item("common.items.food.apple"), 4, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: Some(CookingPot), ), "fish_cooked": ( output: ("common.items.food.meat.fish_cooked", 1), inputs: [ - (Item("common.items.food.meat.fish_raw"), 1), + (Item("common.items.food.meat.fish_raw"), 1, false), ], craft_sprite: Some(CookingPot), ), "bird_cooked": ( output: ("common.items.food.meat.bird_cooked", 1), inputs: [ - (Item("common.items.food.meat.bird_raw"), 1), + (Item("common.items.food.meat.bird_raw"), 1, false), ], craft_sprite: Some(CookingPot), ), "bird_large_cooked": ( output: ("common.items.food.meat.bird_large_cooked", 1), inputs: [ - (Item("common.items.food.meat.bird_large_raw"), 1), + (Item("common.items.food.meat.bird_large_raw"), 1, false), ], craft_sprite: Some(CookingPot), ), "beast_small_cooked": ( output: ("common.items.food.meat.beast_small_cooked", 1), inputs: [ - (Item("common.items.food.meat.beast_small_raw"), 1), + (Item("common.items.food.meat.beast_small_raw"), 1, false), ], craft_sprite: Some(CookingPot), ), "beast_large_cooked": ( output: ("common.items.food.meat.beast_large_cooked", 1), inputs: [ - (Item("common.items.food.meat.beast_large_raw"), 1), + (Item("common.items.food.meat.beast_large_raw"), 1, false), ], craft_sprite: Some(CookingPot), ), "tough_cooked": ( output: ("common.items.food.meat.tough_cooked", 1), inputs: [ - (Item("common.items.food.meat.tough_raw"), 1), + (Item("common.items.food.meat.tough_raw"), 1, false), ], craft_sprite: Some(CookingPot), ), "leather strips": ( output: ("common.items.crafting_ing.leather.leather_strips", 4), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 1), + (Item("common.items.crafting_ing.leather.simple_leather"), 1, false), ], craft_sprite: Some(TanningRack), ), "simple leather": ( output: ("common.items.crafting_ing.leather.simple_leather", 1), inputs: [ - (Item("common.items.crafting_ing.hide.animal_hide"), 1), + (Item("common.items.crafting_ing.hide.animal_hide"), 1, false), ], craft_sprite: Some(TanningRack), ), "thick leather": ( output: ("common.items.crafting_ing.leather.thick_leather", 1), inputs: [ - (Item("common.items.crafting_ing.hide.tough_hide"), 1), + (Item("common.items.crafting_ing.hide.tough_hide"), 1, false), ], craft_sprite: Some(TanningRack), ), "rigid leather": ( output: ("common.items.crafting_ing.leather.rigid_leather", 1), inputs: [ - (Item("common.items.crafting_ing.hide.rugged_hide"), 1), + (Item("common.items.crafting_ing.hide.rugged_hide"), 1, false), ], craft_sprite: Some(TanningRack), ), "gold ingot": ( output: ("common.items.mineral.ingot.gold", 1), inputs: [ - (Item("common.items.mineral.ore.gold"), 1), + (Item("common.items.mineral.ore.gold"), 1, false), ], craft_sprite: Some(Forge), ), "silver ingot": ( output: ("common.items.mineral.ingot.silver", 1), inputs: [ - (Item("common.items.mineral.ore.silver"), 1), + (Item("common.items.mineral.ore.silver"), 1, false), ], craft_sprite: Some(Forge), ), "iron ingot": ( output: ("common.items.mineral.ingot.iron", 1), inputs: [ - (Item("common.items.mineral.ore.iron"), 1), + (Item("common.items.mineral.ore.iron"), 1, false), ], craft_sprite: Some(Forge), ), "cobalt ingot": ( output: ("common.items.mineral.ingot.cobalt", 1), inputs: [ - (Item("common.items.mineral.ore.cobalt"), 1), + (Item("common.items.mineral.ore.cobalt"), 1, false), ], craft_sprite: Some(Forge), ), "tin ingot": ( output: ("common.items.mineral.ingot.tin", 2), inputs: [ - (Item("common.items.mineral.ore.tin"), 1), + (Item("common.items.mineral.ore.tin"), 1, false), ], craft_sprite: Some(Forge), ), "orichalcum ingot": ( output: ("common.items.mineral.ingot.orichalcum", 2), inputs: [ - (Item("common.items.mineral.ingot.gold"), 1), - (Item("common.items.mineral.ingot.silver"), 1), + (Item("common.items.mineral.ingot.gold"), 1, false), + (Item("common.items.mineral.ingot.silver"), 1, false), ], craft_sprite: Some(Forge), ), "copper ingot": ( output: ("common.items.mineral.ingot.copper", 2), inputs: [ - (Item("common.items.mineral.ore.copper"), 1), + (Item("common.items.mineral.ore.copper"), 1, false), ], craft_sprite: Some(Forge), ), "bloodsteel ingot": ( output: ("common.items.mineral.ingot.bloodsteel", 2), inputs: [ - (Item("common.items.mineral.ore.bloodstone"), 1), - (Item("common.items.mineral.ingot.iron"), 1), - (Item("common.items.mineral.ore.coal"), 1), + (Item("common.items.mineral.ore.bloodstone"), 1, false), + (Item("common.items.mineral.ingot.iron"), 1, false), + (Item("common.items.mineral.ore.coal"), 1, false), ], craft_sprite: Some(Forge), ), "steel ingot": ( output: ("common.items.mineral.ingot.steel", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 1), - (Item("common.items.mineral.ore.coal"), 1), + (Item("common.items.mineral.ingot.iron"), 1, false), + (Item("common.items.mineral.ore.coal"), 1, false), ], craft_sprite: Some(Forge), ), "bronze ingot": ( output: ("common.items.mineral.ingot.bronze", 2), inputs: [ - (Item("common.items.mineral.ingot.copper"), 1), - (Item("common.items.mineral.ingot.tin"), 1), + (Item("common.items.mineral.ingot.copper"), 1, false), + (Item("common.items.mineral.ingot.tin"), 1, false), ], craft_sprite: Some(Forge), ), "cotton": ( output: ("common.items.crafting_ing.cloth.cotton", 1), inputs: [ - (Item("common.items.crafting_ing.cotton_boll"), 1), + (Item("common.items.crafting_ing.cotton_boll"), 1, false), ], craft_sprite: Some(SpinningWheel), ), "linen_flax": ( output: ("common.items.crafting_ing.cloth.linen", 1), inputs: [ - (Item("common.items.flowers.wild_flax"), 1), + (Item("common.items.flowers.wild_flax"), 1, false), ], craft_sprite: Some(SpinningWheel), ), "silk": ( output: ("common.items.crafting_ing.cloth.silk", 1), inputs: [ - (Item("common.items.crafting_ing.sticky_thread"), 1), + (Item("common.items.crafting_ing.sticky_thread"), 1, false), ], craft_sprite: Some(SpinningWheel), ), "lifecloth": ( output: ("common.items.crafting_ing.cloth.lifecloth", 1), inputs: [ - (Item("common.items.crafting_ing.animal_misc.lively_vine"), 1), - (Item("common.items.crafting_ing.cloth.cotton"), 1), + (Item("common.items.crafting_ing.animal_misc.lively_vine"), 1, false), + (Item("common.items.crafting_ing.cloth.cotton"), 1, false), ], craft_sprite: Some(SpinningWheel), ), "moonweave": ( output: ("common.items.crafting_ing.cloth.moonweave", 1), inputs: [ - (Item("common.items.flowers.moonbell"), 1), + (Item("common.items.flowers.moonbell"), 1, false), ], craft_sprite: Some(SpinningWheel), ), "sunsilk": ( output: ("common.items.crafting_ing.cloth.sunsilk", 1), inputs: [ - (Item("common.items.flowers.pyrebloom"), 1), + (Item("common.items.flowers.pyrebloom"), 1, false), ], craft_sprite: Some(SpinningWheel), ), "salad_plain": ( output: ("common.items.food.plainsalad", 1), inputs: [ - (Item("common.items.food.lettuce"), 1), - (Item("common.items.crafting_ing.bowl"), 1), + (Item("common.items.food.lettuce"), 1, false), + (Item("common.items.crafting_ing.bowl"), 1, false), ], craft_sprite: None, ), "salad_tomato": ( output: ("common.items.food.tomatosalad", 1), inputs: [ - (Item("common.items.food.lettuce"), 1), - (Item("common.items.food.tomato"), 2), - (Item("common.items.crafting_ing.bowl"), 1), + (Item("common.items.food.lettuce"), 1, false), + (Item("common.items.food.tomato"), 2, false), + (Item("common.items.crafting_ing.bowl"), 1, false), ], craft_sprite: None, ), "apples_stick": ( output: ("common.items.food.apple_stick", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 2), - (Item("common.items.food.apple"), 2), + (Item("common.items.crafting_ing.twigs"), 2, false), + (Item("common.items.food.apple"), 2, false), ], craft_sprite: None, ), "mushroom_stick": ( output: ("common.items.food.mushroom_stick", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 2), - (Item("common.items.food.mushroom"), 3), + (Item("common.items.crafting_ing.twigs"), 2, false), + (Item("common.items.food.mushroom"), 3, false), ], craft_sprite: None, ), "sunflower_icetea": ( output: ("common.items.food.sunflower_icetea", 4), inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 1), - (Item("common.items.flowers.sunflower"), 4), - (Item("common.items.crafting_ing.honey"), 1), + (Item("common.items.crafting_ing.empty_vial"), 1, false), + (Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, false), + (Item("common.items.flowers.sunflower"), 4, false), + (Item("common.items.crafting_ing.honey"), 1, false), ], craft_sprite: Some(Cauldron), ), "Plain Cloth Glider": ( output: ("common.items.glider.basic_white", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 5), - (Item("common.items.crafting_ing.leather.leather_strips"), 5), - (Item("common.items.crafting_ing.cloth.linen"), 10), - (Item("common.items.tool.craftsman_hammer"), 0), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.twigs"), 5, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 5, false), + (Item("common.items.crafting_ing.cloth.linen"), 10, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(CraftingBench), ), "Red Cloth Glider": ( output: ("common.items.glider.basic_red", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 5), - (Item("common.items.crafting_ing.cloth.linen_red"), 10), - (Item("common.items.crafting_ing.leather.thick_leather"), 4), - (Item("common.items.tool.craftsman_hammer"), 0), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.twigs"), 5, false), + (Item("common.items.crafting_ing.cloth.linen_red"), 10, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(CraftingBench), ), "Leaves Glider": ( output: ("common.items.glider.leaves", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 5), - (Item("common.items.crafting_ing.leather.thick_leather"), 4), - (Item("common.items.crafting_ing.cloth.linen"), 5), - (Item("common.items.mineral.gem.emerald"), 1), - (Item("common.items.tool.craftsman_hammer"), 0), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.twigs"), 5, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), + (Item("common.items.crafting_ing.cloth.linen"), 5, false), + (Item("common.items.mineral.gem.emerald"), 1, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(CraftingBench), ), "Sand Raptor Wings": ( output: ("common.items.glider.sandraptor", 1), inputs: [ - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6), - (Item("common.items.crafting_ing.twigs"), 5), - (Item("common.items.crafting_ing.leather.thick_leather"), 4), - (Item("common.items.crafting_ing.cloth.wool"), 5), - (Item("common.items.mineral.gem.sapphire"), 1), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6, false), + (Item("common.items.crafting_ing.twigs"), 5, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), + (Item("common.items.crafting_ing.cloth.wool"), 5, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(CraftingBench), ), "Snow Raptor Wings": ( output: ("common.items.glider.snowraptor", 1), inputs: [ - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6), - (Item("common.items.crafting_ing.twigs"), 5), - (Item("common.items.crafting_ing.leather.thick_leather"), 4), - (Item("common.items.crafting_ing.cloth.silk"), 5), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 1), - (Item("common.items.mineral.gem.ruby"), 1), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6, false), + (Item("common.items.crafting_ing.twigs"), 5, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), + (Item("common.items.crafting_ing.cloth.silk"), 5, false), + (Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, false), + (Item("common.items.mineral.gem.ruby"), 1, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(CraftingBench), ), "Wood Raptor Wings": ( output: ("common.items.glider.woodraptor", 1), inputs: [ - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6), - (Item("common.items.crafting_ing.twigs"), 5), - (Item("common.items.crafting_ing.leather.thick_leather"), 4), - (Item("common.items.crafting_ing.cloth.lifecloth"), 5), - (Item("common.items.mineral.gem.emerald"), 1), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6, false), + (Item("common.items.crafting_ing.twigs"), 5, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 5, false), + (Item("common.items.mineral.gem.emerald"), 1, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(CraftingBench), ), @@ -492,33 +492,33 @@ "Soothing Loop": ( output: ("common.items.weapons.sceptre.loops0", 1), inputs: [ - (Item("common.items.crafting_ing.twigs"), 20), - (Item("common.items.mineral.ore.veloritefrag"), 8), - (Item("common.items.mineral.gem.ruby"), 4), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.crafting_ing.twigs"), 20, false), + (Item("common.items.mineral.ore.veloritefrag"), 8, false), + (Item("common.items.mineral.gem.ruby"), 4, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(CraftingBench), ), "Hunting Bow": ( output: ("common.items.weapons.bow.wood-2", 1), inputs: [ - (Item("common.items.crafting_ing.leather.leather_strips"), 8), - (Item("common.items.crafting_ing.twigs"), 6), + (Item("common.items.crafting_ing.leather.leather_strips"), 8, false), + (Item("common.items.crafting_ing.twigs"), 6, false), ], craft_sprite: Some(CraftingBench), ), "Forest Spirit": ( output: ("common.items.weapons.sword.wood-2", 1), inputs: [ - (Item("common.items.crafting_ing.leather.leather_strips"), 4), - (Item("common.items.crafting_ing.twigs"), 10), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), + (Item("common.items.crafting_ing.twigs"), 10, false), ], craft_sprite: Some(Anvil), ), "Burnt Drumstick": ( output: ("common.items.weapons.hammer.burnt_drumstick", 1), inputs: [ - (Item("common.items.food.meat.bird_large_cooked"), 1), + (Item("common.items.food.meat.bird_large_cooked"), 1, false), ], craft_sprite: Some(CookingPot), ), @@ -526,56 +526,56 @@ "rawhide back": ( output: ("common.items.armor.hide.rawhide.back", 1), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.simple_leather"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "rawhide belt": ( output: ("common.items.armor.hide.rawhide.belt", 1), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 2), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.simple_leather"), 2, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "rawhide chest": ( output: ("common.items.armor.hide.rawhide.chest", 1), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 10), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.leather.simple_leather"), 10, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "rawhide feet": ( output: ("common.items.armor.hide.rawhide.foot", 1), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.simple_leather"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "rawhide hands": ( output: ("common.items.armor.hide.rawhide.hand", 1), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.simple_leather"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "rawhide pants": ( output: ("common.items.armor.hide.rawhide.pants", 1), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.leather.simple_leather"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "rawhide shoulder": ( output: ("common.items.armor.hide.rawhide.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 6), + (Item("common.items.crafting_ing.leather.simple_leather"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), ], craft_sprite: Some(CraftingBench), ), @@ -583,56 +583,56 @@ "leather back": ( output: ("common.items.armor.hide.leather.back", 1), inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.thick_leather"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "leather belt": ( output: ("common.items.armor.hide.leather.belt", 1), inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 2), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "leather chest": ( output: ("common.items.armor.hide.leather.chest", 1), inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 10), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.leather.thick_leather"), 10, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "leather feet": ( output: ("common.items.armor.hide.leather.foot", 1), inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.thick_leather"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "leather hands": ( output: ("common.items.armor.hide.leather.hand", 1), inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.leather.thick_leather"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "leather pants": ( output: ("common.items.armor.hide.leather.pants", 1), inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.leather.thick_leather"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "leather shoulder": ( output: ("common.items.armor.hide.leather.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 6), + (Item("common.items.crafting_ing.leather.thick_leather"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), ], craft_sprite: Some(CraftingBench), ), @@ -640,56 +640,56 @@ "scale back": ( output: ("common.items.armor.hide.scale.back", 1), inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.scales"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "scale belt": ( output: ("common.items.armor.hide.scale.belt", 1), inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 2), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.scales"), 2, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "scale chest": ( output: ("common.items.armor.hide.scale.chest", 1), inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 10), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.hide.scales"), 10, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "scale feet": ( output: ("common.items.armor.hide.scale.foot", 1), inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.scales"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "scale hands": ( output: ("common.items.armor.hide.scale.hand", 1), inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.scales"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "scale pants": ( output: ("common.items.armor.hide.scale.pants", 1), inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.hide.scales"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "scale shoulder": ( output: ("common.items.armor.hide.scale.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 6), + (Item("common.items.crafting_ing.hide.scales"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), ], craft_sprite: Some(CraftingBench), ), @@ -697,63 +697,63 @@ "carapace back": ( output: ("common.items.armor.hide.carapace.back", 1), inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 3), - (Item("common.items.mineral.ingot.steel"), 1), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.carapace"), 3, false), + (Item("common.items.mineral.ingot.steel"), 1, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "carapace belt": ( output: ("common.items.armor.hide.carapace.belt", 1), inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 2), - (Item("common.items.mineral.ingot.steel"), 1), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.carapace"), 2, false), + (Item("common.items.mineral.ingot.steel"), 1, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "carapace chest": ( output: ("common.items.armor.hide.carapace.chest", 1), inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 10), - (Item("common.items.mineral.ingot.steel"), 2), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.hide.carapace"), 10, false), + (Item("common.items.mineral.ingot.steel"), 2, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "carapace feet": ( output: ("common.items.armor.hide.carapace.foot", 1), inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 3), - (Item("common.items.mineral.ingot.steel"), 1), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.carapace"), 3, false), + (Item("common.items.mineral.ingot.steel"), 1, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "carapace hands": ( output: ("common.items.armor.hide.carapace.hand", 1), inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 3), - (Item("common.items.mineral.ingot.steel"), 1), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.crafting_ing.hide.carapace"), 3, false), + (Item("common.items.mineral.ingot.steel"), 1, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(CraftingBench), ), "carapace pants": ( output: ("common.items.armor.hide.carapace.pants", 1), inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 8), - (Item("common.items.mineral.ingot.steel"), 1), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.crafting_ing.hide.carapace"), 8, false), + (Item("common.items.mineral.ingot.steel"), 1, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(CraftingBench), ), "carapace shoulder": ( output: ("common.items.armor.hide.carapace.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 8), - (Item("common.items.mineral.ingot.steel"), 1), - (Item("common.items.crafting_ing.leather.leather_strips"), 6), + (Item("common.items.crafting_ing.hide.carapace"), 8, false), + (Item("common.items.mineral.ingot.steel"), 1, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), ], craft_sprite: Some(CraftingBench), ), @@ -761,67 +761,67 @@ "primal back": ( output: ("common.items.armor.hide.primal.back", 1), inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 3), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 1), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2), + (Item("common.items.crafting_ing.hide.plate"), 3, false), + (Item("common.items.crafting_ing.animal_misc.large_horn"), 1, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), ], craft_sprite: Some(CraftingBench), ), "primal belt": ( output: ("common.items.armor.hide.primal.belt", 1), inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 2), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2), + (Item("common.items.crafting_ing.hide.plate"), 2, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), ], craft_sprite: Some(CraftingBench), ), "primal chest": ( output: ("common.items.armor.hide.primal.chest", 1), inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 10), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 1), - (Item("common.items.crafting_ing.cloth.lifecloth"), 2), - (Item("common.items.crafting_ing.leather.rigid_leather"), 4), + (Item("common.items.crafting_ing.hide.plate"), 10, false), + (Item("common.items.crafting_ing.animal_misc.large_horn"), 1, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 4, false), ], craft_sprite: Some(CraftingBench), ), "primal feet": ( output: ("common.items.armor.hide.primal.foot", 1), inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 3), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2), + (Item("common.items.crafting_ing.hide.plate"), 3, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), ], craft_sprite: Some(CraftingBench), ), "primal hands": ( output: ("common.items.armor.hide.primal.hand", 1), inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 3), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2), + (Item("common.items.crafting_ing.hide.plate"), 3, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), ], craft_sprite: Some(CraftingBench), ), "primal pants": ( output: ("common.items.armor.hide.primal.pants", 1), inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 8), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 1), - (Item("common.items.crafting_ing.cloth.lifecloth"), 2), - (Item("common.items.crafting_ing.leather.rigid_leather"), 4), + (Item("common.items.crafting_ing.hide.plate"), 8, false), + (Item("common.items.crafting_ing.animal_misc.large_horn"), 1, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 4, false), ], craft_sprite: Some(CraftingBench), ), "primal shoulder": ( output: ("common.items.armor.hide.primal.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 8), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 2), - (Item("common.items.crafting_ing.cloth.lifecloth"), 2), - (Item("common.items.crafting_ing.leather.rigid_leather"), 6), + (Item("common.items.crafting_ing.hide.plate"), 8, false), + (Item("common.items.crafting_ing.animal_misc.large_horn"), 2, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 6, false), ], craft_sprite: Some(CraftingBench), ), @@ -829,67 +829,67 @@ "dragonscale back": ( output: ("common.items.armor.hide.dragonscale.back", 1), inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 3), - (Item("common.items.mineral.ingot.bloodsteel"), 2), - (Item("common.items.crafting_ing.leather.rigid_leather"), 1), - (Item("common.items.crafting_ing.hide.scales"), 2), + (Item("common.items.crafting_ing.hide.dragon_scale"), 3, false), + (Item("common.items.mineral.ingot.bloodsteel"), 2, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 1, false), + (Item("common.items.crafting_ing.hide.scales"), 2, false), ], craft_sprite: Some(CraftingBench), ), "dragonscale belt": ( output: ("common.items.armor.hide.dragonscale.belt", 1), inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 2), - (Item("common.items.mineral.ingot.bloodsteel"), 2), - (Item("common.items.crafting_ing.hide.scales"), 2), + (Item("common.items.crafting_ing.hide.dragon_scale"), 2, false), + (Item("common.items.mineral.ingot.bloodsteel"), 2, false), + (Item("common.items.crafting_ing.hide.scales"), 2, false), ], craft_sprite: Some(CraftingBench), ), "dragonscale chest": ( output: ("common.items.armor.hide.dragonscale.chest", 1), inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 10), - (Item("common.items.mineral.ingot.bloodsteel"), 3), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2), - (Item("common.items.crafting_ing.hide.scales"), 4), + (Item("common.items.crafting_ing.hide.dragon_scale"), 10, false), + (Item("common.items.mineral.ingot.bloodsteel"), 3, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), + (Item("common.items.crafting_ing.hide.scales"), 4, false), ], craft_sprite: Some(CraftingBench), ), "dragonscale feet": ( output: ("common.items.armor.hide.dragonscale.foot", 1), inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 3), - (Item("common.items.mineral.ingot.bloodsteel"), 2), - (Item("common.items.crafting_ing.hide.scales"), 2), + (Item("common.items.crafting_ing.hide.dragon_scale"), 3, false), + (Item("common.items.mineral.ingot.bloodsteel"), 2, false), + (Item("common.items.crafting_ing.hide.scales"), 2, false), ], craft_sprite: Some(CraftingBench), ), "dragonscale hands": ( output: ("common.items.armor.hide.dragonscale.hand", 1), inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 3), - (Item("common.items.mineral.ingot.bloodsteel"), 2), - (Item("common.items.crafting_ing.hide.scales"), 2), + (Item("common.items.crafting_ing.hide.dragon_scale"), 3, false), + (Item("common.items.mineral.ingot.bloodsteel"), 2, false), + (Item("common.items.crafting_ing.hide.scales"), 2, false), ], craft_sprite: Some(CraftingBench), ), "dragonscale pants": ( output: ("common.items.armor.hide.dragonscale.pants", 1), inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 8), - (Item("common.items.mineral.ingot.bloodsteel"), 3), - (Item("common.items.crafting_ing.leather.rigid_leather"), 1), - (Item("common.items.crafting_ing.hide.scales"), 4), + (Item("common.items.crafting_ing.hide.dragon_scale"), 8, false), + (Item("common.items.mineral.ingot.bloodsteel"), 3, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 1, false), + (Item("common.items.crafting_ing.hide.scales"), 4, false), ], craft_sprite: Some(CraftingBench), ), "dragonscale shoulder": ( output: ("common.items.armor.hide.dragonscale.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 8), - (Item("common.items.mineral.ingot.bloodsteel"), 3), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2), - (Item("common.items.crafting_ing.hide.scales"), 6), + (Item("common.items.crafting_ing.hide.dragon_scale"), 8, false), + (Item("common.items.mineral.ingot.bloodsteel"), 3, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), + (Item("common.items.crafting_ing.hide.scales"), 6, false), ], craft_sprite: Some(CraftingBench), ), @@ -897,49 +897,49 @@ "linen back": ( output: ("common.items.armor.cloth.linen.back", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 3), + (Item("common.items.crafting_ing.cloth.linen"), 3, false), ], craft_sprite: Some(Loom), ), "linen belt": ( output: ("common.items.armor.cloth.linen.belt", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 2), + (Item("common.items.crafting_ing.cloth.linen"), 2, false), ], craft_sprite: Some(Loom), ), "linen chest": ( output: ("common.items.armor.cloth.linen.chest", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 10), + (Item("common.items.crafting_ing.cloth.linen"), 10, false), ], craft_sprite: Some(Loom), ), "linen feet": ( output: ("common.items.armor.cloth.linen.foot", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 3), + (Item("common.items.crafting_ing.cloth.linen"), 3, false), ], craft_sprite: Some(Loom), ), "linen hands": ( output: ("common.items.armor.cloth.linen.hand", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 3), + (Item("common.items.crafting_ing.cloth.linen"), 3, false), ], craft_sprite: Some(Loom), ), "linen pants": ( output: ("common.items.armor.cloth.linen.pants", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 8), + (Item("common.items.crafting_ing.cloth.linen"), 8, false), ], craft_sprite: Some(Loom), ), "linen shoulder": ( output: ("common.items.armor.cloth.linen.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 8), + (Item("common.items.crafting_ing.cloth.linen"), 8, false), ], craft_sprite: Some(Loom), ), @@ -947,70 +947,70 @@ "woolen back": ( output: ("common.items.armor.cloth.woolen.back", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 3), - (Item("common.items.crafting_ing.cloth.cotton"), 2), - (Item("common.items.crafting_ing.animal_misc.fur"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 3, false), + (Item("common.items.crafting_ing.cloth.cotton"), 2, false), + (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "woolen belt": ( output: ("common.items.armor.cloth.woolen.belt", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 1), - (Item("common.items.crafting_ing.cloth.cotton"), 1), - (Item("common.items.crafting_ing.animal_misc.fur"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 1, false), + (Item("common.items.crafting_ing.cloth.cotton"), 1, false), + (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "woolen chest": ( output: ("common.items.armor.cloth.woolen.chest", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 8), - (Item("common.items.crafting_ing.cloth.cotton"), 2), - (Item("common.items.crafting_ing.animal_misc.fur"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 8, false), + (Item("common.items.crafting_ing.cloth.cotton"), 2, false), + (Item("common.items.crafting_ing.animal_misc.fur"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "woolen feet": ( output: ("common.items.armor.cloth.woolen.foot", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 2), - (Item("common.items.crafting_ing.cloth.cotton"), 1), - (Item("common.items.crafting_ing.animal_misc.fur"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 2, false), + (Item("common.items.crafting_ing.cloth.cotton"), 1, false), + (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "woolen hands": ( output: ("common.items.armor.cloth.woolen.hand", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 2), - (Item("common.items.crafting_ing.cloth.cotton"), 1), - (Item("common.items.crafting_ing.animal_misc.fur"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 2, false), + (Item("common.items.crafting_ing.cloth.cotton"), 1, false), + (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "woolen pants": ( output: ("common.items.armor.cloth.woolen.pants", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 6), - (Item("common.items.crafting_ing.cloth.cotton"), 2), - (Item("common.items.crafting_ing.animal_misc.fur"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 6, false), + (Item("common.items.crafting_ing.cloth.cotton"), 2, false), + (Item("common.items.crafting_ing.animal_misc.fur"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "woolen shoulder": ( output: ("common.items.armor.cloth.woolen.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 6), - (Item("common.items.crafting_ing.cloth.cotton"), 2), - (Item("common.items.crafting_ing.animal_misc.fur"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 6, false), + (Item("common.items.crafting_ing.cloth.cotton"), 2, false), + (Item("common.items.crafting_ing.animal_misc.fur"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), @@ -1018,59 +1018,59 @@ "silken back": ( output: ("common.items.armor.cloth.silken.back", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "silken belt": ( output: ("common.items.armor.cloth.silken.belt", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "silken chest": ( output: ("common.items.armor.cloth.silken.chest", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 10), - (Item("common.items.mineral.gem.amethyst"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 10, false), + (Item("common.items.mineral.gem.amethyst"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "silken feet": ( output: ("common.items.armor.cloth.silken.foot", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "silken hands": ( output: ("common.items.armor.cloth.silken.hand", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "silken pants": ( output: ("common.items.armor.cloth.silken.pants", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 8), - (Item("common.items.mineral.gem.amethyst"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 8, false), + (Item("common.items.mineral.gem.amethyst"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "silken shoulder": ( output: ("common.items.armor.cloth.silken.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 8), - (Item("common.items.mineral.gem.amethyst"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 8, false), + (Item("common.items.mineral.gem.amethyst"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), @@ -1078,63 +1078,63 @@ "druid back": ( output: ("common.items.armor.cloth.druid.back", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 3), - (Item("common.items.mineral.ore.veloritefrag"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), + (Item("common.items.mineral.ore.veloritefrag"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "druid belt": ( output: ("common.items.armor.cloth.druid.belt", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 2), - (Item("common.items.mineral.ore.veloritefrag"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), + (Item("common.items.mineral.ore.veloritefrag"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "druid chest": ( output: ("common.items.armor.cloth.druid.chest", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 10), - (Item("common.items.mineral.ore.veloritefrag"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 10, false), + (Item("common.items.mineral.ore.veloritefrag"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "druid feet": ( output: ("common.items.armor.cloth.druid.foot", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 3), - (Item("common.items.mineral.ore.veloritefrag"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), + (Item("common.items.mineral.ore.veloritefrag"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "druid hands": ( output: ("common.items.armor.cloth.druid.hand", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 3), - (Item("common.items.mineral.ore.veloritefrag"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), + (Item("common.items.mineral.ore.veloritefrag"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "druid pants": ( output: ("common.items.armor.cloth.druid.pants", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 8), - (Item("common.items.mineral.ore.veloritefrag"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 8, false), + (Item("common.items.mineral.ore.veloritefrag"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "druid shoulder": ( output: ("common.items.armor.cloth.druid.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 8), - (Item("common.items.mineral.ore.veloritefrag"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 8, false), + (Item("common.items.mineral.ore.veloritefrag"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), @@ -1142,72 +1142,72 @@ "moonweave back": ( output: ("common.items.armor.cloth.moonweave.back", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 3), - (Item("common.items.crafting_ing.hide.leather_troll"), 3), - (Item("common.items.mineral.ingot.silver"), 1), - (Item("common.items.mineral.ingot.cobalt"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.moonweave"), 3, false), + (Item("common.items.crafting_ing.hide.leather_troll"), 3, false), + (Item("common.items.mineral.ingot.silver"), 1, false), + (Item("common.items.mineral.ingot.cobalt"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "moonweave belt": ( output: ("common.items.armor.cloth.moonweave.belt", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 2), - (Item("common.items.crafting_ing.hide.leather_troll"), 2), - (Item("common.items.mineral.ingot.cobalt"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.moonweave"), 2, false), + (Item("common.items.crafting_ing.hide.leather_troll"), 2, false), + (Item("common.items.mineral.ingot.cobalt"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "moonweave chest": ( output: ("common.items.armor.cloth.moonweave.chest", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 10), - (Item("common.items.crafting_ing.hide.leather_troll"), 5), - (Item("common.items.mineral.ingot.silver"), 1), - (Item("common.items.mineral.ingot.cobalt"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.moonweave"), 10, false), + (Item("common.items.crafting_ing.hide.leather_troll"), 5, false), + (Item("common.items.mineral.ingot.silver"), 1, false), + (Item("common.items.mineral.ingot.cobalt"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "moonweave feet": ( output: ("common.items.armor.cloth.moonweave.foot", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 3), - (Item("common.items.crafting_ing.hide.leather_troll"), 2), - (Item("common.items.mineral.ingot.cobalt"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.moonweave"), 3, false), + (Item("common.items.crafting_ing.hide.leather_troll"), 2, false), + (Item("common.items.mineral.ingot.cobalt"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "moonweave hands": ( output: ("common.items.armor.cloth.moonweave.hand", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 3), - (Item("common.items.crafting_ing.hide.leather_troll"), 2), - (Item("common.items.mineral.ingot.cobalt"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.moonweave"), 3, false), + (Item("common.items.crafting_ing.hide.leather_troll"), 2, false), + (Item("common.items.mineral.ingot.cobalt"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "moonweave pants": ( output: ("common.items.armor.cloth.moonweave.pants", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 8), - (Item("common.items.crafting_ing.hide.leather_troll"), 3), - (Item("common.items.mineral.ingot.cobalt"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.moonweave"), 8, false), + (Item("common.items.crafting_ing.hide.leather_troll"), 3, false), + (Item("common.items.mineral.ingot.cobalt"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "moonweave shoulder": ( output: ("common.items.armor.cloth.moonweave.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 8), - (Item("common.items.crafting_ing.hide.leather_troll"), 3), - (Item("common.items.mineral.ingot.cobalt"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.moonweave"), 8, false), + (Item("common.items.crafting_ing.hide.leather_troll"), 3, false), + (Item("common.items.mineral.ingot.cobalt"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), @@ -1215,65 +1215,65 @@ "sunsilk back": ( output: ("common.items.armor.cloth.sunsilk.back", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 3), - (Item("common.items.crafting_ing.animal_misc.phoenix_feather"), 1), - (Item("common.items.mineral.ingot.gold"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.sunsilk"), 3, false), + (Item("common.items.crafting_ing.animal_misc.phoenix_feather"), 1, false), + (Item("common.items.mineral.ingot.gold"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "sunsilk belt": ( output: ("common.items.armor.cloth.sunsilk.belt", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 2), - (Item("common.items.mineral.ingot.gold"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.sunsilk"), 2, false), + (Item("common.items.mineral.ingot.gold"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "sunsilk chest": ( output: ("common.items.armor.cloth.sunsilk.chest", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 10), - (Item("common.items.crafting_ing.animal_misc.phoenix_feather"), 2), - (Item("common.items.mineral.ingot.gold"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.sunsilk"), 10, false), + (Item("common.items.crafting_ing.animal_misc.phoenix_feather"), 2, false), + (Item("common.items.mineral.ingot.gold"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "sunsilk feet": ( output: ("common.items.armor.cloth.sunsilk.foot", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 3), - (Item("common.items.mineral.ingot.gold"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.sunsilk"), 3, false), + (Item("common.items.mineral.ingot.gold"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "sunsilk hands": ( output: ("common.items.armor.cloth.sunsilk.hand", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 3), - (Item("common.items.mineral.ingot.gold"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.sunsilk"), 3, false), + (Item("common.items.mineral.ingot.gold"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "sunsilk pants": ( output: ("common.items.armor.cloth.sunsilk.pants", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 8), - (Item("common.items.mineral.ingot.gold"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.sunsilk"), 8, false), + (Item("common.items.mineral.ingot.gold"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), "sunsilk shoulder": ( output: ("common.items.armor.cloth.sunsilk.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 8), - (Item("common.items.mineral.ingot.gold"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.sunsilk"), 8, false), + (Item("common.items.mineral.ingot.gold"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(Loom), ), @@ -1281,56 +1281,56 @@ "bronze back": ( output: ("common.items.armor.mail.bronze.back", 1), inputs: [ - (Item("common.items.mineral.ingot.bronze"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.bronze"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "bronze belt": ( output: ("common.items.armor.mail.bronze.belt", 1), inputs: [ - (Item("common.items.mineral.ingot.bronze"), 2), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.bronze"), 2, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "bronze chest": ( output: ("common.items.armor.mail.bronze.chest", 1), inputs: [ - (Item("common.items.mineral.ingot.bronze"), 10), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.mineral.ingot.bronze"), 10, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(Anvil), ), "bronze feet": ( output: ("common.items.armor.mail.bronze.foot", 1), inputs: [ - (Item("common.items.mineral.ingot.bronze"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.bronze"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "bronze hands": ( output: ("common.items.armor.mail.bronze.hand", 1), inputs: [ - (Item("common.items.mineral.ingot.bronze"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.bronze"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "bronze pants": ( output: ("common.items.armor.mail.bronze.pants", 1), inputs: [ - (Item("common.items.mineral.ingot.bronze"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.mineral.ingot.bronze"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(Anvil), ), "bronze shoulder": ( output: ("common.items.armor.mail.bronze.shoulder", 1), inputs: [ - (Item("common.items.mineral.ingot.bronze"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 6), + (Item("common.items.mineral.ingot.bronze"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), ], craft_sprite: Some(Anvil), ), @@ -1338,56 +1338,56 @@ "iron back": ( output: ("common.items.armor.mail.iron.back", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.iron"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "iron belt": ( output: ("common.items.armor.mail.iron.belt", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 2), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.iron"), 2, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "iron chest": ( output: ("common.items.armor.mail.iron.chest", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 10), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.mineral.ingot.iron"), 10, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(Anvil), ), "iron feet": ( output: ("common.items.armor.mail.iron.foot", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.iron"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "iron hands": ( output: ("common.items.armor.mail.iron.hand", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 3), - (Item("common.items.crafting_ing.leather.leather_strips"), 2), + (Item("common.items.mineral.ingot.iron"), 3, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), ], craft_sprite: Some(Anvil), ), "iron pants": ( output: ("common.items.armor.mail.iron.pants", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 4), + (Item("common.items.mineral.ingot.iron"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), ], craft_sprite: Some(Anvil), ), "iron shoulder": ( output: ("common.items.armor.mail.iron.shoulder", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 8), - (Item("common.items.crafting_ing.leather.leather_strips"), 6), + (Item("common.items.mineral.ingot.iron"), 8, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), ], craft_sprite: Some(Anvil), ), @@ -1395,56 +1395,56 @@ "steel back": ( output: ("common.items.armor.mail.steel.back", 1), inputs: [ - (Item("common.items.mineral.ingot.steel"), 3), - (Item("common.items.crafting_ing.cloth.linen"), 2), + (Item("common.items.mineral.ingot.steel"), 3, false), + (Item("common.items.crafting_ing.cloth.linen"), 2, false), ], craft_sprite: Some(Anvil), ), "steel belt": ( output: ("common.items.armor.mail.steel.belt", 1), inputs: [ - (Item("common.items.mineral.ingot.steel"), 2), - (Item("common.items.crafting_ing.leather.thick_leather"), 2), + (Item("common.items.mineral.ingot.steel"), 2, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), ], craft_sprite: Some(Anvil), ), "steel chest": ( output: ("common.items.armor.mail.steel.chest", 1), inputs: [ - (Item("common.items.mineral.ingot.steel"), 10), - (Item("common.items.crafting_ing.leather.thick_leather"), 4), + (Item("common.items.mineral.ingot.steel"), 10, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), ], craft_sprite: Some(Anvil), ), "steel feet": ( output: ("common.items.armor.mail.steel.foot", 1), inputs: [ - (Item("common.items.mineral.ingot.steel"), 3), - (Item("common.items.crafting_ing.leather.thick_leather"), 2), + (Item("common.items.mineral.ingot.steel"), 3, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), ], craft_sprite: Some(Anvil), ), "steel hands": ( output: ("common.items.armor.mail.steel.hand", 1), inputs: [ - (Item("common.items.mineral.ingot.steel"), 3), - (Item("common.items.crafting_ing.leather.thick_leather"), 2), + (Item("common.items.mineral.ingot.steel"), 3, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), ], craft_sprite: Some(Anvil), ), "steel pants": ( output: ("common.items.armor.mail.steel.pants", 1), inputs: [ - (Item("common.items.mineral.ingot.steel"), 8), - (Item("common.items.crafting_ing.leather.thick_leather"), 4), + (Item("common.items.mineral.ingot.steel"), 8, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), ], craft_sprite: Some(Anvil), ), "steel shoulder": ( output: ("common.items.armor.mail.steel.shoulder", 1), inputs: [ - (Item("common.items.mineral.ingot.steel"), 8), - (Item("common.items.crafting_ing.leather.thick_leather"), 6), + (Item("common.items.mineral.ingot.steel"), 8, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 6, false), ], craft_sprite: Some(Anvil), ), @@ -1452,61 +1452,61 @@ "cobalt back": ( output: ("common.items.armor.mail.cobalt.back", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 3), - (Item("common.items.crafting_ing.cloth.silk"), 4), - (Item("common.items.mineral.gem.sapphire"), 2), + (Item("common.items.mineral.ingot.cobalt"), 3, false), + (Item("common.items.crafting_ing.cloth.silk"), 4, false), + (Item("common.items.mineral.gem.sapphire"), 2, false), ], craft_sprite: Some(Anvil), ), "cobalt belt": ( output: ("common.items.armor.mail.cobalt.belt", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 2), - (Item("common.items.crafting_ing.cloth.silk"), 2), - (Item("common.items.mineral.gem.sapphire"), 1), + (Item("common.items.mineral.ingot.cobalt"), 2, false), + (Item("common.items.crafting_ing.cloth.silk"), 2, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), ], craft_sprite: Some(Anvil), ), "cobalt chest": ( output: ("common.items.armor.mail.cobalt.chest", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 10), - (Item("common.items.crafting_ing.cloth.silk"), 3), - (Item("common.items.mineral.gem.sapphire"), 3), + (Item("common.items.mineral.ingot.cobalt"), 10, false), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), + (Item("common.items.mineral.gem.sapphire"), 3, false), ], craft_sprite: Some(Anvil), ), "cobalt feet": ( output: ("common.items.armor.mail.cobalt.foot", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 3), - (Item("common.items.crafting_ing.cloth.silk"), 3), + (Item("common.items.mineral.ingot.cobalt"), 3, false), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), ], craft_sprite: Some(Anvil), ), "cobalt hands": ( output: ("common.items.armor.mail.cobalt.hand", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 3), - (Item("common.items.crafting_ing.cloth.silk"), 3), + (Item("common.items.mineral.ingot.cobalt"), 3, false), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), ], craft_sprite: Some(Anvil), ), "cobalt pants": ( output: ("common.items.armor.mail.cobalt.pants", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 8), - (Item("common.items.crafting_ing.cloth.silk"), 3), - (Item("common.items.mineral.gem.sapphire"), 2), + (Item("common.items.mineral.ingot.cobalt"), 8, false), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), + (Item("common.items.mineral.gem.sapphire"), 2, false), ], craft_sprite: Some(Anvil), ), "cobalt shoulder": ( output: ("common.items.armor.mail.cobalt.shoulder", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 8), - (Item("common.items.crafting_ing.cloth.silk"), 3), - (Item("common.items.mineral.gem.sapphire"), 2), + (Item("common.items.mineral.ingot.cobalt"), 8, false), + (Item("common.items.crafting_ing.cloth.silk"), 3, false), + (Item("common.items.mineral.gem.sapphire"), 2, false), ], craft_sprite: Some(Anvil), ), @@ -1514,62 +1514,62 @@ "bloodsteel back": ( output: ("common.items.armor.mail.bloodsteel.back", 1), inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 3), - (Item("common.items.crafting_ing.hide.carapace"), 1), - (Item("common.items.crafting_ing.cloth.lifecloth"), 3), - (Item("common.items.mineral.gem.ruby"), 1), + (Item("common.items.mineral.ingot.bloodsteel"), 3, false), + (Item("common.items.crafting_ing.hide.carapace"), 1, false), + (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), + (Item("common.items.mineral.gem.ruby"), 1, false), ], craft_sprite: Some(Anvil), ), "bloodsteel belt": ( output: ("common.items.armor.mail.bloodsteel.belt", 1), inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 2), - (Item("common.items.crafting_ing.hide.carapace"), 2), + (Item("common.items.mineral.ingot.bloodsteel"), 2, false), + (Item("common.items.crafting_ing.hide.carapace"), 2, false), ], craft_sprite: Some(Anvil), ), "bloodsteel chest": ( output: ("common.items.armor.mail.bloodsteel.chest", 1), inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 10), - (Item("common.items.crafting_ing.hide.carapace"), 4), - (Item("common.items.mineral.gem.diamond"), 2), - (Item("common.items.mineral.gem.ruby"), 2), + (Item("common.items.mineral.ingot.bloodsteel"), 10, false), + (Item("common.items.crafting_ing.hide.carapace"), 4, false), + (Item("common.items.mineral.gem.diamond"), 2, false), + (Item("common.items.mineral.gem.ruby"), 2, false), ], craft_sprite: Some(Anvil), ), "bloodsteel feet": ( output: ("common.items.armor.mail.bloodsteel.foot", 1), inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 3), - (Item("common.items.crafting_ing.hide.carapace"), 2), + (Item("common.items.mineral.ingot.bloodsteel"), 3, false), + (Item("common.items.crafting_ing.hide.carapace"), 2, false), ], craft_sprite: Some(Anvil), ), "bloodsteel hands": ( output: ("common.items.armor.mail.bloodsteel.hand", 1), inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 3), - (Item("common.items.crafting_ing.hide.carapace"), 2), + (Item("common.items.mineral.ingot.bloodsteel"), 3, false), + (Item("common.items.crafting_ing.hide.carapace"), 2, false), ], craft_sprite: Some(Anvil), ), "bloodsteel pants": ( output: ("common.items.armor.mail.bloodsteel.pants", 1), inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 8), - (Item("common.items.crafting_ing.hide.carapace"), 3), - (Item("common.items.mineral.gem.ruby"), 2), + (Item("common.items.mineral.ingot.bloodsteel"), 8, false), + (Item("common.items.crafting_ing.hide.carapace"), 3, false), + (Item("common.items.mineral.gem.ruby"), 2, false), ], craft_sprite: Some(Anvil), ), "bloodsteel shoulder": ( output: ("common.items.armor.mail.bloodsteel.shoulder", 1), inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 8), - (Item("common.items.crafting_ing.hide.carapace"), 4), - (Item("common.items.mineral.gem.ruby"), 2), + (Item("common.items.mineral.ingot.bloodsteel"), 8, false), + (Item("common.items.crafting_ing.hide.carapace"), 4, false), + (Item("common.items.mineral.gem.ruby"), 2, false), ], craft_sprite: Some(Anvil), ), @@ -1577,71 +1577,71 @@ "orichalcum back": ( output: ("common.items.armor.mail.orichalcum.back", 1), inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 3), - (Item("common.items.crafting_ing.hide.plate"), 3), - (Item("common.items.crafting_ing.cloth.moonweave"), 2), - (Item("common.items.mineral.gem.diamond"), 2), - (Item("common.items.mineral.gem.sapphire"), 1), + (Item("common.items.mineral.ingot.orichalcum"), 3, false), + (Item("common.items.crafting_ing.hide.plate"), 3, false), + (Item("common.items.crafting_ing.cloth.moonweave"), 2, false), + (Item("common.items.mineral.gem.diamond"), 2, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), ], craft_sprite: Some(Anvil), ), "orichalcum belt": ( output: ("common.items.armor.mail.orichalcum.belt", 1), inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 2), - (Item("common.items.crafting_ing.hide.plate"), 2), - (Item("common.items.mineral.gem.diamond"), 2), - (Item("common.items.mineral.gem.sapphire"), 1), + (Item("common.items.mineral.ingot.orichalcum"), 2, false), + (Item("common.items.crafting_ing.hide.plate"), 2, false), + (Item("common.items.mineral.gem.diamond"), 2, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), ], craft_sprite: Some(Anvil), ), "orichalcum chest": ( output: ("common.items.armor.mail.orichalcum.chest", 1), inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 10), - (Item("common.items.mineral.ingot.cobalt"), 2), - (Item("common.items.crafting_ing.hide.plate"), 4), - (Item("common.items.mineral.gem.diamond"), 3), - (Item("common.items.mineral.gem.sapphire"), 2), + (Item("common.items.mineral.ingot.orichalcum"), 10, false), + (Item("common.items.mineral.ingot.cobalt"), 2, false), + (Item("common.items.crafting_ing.hide.plate"), 4, false), + (Item("common.items.mineral.gem.diamond"), 3, false), + (Item("common.items.mineral.gem.sapphire"), 2, false), ], craft_sprite: Some(Anvil), ), "orichalcum feet": ( output: ("common.items.armor.mail.orichalcum.foot", 1), inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 3), - (Item("common.items.crafting_ing.hide.plate"), 2), - (Item("common.items.mineral.gem.diamond"), 1), - (Item("common.items.mineral.gem.sapphire"), 1), + (Item("common.items.mineral.ingot.orichalcum"), 3, false), + (Item("common.items.crafting_ing.hide.plate"), 2, false), + (Item("common.items.mineral.gem.diamond"), 1, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), ], craft_sprite: Some(Anvil), ), "orichalcum hands": ( output: ("common.items.armor.mail.orichalcum.hand", 1), inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 3), - (Item("common.items.crafting_ing.hide.plate"), 2), - (Item("common.items.mineral.gem.diamond"), 1), - (Item("common.items.mineral.gem.sapphire"), 1), + (Item("common.items.mineral.ingot.orichalcum"), 3, false), + (Item("common.items.crafting_ing.hide.plate"), 2, false), + (Item("common.items.mineral.gem.diamond"), 1, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), ], craft_sprite: Some(Anvil), ), "orichalcum pants": ( output: ("common.items.armor.mail.orichalcum.pants", 1), inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 8), - (Item("common.items.mineral.ingot.cobalt"), 1), - (Item("common.items.crafting_ing.hide.plate"), 3), - (Item("common.items.mineral.gem.diamond"), 2), + (Item("common.items.mineral.ingot.orichalcum"), 8, false), + (Item("common.items.mineral.ingot.cobalt"), 1, false), + (Item("common.items.crafting_ing.hide.plate"), 3, false), + (Item("common.items.mineral.gem.diamond"), 2, false), ], craft_sprite: Some(Anvil), ), "orichalcum shoulder": ( output: ("common.items.armor.mail.orichalcum.shoulder", 1), inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 8), - (Item("common.items.crafting_ing.hide.plate"), 4), - (Item("common.items.mineral.gem.sapphire"), 2), + (Item("common.items.mineral.ingot.orichalcum"), 8, false), + (Item("common.items.crafting_ing.hide.plate"), 4, false), + (Item("common.items.mineral.gem.sapphire"), 2, false), ], craft_sprite: Some(Anvil), ), @@ -1649,113 +1649,113 @@ "Seashell Necklace": ( output: ("common.items.armor.misc.neck.shell", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 2), - (Item("common.items.mineral.gem.sapphire"), 1), - (Item("common.items.crafting_ing.seashells"), 3), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.linen"), 2, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), + (Item("common.items.crafting_ing.seashells"), 3, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(CraftingBench), ), "red cloth": ( output: ("common.items.crafting_ing.cloth.linen_red", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 1), - (Item("common.items.flowers.red"), 1), - (Item("common.items.crafting_tools.mortar_pestle"), 0), + (Item("common.items.crafting_ing.cloth.linen"), 1, false), + (Item("common.items.flowers.red"), 1, false), + (Item("common.items.crafting_tools.mortar_pestle"), 0, false), ], craft_sprite: None, ), "tiny red pouch": ( output: ("common.items.armor.misc.bag.tiny_red_pouch", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.linen_red"), 3), + (Item("common.items.crafting_ing.cloth.linen_red"), 3, false), ], craft_sprite: None, ), "tiny leather pouch": ( output: ("common.items.armor.misc.bag.tiny_leather_pouch", 1), inputs: [ - (Item("common.items.crafting_ing.leather.leather_strips"), 12), + (Item("common.items.crafting_ing.leather.leather_strips"), 12, false), ], craft_sprite: None, ), "knitted red pouch": ( output: ("common.items.armor.misc.bag.knitted_red_pouch", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 6), - (Item("common.items.armor.misc.bag.tiny_red_pouch"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.wool"), 6, false), + (Item("common.items.armor.misc.bag.tiny_red_pouch"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: None, ), "woven red bag": ( output: ("common.items.armor.misc.bag.woven_red_bag", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 6), - (Item("common.items.armor.misc.bag.knitted_red_pouch"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.cloth.silk"), 6, false), + (Item("common.items.armor.misc.bag.knitted_red_pouch"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: None, ), "traveler backpack": ( output: ("common.items.armor.misc.back.backpack", 1), inputs: [ - (Item("common.items.mineral.gem.diamond"), 2), - (Item("common.items.crafting_ing.twigs"), 2), - (Item("common.items.crafting_ing.cloth.silk"), 4), - (Item("common.items.crafting_ing.leather.leather_strips"), 3), - (Item("common.items.armor.misc.bag.tiny_leather_pouch"), 2), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.mineral.gem.diamond"), 2, false), + (Item("common.items.crafting_ing.twigs"), 2, false), + (Item("common.items.crafting_ing.cloth.silk"), 4, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 3, false), + (Item("common.items.armor.misc.bag.tiny_leather_pouch"), 2, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: Some(CraftingBench), ), "sturdy red backpack": ( output: ("common.items.armor.misc.bag.sturdy_red_backpack", 1), inputs: [ - (Item("common.items.mineral.gem.amethyst"), 2), - (Item("common.items.crafting_ing.cloth.linen_red"), 3), - (Item("common.items.crafting_ing.leather.thick_leather"), 6), - (Item("common.items.armor.misc.bag.woven_red_bag"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.mineral.gem.amethyst"), 2, false), + (Item("common.items.crafting_ing.cloth.linen_red"), 3, false), + (Item("common.items.crafting_ing.leather.thick_leather"), 6, false), + (Item("common.items.armor.misc.bag.woven_red_bag"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: None, ), "troll hide pack": ( output: ("common.items.armor.misc.bag.troll_hide_pack", 1), inputs: [ - (Item("common.items.crafting_ing.hide.leather_troll"), 10), - (Item("common.items.crafting_ing.leather.leather_strips"), 10), - (Item("common.items.mineral.gem.diamond"), 1), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.hide.leather_troll"), 10, false), + (Item("common.items.crafting_ing.leather.leather_strips"), 10, false), + (Item("common.items.mineral.gem.diamond"), 1, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: None, ), "Mindflayer Spellbag": ( output: ("common.items.armor.misc.bag.mindflayer_spellbag", 1), inputs: [ - (Item("common.items.crafting_ing.mindflayer_bag_damaged"), 1), - (Item("common.items.crafting_ing.leather.rigid_leather"), 8), - (Item("common.items.mineral.gem.diamond"), 4), - (Item("common.items.mineral.ore.veloritefrag"), 10), - (Item("common.items.crafting_tools.sewing_set"), 0), + (Item("common.items.crafting_ing.mindflayer_bag_damaged"), 1, false), + (Item("common.items.crafting_ing.leather.rigid_leather"), 8, false), + (Item("common.items.mineral.gem.diamond"), 4, false), + (Item("common.items.mineral.ore.veloritefrag"), 10, false), + (Item("common.items.crafting_tools.sewing_set"), 0, false), ], craft_sprite: None, ), "tin pickaxe": ( output: ("common.items.tool.pickaxe_stone", 1), inputs: [ - (Item("common.items.crafting_ing.leather.leather_strips"), 4), - (Item("common.items.crafting_ing.stones"), 5), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), + (Item("common.items.crafting_ing.stones"), 5, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(Anvil), ), "steel pickaxe": ( output: ("common.items.tool.pickaxe_steel", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 1), - (Item("common.items.mineral.ingot.steel"), 5), - (Item("common.items.tool.craftsman_hammer"), 0), + (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), + (Item("common.items.mineral.ingot.steel"), 5, false), + (Item("common.items.tool.craftsman_hammer"), 0, false), ], craft_sprite: Some(Anvil), ), @@ -1780,8 +1780,8 @@ "diamond ring": ( output: ("common.items.armor.misc.ring.diamond", 1), inputs: [ - (Item("common.items.mineral.ingot.gold"), 1), - (Item("common.items.mineral.gem.diamond"), 1), + (Item("common.items.mineral.ingot.gold"), 1, false), + (Item("common.items.mineral.gem.diamond"), 1, false), ], craft_sprite: Some(CraftingBench), ), @@ -1797,8 +1797,8 @@ "ruby ring": ( output: ("common.items.armor.misc.ring.ruby", 1), inputs: [ - (Item("common.items.mineral.ingot.silver"), 1), - (Item("common.items.mineral.gem.ruby"), 1), + (Item("common.items.mineral.ingot.silver"), 1, false), + (Item("common.items.mineral.gem.ruby"), 1, false), ], craft_sprite: Some(CraftingBench), ), @@ -1814,8 +1814,8 @@ "emerald ring": ( output: ("common.items.armor.misc.ring.emerald", 1), inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 1), - (Item("common.items.mineral.gem.emerald"), 1), + (Item("common.items.mineral.ingot.cobalt"), 1, false), + (Item("common.items.mineral.gem.emerald"), 1, false), ], craft_sprite: Some(CraftingBench), ), @@ -1831,8 +1831,8 @@ "sapphire ring": ( output: ("common.items.armor.misc.ring.sapphire", 1), inputs: [ - (Item("common.items.mineral.ingot.iron"), 1), - (Item("common.items.mineral.gem.sapphire"), 1), + (Item("common.items.mineral.ingot.iron"), 1, false), + (Item("common.items.mineral.gem.sapphire"), 1, false), ], craft_sprite: Some(CraftingBench), ), @@ -1848,8 +1848,8 @@ "topaz ring": ( output: ("common.items.armor.misc.ring.topaz", 1), inputs: [ - (Item("common.items.mineral.ingot.copper"), 1), - (Item("common.items.mineral.gem.topaz"), 1), + (Item("common.items.mineral.ingot.copper"), 1, false), + (Item("common.items.mineral.gem.topaz"), 1, false), ], craft_sprite: Some(CraftingBench), ), @@ -1865,8 +1865,8 @@ "amethyst ring": ( output: ("common.items.armor.misc.ring.amethyst", 1), inputs: [ - (Item("common.items.mineral.ingot.tin"), 1), - (Item("common.items.mineral.gem.amethyst"), 1), + (Item("common.items.mineral.ingot.tin"), 1, false), + (Item("common.items.mineral.gem.amethyst"), 1, false), ], craft_sprite: Some(CraftingBench), ), @@ -1887,7 +1887,7 @@ (Item("common.items.crafting_ing.mindflayer_bag_damaged"), 1), (Item("common.items.crafting_tools.sewing_set"), 0), ], - craft_sprite: Some(CraftingBench), + craft_sprite: Some(CraftingBench), ), "winged coronet": ( output: ("common.items.armor.misc.head.winged_coronet", 1), @@ -1898,13 +1898,24 @@ ], craft_sprite: Some(CraftingBench), ), - //"metal_blade": ( - // output: ("common.items.crafting_ing.modular.damage.sword.metal_blade", 1), - // inputs: [ - // (Tag(MetalIngot), 5), - // (Item("common.items.tool.craftsman_hammer"), 0), - // ], - // craft_sprite: Some(Anvil), - // is_recycling: false, - //), + craft_sprite: Some(CraftingBench), + ), + "metal_blade": ( + output: ("common.items.crafting_ing.modular.damage.sword.metal_blade", 1), + inputs: [ + (Item("common.items.mineral.ingot.tin"), 1, false), + (TagSameItem(MetalIngot), 5, true), + (Item("common.items.tool.craftsman_hammer"), 0, false), + ], + craft_sprite: Some(Anvil), + is_recycling: false, + ), + "sword_hilt": ( + output: ("common.items.crafting_ing.modular.held.sword.hilt", 1), + inputs: [ + (Item("common.items.crafting_ing.twigs"), 1, false), + ], + craft_sprite: None, + is_recycling: false, + ), } diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index 46b9b667d7..82e8af7e05 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -812,6 +812,9 @@ impl Item { match recipe_input { RecipeInput::Item(item_def) => self.is_same_item_def(item_def), RecipeInput::Tag(tag) => self.item_def.tags.contains(tag), + RecipeInput::TagSameItem(tag, amount) => { + self.item_def.tags.contains(tag) && u32::from(self.amount) >= *amount + }, } } diff --git a/common/src/comp/inventory/item/modular.rs b/common/src/comp/inventory/item/modular.rs index 6d27ae8dee..bee8ed7068 100644 --- a/common/src/comp/inventory/item/modular.rs +++ b/common/src/comp/inventory/item/modular.rs @@ -230,7 +230,7 @@ fn make_recipe_def(identifier: String, toolkind: ToolKind) -> RawRecipe { toolkind, modkind, })); - inputs.push((input, 1)); + inputs.push((input, 1, true)); } RawRecipe { output, diff --git a/common/src/comp/inventory/trade_pricing.rs b/common/src/comp/inventory/trade_pricing.rs index df29e8ad5a..d49da1ad8c 100644 --- a/common/src/comp/inventory/trade_pricing.rs +++ b/common/src/comp/inventory/trade_pricing.rs @@ -533,7 +533,7 @@ impl TradePricing { input: recipe .inputs .iter() - .filter_map(|&(ref recipe_input, count)| { + .filter_map(|&(ref recipe_input, count, _)| { if let RecipeInput::Item(it) = recipe_input { // If item is not consumed in craft, ignore it if count == 0 { diff --git a/common/src/recipe.rs b/common/src/recipe.rs index eb4d330005..155dbca421 100644 --- a/common/src/recipe.rs +++ b/common/src/recipe.rs @@ -15,12 +15,15 @@ use std::sync::Arc; pub enum RecipeInput { Item(Arc), Tag(ItemTag), + TagSameItem(ItemTag, u32), } #[derive(Clone, Debug, Serialize, Deserialize)] pub struct Recipe { pub output: (Arc, u32), - pub inputs: Vec<(RecipeInput, u32)>, + /// Input required for recipe, amount of input needed, whether input should + /// be tracked as a modular component + pub inputs: Vec<(RecipeInput, u32, bool)>, pub craft_sprite: Option, } @@ -45,7 +48,7 @@ impl Recipe { self.inputs .iter() .enumerate() - .for_each(|(i, (input, mut required))| { + .for_each(|(i, (input, mut required, _is_component))| { // Check used for recipes that have an input that is not consumed, e.g. // craftsman hammer let mut contains_any = false; @@ -100,10 +103,10 @@ impl Recipe { } } - pub fn inputs(&self) -> impl ExactSizeIterator { + pub fn inputs(&self) -> impl ExactSizeIterator { self.inputs .iter() - .map(|(item_def, amount)| (item_def, *amount)) + .map(|(item_def, amount, is_mod_comp)| (item_def, *amount, *is_mod_comp)) } /// Determine whether the inventory contains the ingredients for a recipe. @@ -124,7 +127,7 @@ impl Recipe { // The inputs to a recipe that have missing items, and the amount missing let mut missing = Vec::<(&RecipeInput, u32)>::new(); - for (i, (input, mut needed)) in self.inputs().enumerate() { + for (i, (input, mut needed, _)) in self.inputs().enumerate() { let mut contains_any = false; // Checks through every slot, filtering to only those that contain items that // can satisfy the input @@ -213,12 +216,13 @@ impl RecipeBook { pub enum RawRecipeInput { Item(String), Tag(ItemTag), + TagSameItem(ItemTag), } #[derive(Clone, Deserialize)] pub(crate) struct RawRecipe { pub(crate) output: (String, u32), - pub(crate) inputs: Vec<(RawRecipeInput, u32)>, + pub(crate) inputs: Vec<(RawRecipeInput, u32, bool)>, pub(crate) craft_sprite: Option, } @@ -245,13 +249,14 @@ impl assets::Compound for RecipeBook { #[inline] fn load_recipe_input( - spec: &(RawRecipeInput, u32), - ) -> Result<(RecipeInput, u32), assets::Error> { - let def = match &spec.0 { + (input, amount, is_mod_comp): &(RawRecipeInput, u32, bool), + ) -> Result<(RecipeInput, u32, bool), assets::Error> { + let def = match &input { RawRecipeInput::Item(name) => RecipeInput::Item(Arc::::load_cloned(name)?), RawRecipeInput::Tag(tag) => RecipeInput::Tag(*tag), + RawRecipeInput::TagSameItem(tag) => RecipeInput::TagSameItem(*tag, *amount), }; - Ok((def, spec.1)) + Ok((def, *amount, *is_mod_comp)) } let mut raw = cache.load::(specifier)?.cloned(); @@ -259,9 +264,9 @@ impl assets::Compound for RecipeBook { // Avoid showing purple-question-box recipes until the assets are added // (the `if false` is needed because commenting out the call will add a warning // that there are no other uses of append_modular_recipes) - if false { - modular::append_modular_recipes(&mut raw); - } + // if false { + modular::append_modular_recipes(&mut raw); + // } let recipes = raw .0 diff --git a/voxygen/src/hud/crafting.rs b/voxygen/src/hud/crafting.rs index d4cb3581eb..5748ce0952 100644 --- a/voxygen/src/hud/crafting.rs +++ b/voxygen/src/hud/crafting.rs @@ -465,10 +465,11 @@ impl<'a> Widget for Crafting<'a> { .iter() .all(|&substring| output_name.contains(substring)) }, - SearchFilter::Input => recipe.inputs().any(|(input, _)| { + SearchFilter::Input => recipe.inputs().any(|(input, _, _)| { let input_name = match input { RecipeInput::Item(def) => def.name.as_str(), RecipeInput::Tag(tag) => tag.name(), + RecipeInput::TagSameItem(tag, _) => tag.name(), } .to_lowercase(); search_keys @@ -903,25 +904,27 @@ impl<'a> Widget for Crafting<'a> { }; // Widget generation for every ingredient - for (i, (recipe_input, amount)) in recipe.inputs.iter().enumerate() { + for (i, (recipe_input, amount, _)) in recipe.inputs.iter().enumerate() { let item_def = match recipe_input { RecipeInput::Item(item_def) => Arc::clone(item_def), - RecipeInput::Tag(tag) => Arc::::load_expect_cloned( - &self - .inventory - .slots() - .filter_map(|slot| { - slot.as_ref().and_then(|item| { - if item.matches_recipe_input(recipe_input) { - Some(item.item_definition_id().to_string()) - } else { - None - } + RecipeInput::Tag(tag) | RecipeInput::TagSameItem(tag, _) => { + Arc::::load_expect_cloned( + &self + .inventory + .slots() + .filter_map(|slot| { + slot.as_ref().and_then(|item| { + if item.matches_recipe_input(recipe_input) { + Some(item.item_definition_id().to_string()) + } else { + None + } + }) }) - }) - .next() - .unwrap_or_else(|| tag.exemplar_identifier().to_string()), - ), + .next() + .unwrap_or_else(|| tag.exemplar_identifier().to_string()), + ) + }, }; // Grey color for images and text if their amount is too low to craft the item @@ -1020,7 +1023,9 @@ impl<'a> Widget for Crafting<'a> { // Ingredients let name = match recipe_input { RecipeInput::Item(_) => item_def.name().to_string(), - RecipeInput::Tag(tag) => format!("Any {} item", tag.name()), + RecipeInput::Tag(tag) | RecipeInput::TagSameItem(tag, _) => { + format!("Any {} item", tag.name()) + }, }; let input = format!( "{}x {} ({})",