From f5db9c43e7488b352f79fb2318eb83ba6cd4d984 Mon Sep 17 00:00:00 2001 From: cheaterpaul Date: Sun, 26 Jan 2025 17:48:07 +0100 Subject: [PATCH] introduce pure blood infusion - infuse material to craft pure blood infused vampire sword --- gradle.properties | 4 +- .../api/VampirismDataComponents.java | 1 + .../vampirism/blockstates/blood_infuser.json | 17 ++ .../items/blood_infused_diamond.json | 6 + .../blood_infused_enhanced_iron_ingot.json | 6 - .../items/blood_infused_gold_ingot.json | 6 + .../items/blood_infused_netherite_ingot.json | 6 + .../items/blood_infused_raw_gold.json | 6 + .../items/blood_infused_raw_iron.json | 6 + .../assets/vampirism/items/blood_infuser.json | 6 + ..._normal.json => diamond_heart_seeker.json} | 2 +- .../items/diamond_heart_striker.json | 6 + .../items/heart_seeker_enhanced.json | 6 - .../items/heart_seeker_ultimate.json | 6 - .../items/heart_striker_enhanced.json | 6 - .../items/heart_striker_ultimate.json | 6 - ...ker_normal.json => iron_heart_seeker.json} | 2 +- .../vampirism/items/iron_heart_striker.json | 6 + .../items/netherite_heart_seeker.json | 6 + .../items/netherite_heart_striker.json | 6 + .../models/item/blood_infused_diamond.json | 6 + .../blood_infused_enhanced_iron_ingot.json | 6 - .../models/item/blood_infused_gold_ingot.json | 6 + .../item/blood_infused_netherite_ingot.json | 6 + .../models/item/blood_infused_raw_gold.json | 6 + .../models/item/blood_infused_raw_iron.json | 6 + ...nhanced.json => diamond_heart_seeker.json} | 0 ...hanced.json => diamond_heart_striker.json} | 0 ...ker_normal.json => iron_heart_seeker.json} | 0 ...er_normal.json => iron_heart_striker.json} | 0 ...imate.json => netherite_heart_seeker.json} | 0 ...mate.json => netherite_heart_striker.json} | 0 .../combat/heart_seeker_enhanced_pure_0.json} | 10 +- .../combat/heart_seeker_enhanced_pure_1.json | 32 ++ .../combat/heart_seeker_enhanced_pure_2.json | 32 ++ .../combat/heart_seeker_enhanced_pure_3.json | 32 ++ .../combat/heart_seeker_enhanced_pure_4.json | 32 ++ .../heart_seeker_normal_pure_0.json} | 4 +- .../combat/heart_seeker_normal_pure_1.json} | 8 +- .../combat/heart_seeker_normal_pure_2.json} | 8 +- .../combat/heart_seeker_normal_pure_3.json | 32 ++ .../combat/heart_seeker_normal_pure_4.json | 32 ++ .../combat/heart_seeker_ultimate_pure_0.json | 32 ++ .../combat/heart_seeker_ultimate_pure_1.json | 32 ++ .../combat/heart_seeker_ultimate_pure_2.json | 32 ++ .../combat/heart_seeker_ultimate_pure_3.json | 32 ++ .../combat/heart_seeker_ultimate_pure_4.json | 32 ++ .../combat/heart_striker_enhanced_pure_0.json | 32 ++ .../combat/heart_striker_enhanced_pure_1.json | 32 ++ .../combat/heart_striker_enhanced_pure_2.json | 32 ++ .../combat/heart_striker_enhanced_pure_3.json | 32 ++ .../combat/heart_striker_enhanced_pure_4.json | 32 ++ .../combat/heart_striker_normal_pure_0.json | 32 ++ .../combat/heart_striker_normal_pure_1.json | 32 ++ .../combat/heart_striker_normal_pure_2.json | 32 ++ .../combat/heart_striker_normal_pure_3.json | 32 ++ .../combat/heart_striker_normal_pure_4.json | 32 ++ .../combat/heart_striker_ultimate_pure_0.json | 32 ++ .../combat/heart_striker_ultimate_pure_1.json | 32 ++ .../combat/heart_striker_ultimate_pure_2.json | 32 ++ .../combat/heart_striker_ultimate_pure_3.json | 32 ++ .../combat/heart_striker_ultimate_pure_4.json | 32 ++ .../blood_infused_enhanced_iron_block.json | 16 - .../blood_infused_enhanced_iron_ingot.json | 11 - .../recipe/blood_infused_iron_block.json | 16 - .../recipe/blood_infused_iron_ingot.json | 11 - .../recipe/heart_seeker_enhanced_pure_0.json | 30 ++ .../recipe/heart_seeker_enhanced_pure_1.json | 30 ++ .../recipe/heart_seeker_enhanced_pure_2.json | 30 ++ .../recipe/heart_seeker_enhanced_pure_3.json | 30 ++ .../recipe/heart_seeker_enhanced_pure_4.json | 30 ++ .../recipe/heart_seeker_normal_pure_0.json | 30 ++ .../recipe/heart_seeker_normal_pure_1.json | 30 ++ .../recipe/heart_seeker_normal_pure_2.json | 30 ++ .../recipe/heart_seeker_normal_pure_3.json | 30 ++ .../recipe/heart_seeker_normal_pure_4.json | 30 ++ .../recipe/heart_seeker_ultimate_pure_0.json | 30 ++ .../recipe/heart_seeker_ultimate_pure_1.json | 30 ++ .../recipe/heart_seeker_ultimate_pure_2.json | 30 ++ .../recipe/heart_seeker_ultimate_pure_3.json | 30 ++ .../recipe/heart_seeker_ultimate_pure_4.json | 30 ++ .../recipe/heart_striker_enhanced_pure_0.json | 30 ++ .../recipe/heart_striker_enhanced_pure_1.json | 30 ++ .../recipe/heart_striker_enhanced_pure_2.json | 30 ++ .../recipe/heart_striker_enhanced_pure_3.json | 30 ++ .../recipe/heart_striker_enhanced_pure_4.json | 30 ++ .../recipe/heart_striker_normal_pure_0.json | 30 ++ .../recipe/heart_striker_normal_pure_1.json | 30 ++ .../recipe/heart_striker_normal_pure_2.json | 30 ++ .../recipe/heart_striker_normal_pure_3.json | 30 ++ .../recipe/heart_striker_normal_pure_4.json | 30 ++ .../recipe/heart_striker_ultimate_pure_0.json | 30 ++ .../recipe/heart_striker_ultimate_pure_1.json | 30 ++ .../recipe/heart_striker_ultimate_pure_2.json | 30 ++ .../recipe/heart_striker_ultimate_pure_3.json | 30 ++ .../recipe/heart_striker_ultimate_pure_4.json | 30 ++ ..._infused_enhanced_iron_block_purity_4.json | 32 ++ .../blood_infused_iron_block_purity_0.json | 32 ++ .../blood_infused_iron_block_purity_1.json | 32 ++ .../blood_infused_iron_block_purity_2.json | 32 ++ .../blood_infused_iron_block_purity_3.json | 32 ++ .../blood_infused_iron_ingot_purity_0.json} | 4 +- .../blood_infused_iron_ingot_purity_1.json | 32 ++ .../blood_infused_iron_ingot_purity_2.json | 32 ++ .../blood_infused_iron_ingot_purity_3.json | 32 ++ .../blood_infused_iron_ingot_purity_4.json} | 4 +- .../netherite_scrap_pure_0.json | 43 +++ .../netherite_scrap_pure_1.json | 43 +++ .../netherite_scrap_pure_2.json | 43 +++ .../netherite_scrap_pure_3.json | 43 +++ .../netherite_scrap_pure_4.json | 43 +++ .../raw_gold_pure_0_blasting.json | 32 ++ .../raw_gold_pure_0_smelting.json | 32 ++ .../raw_gold_pure_1_blasting.json | 32 ++ .../raw_gold_pure_1_smelting.json | 32 ++ .../raw_gold_pure_2_blasting.json | 32 ++ .../raw_gold_pure_2_smelting.json | 32 ++ .../raw_gold_pure_3_blasting.json | 32 ++ .../raw_gold_pure_3_smelting.json | 32 ++ .../raw_gold_pure_4_blasting.json | 32 ++ .../raw_gold_pure_4_smelting.json | 32 ++ .../raw_iron_pure_0_blasting.json | 32 ++ .../raw_iron_pure_0_smelting.json | 32 ++ .../raw_iron_pure_1_blasting.json | 32 ++ .../raw_iron_pure_1_smelting.json | 32 ++ .../raw_iron_pure_2_blasting.json | 32 ++ .../raw_iron_pure_2_smelting.json | 32 ++ .../raw_iron_pure_3_blasting.json | 32 ++ .../raw_iron_pure_3_smelting.json | 32 ++ .../raw_iron_pure_4_blasting.json | 32 ++ .../raw_iron_pure_4_smelting.json | 32 ++ ...herite_heart_seeker_purity_0_smithing.json | 32 ++ ...herite_heart_seeker_purity_1_smithing.json | 32 ++ ...herite_heart_seeker_purity_2_smithing.json | 32 ++ ...herite_heart_seeker_purity_3_smithing.json | 32 ++ ...herite_heart_seeker_purity_4_smithing.json | 32 ++ ...erite_heart_striker_purity_0_smithing.json | 32 ++ ...erite_heart_striker_purity_1_smithing.json | 32 ++ ...erite_heart_striker_purity_2_smithing.json | 32 ++ ...erite_heart_striker_purity_3_smithing.json | 32 ++ ...erite_heart_striker_purity_4_smithing.json | 32 ++ .../heart_striker_enhanced_repair.json | 32 -- .../vampire/heart_striker_normal_repair.json | 32 -- ...diamond_heart_seeker_infuse_1_upgrade.json | 32 ++ ...diamond_heart_seeker_infuse_2_upgrade.json | 32 ++ ...diamond_heart_seeker_infuse_3_upgrade.json | 32 ++ ...diamond_heart_seeker_infuse_4_upgrade.json | 32 ++ ...iamond_heart_striker_infuse_1_upgrade.json | 32 ++ ...iamond_heart_striker_infuse_2_upgrade.json | 32 ++ ...iamond_heart_striker_infuse_3_upgrade.json | 32 ++ ...iamond_heart_striker_infuse_4_upgrade.json | 32 ++ .../recipes/infuser/diamond_pure_0.json | 43 +++ .../recipes/infuser/diamond_pure_1.json | 43 +++ .../recipes/infuser/diamond_pure_2.json | 43 +++ .../recipes/infuser/diamond_pure_3.json | 43 +++ .../recipes/infuser/diamond_pure_4.json | 43 +++ .../iron_heart_seeker_infuse_1_upgrade.json} | 10 +- .../iron_heart_seeker_infuse_2_upgrade.json} | 10 +- .../iron_heart_seeker_infuse_3_upgrade.json | 32 ++ .../iron_heart_seeker_infuse_4_upgrade.json | 32 ++ .../iron_heart_striker_infuse_1_upgrade.json | 32 ++ .../iron_heart_striker_infuse_2_upgrade.json | 32 ++ .../iron_heart_striker_infuse_3_upgrade.json | 32 ++ .../iron_heart_striker_infuse_4_upgrade.json | 32 ++ ...therite_heart_seeker_infuse_1_upgrade.json | 32 ++ ...therite_heart_seeker_infuse_2_upgrade.json | 32 ++ ...therite_heart_seeker_infuse_3_upgrade.json | 32 ++ ...therite_heart_seeker_infuse_4_upgrade.json | 32 ++ ...erite_heart_striker_infuse_1_upgrade.json} | 10 +- ...herite_heart_striker_infuse_2_upgrade.json | 32 ++ ...herite_heart_striker_infuse_3_upgrade.json | 32 ++ ...herite_heart_striker_infuse_4_upgrade.json | 32 ++ .../recipes/infuser/raw_gold_pure_0.json} | 21 +- .../recipes/infuser/raw_gold_pure_1.json | 43 +++ .../recipes/infuser/raw_gold_pure_2.json | 43 +++ .../recipes/infuser/raw_gold_pure_3.json | 43 +++ .../recipes/infuser/raw_gold_pure_4.json | 43 +++ .../recipes/infuser/raw_iron_pure_0.json | 43 +++ .../recipes/infuser/raw_iron_pure_1.json | 43 +++ .../recipes/infuser/raw_iron_pure_2.json | 43 +++ .../recipes/infuser/raw_iron_pure_3.json | 43 +++ .../recipes/infuser/raw_iron_pure_4.json | 43 +++ .../loot_table/blocks/blood_infuser.json | 21 ++ .../vampirism/loot_table/chests/crypt.json | 14 +- .../chests/dungeon/vampire_dungeon.json | 8 +- .../loot_table/chests/vampire_hut.json | 8 +- .../inject/abandoned_mineshaft.json | 4 +- .../inject/stronghold_corridor.json | 4 +- ..._infused_enhanced_iron_block_purity_4.json | 36 +++ .../blood_infused_iron_block_purity_0.json | 36 +++ .../blood_infused_iron_block_purity_1.json | 41 +++ .../blood_infused_iron_block_purity_2.json | 41 +++ .../blood_infused_iron_block_purity_3.json | 41 +++ .../blood_infused_iron_ingot_purity_0.json | 31 ++ .../blood_infused_iron_ingot_purity_1.json | 36 +++ .../blood_infused_iron_ingot_purity_2.json | 36 +++ .../blood_infused_iron_ingot_purity_3.json | 36 +++ .../blood_infused_iron_ingot_purity_4.json | 36 +++ ...diamond_heart_seeker_infuse_1_upgrade.json | 16 + ...diamond_heart_seeker_infuse_2_upgrade.json | 30 ++ ...diamond_heart_seeker_infuse_3_upgrade.json | 39 +++ ...diamond_heart_seeker_infuse_4_upgrade.json | 48 +++ ...iamond_heart_striker_infuse_1_upgrade.json | 16 + ...iamond_heart_striker_infuse_2_upgrade.json | 30 ++ ...iamond_heart_striker_infuse_3_upgrade.json | 39 +++ ...iamond_heart_striker_infuse_4_upgrade.json | 48 +++ .../data/vampirism/recipe/diamond_pure_0.json | 24 ++ .../data/vampirism/recipe/diamond_pure_1.json | 30 ++ .../data/vampirism/recipe/diamond_pure_2.json | 30 ++ .../data/vampirism/recipe/diamond_pure_3.json | 30 ++ .../data/vampirism/recipe/diamond_pure_4.json | 30 ++ .../iron_heart_seeker_infuse_1_upgrade.json | 16 + .../iron_heart_seeker_infuse_2_upgrade.json | 30 ++ .../iron_heart_seeker_infuse_3_upgrade.json | 39 +++ .../iron_heart_seeker_infuse_4_upgrade.json | 48 +++ .../iron_heart_striker_infuse_1_upgrade.json | 16 + .../iron_heart_striker_infuse_2_upgrade.json | 30 ++ .../iron_heart_striker_infuse_3_upgrade.json | 39 +++ .../iron_heart_striker_infuse_4_upgrade.json | 48 +++ ...therite_heart_seeker_infuse_1_upgrade.json | 16 + ...therite_heart_seeker_infuse_2_upgrade.json | 30 ++ ...therite_heart_seeker_infuse_3_upgrade.json | 39 +++ ...therite_heart_seeker_infuse_4_upgrade.json | 48 +++ ...herite_heart_seeker_purity_0_smithing.json | 31 ++ ...herite_heart_seeker_purity_1_smithing.json | 31 ++ ...herite_heart_seeker_purity_2_smithing.json | 31 ++ ...herite_heart_seeker_purity_3_smithing.json | 31 ++ ...herite_heart_seeker_purity_4_smithing.json | 31 ++ ...herite_heart_striker_infuse_1_upgrade.json | 16 + ...herite_heart_striker_infuse_2_upgrade.json | 30 ++ ...herite_heart_striker_infuse_3_upgrade.json | 39 +++ ...herite_heart_striker_infuse_4_upgrade.json | 48 +++ ...erite_heart_striker_purity_0_smithing.json | 31 ++ ...erite_heart_striker_purity_1_smithing.json | 31 ++ ...erite_heart_striker_purity_2_smithing.json | 31 ++ ...erite_heart_striker_purity_3_smithing.json | 31 ++ ...erite_heart_striker_purity_4_smithing.json | 31 ++ .../recipe/netherite_scrap_pure_0.json | 50 +++ .../recipe/netherite_scrap_pure_1.json | 55 ++++ .../recipe/netherite_scrap_pure_2.json | 55 ++++ .../recipe/netherite_scrap_pure_3.json | 55 ++++ .../recipe/netherite_scrap_pure_4.json | 55 ++++ .../vampirism/recipe/raw_gold_pure_0.json | 24 ++ .../recipe/raw_gold_pure_0_blasting.json | 19 ++ .../recipe/raw_gold_pure_0_smelting.json | 19 ++ .../vampirism/recipe/raw_gold_pure_1.json | 30 ++ .../recipe/raw_gold_pure_1_blasting.json | 24 ++ .../recipe/raw_gold_pure_1_smelting.json | 24 ++ .../vampirism/recipe/raw_gold_pure_2.json | 30 ++ .../recipe/raw_gold_pure_2_blasting.json | 24 ++ .../recipe/raw_gold_pure_2_smelting.json | 24 ++ .../vampirism/recipe/raw_gold_pure_3.json | 30 ++ .../recipe/raw_gold_pure_3_blasting.json | 24 ++ .../recipe/raw_gold_pure_3_smelting.json | 24 ++ .../vampirism/recipe/raw_gold_pure_4.json | 30 ++ .../recipe/raw_gold_pure_4_blasting.json | 24 ++ .../recipe/raw_gold_pure_4_smelting.json | 24 ++ .../vampirism/recipe/raw_iron_pure_0.json | 24 ++ .../recipe/raw_iron_pure_0_blasting.json | 19 ++ .../recipe/raw_iron_pure_0_smelting.json | 19 ++ .../vampirism/recipe/raw_iron_pure_1.json | 30 ++ .../recipe/raw_iron_pure_1_blasting.json | 24 ++ .../recipe/raw_iron_pure_1_smelting.json | 24 ++ .../vampirism/recipe/raw_iron_pure_2.json | 30 ++ .../recipe/raw_iron_pure_2_blasting.json | 24 ++ .../recipe/raw_iron_pure_2_smelting.json | 24 ++ .../vampirism/recipe/raw_iron_pure_3.json | 30 ++ .../recipe/raw_iron_pure_3_blasting.json | 24 ++ .../recipe/raw_iron_pure_3_smelting.json | 24 ++ .../vampirism/recipe/raw_iron_pure_4.json | 30 ++ .../recipe/raw_iron_pure_4_blasting.json | 24 ++ .../recipe/raw_iron_pure_4_smelting.json | 24 ++ .../recipe/vampire/heart_seeker_enhanced.json | 17 -- .../vampire/heart_seeker_enhanced_repair.json | 16 - .../recipe/vampire/heart_seeker_normal.json | 17 -- .../vampire/heart_seeker_normal_repair.json | 16 - .../vampire/heart_striker_enhanced.json | 17 -- .../heart_striker_enhanced_repair.json | 16 - .../recipe/vampire/heart_striker_normal.json | 17 -- .../vampire/heart_striker_normal_repair.json | 16 - .../tags/item/swords/heart_seeker.json | 6 +- .../tags/item/swords/heart_striker.json | 6 +- .../lib/lib/client/gui/GuiRenderer.java | 4 +- .../de/teamlapen/vampirism/VampirismMod.java | 2 + .../blockentity/AltarInfusionBlockEntity.java | 2 +- .../blockentity/InfuserBlockEntity.java | 273 +++++++++++++++++ .../blockentity/slots/InfuserSlots.java | 14 + .../vampirism/blocks/BloodInfuserBlock.java | 75 +++++ .../vampirism/blocks/PureBloodBlock.java | 13 + .../vampirism/client/core/ModScreens.java | 1 + .../gui/overlay/VampirismHUDOverlay.java | 2 +- .../gui/screens/AltarInfusionScreen.java | 3 +- .../client/gui/screens/HunterTableScreen.java | 2 +- .../client/gui/screens/InfuserScreen.java | 39 +++ .../teamlapen/vampirism/core/ModBlocks.java | 15 +- .../vampirism/core/ModDataComponents.java | 1 + .../de/teamlapen/vampirism/core/ModItems.java | 20 +- .../de/teamlapen/vampirism/core/ModMenus.java | 1 + .../teamlapen/vampirism/core/ModRecipes.java | 11 + .../de/teamlapen/vampirism/core/ModTiles.java | 1 + .../teamlapen/vampirism/core/ModVillage.java | 2 +- .../data/provider/LootTablesProvider.java | 3 +- .../data/provider/RecipesProvider.java | 289 +++++++++++++++++- .../provider/model/BlockModelGenerators.java | 8 + .../provider/model/ItemModelGenerators.java | 126 ++++---- .../data/provider/parent/RecipesProvider.java | 62 +++- .../recipebuilder/InfuserRecipeBuilder.java | 126 ++++++++ .../ModdedSmithingTransformRecipeBuilder.java | 75 +++++ .../vampirism/inventory/HunterTableMenu.java | 2 +- .../vampirism/inventory/InfuserMenu.java | 146 +++++++++ .../vampirism/items/HeartSeekerItem.java | 36 ++- .../vampirism/items/HeartStrikerItem.java | 37 ++- .../vampirism/items/ItemEventHandler.java | 2 + .../vampirism/items/PureBloodItem.java | 19 +- .../vampirism/items/PureLevelBlockItem.java | 26 ++ .../vampirism/items/PureLevelItem.java | 36 +++ .../vampirism/items/VampireSwordItem.java | 44 ++- .../vampirism/items/component/PureLevel.java | 34 +++ .../vampirism/misc/VampirismCreativeTab.java | 20 +- .../modcompat/jei/VampirismJEIPlugin.java | 2 +- .../vampirism/recipes/InfuserRecipe.java | 197 ++++++++++++ .../vampirism/util/BlockVoxelshapes.java | 15 + .../vampirism/util/RecipeHelper.java | 23 ++ .../vampirism/util/StreamCodecExtension.java | 151 ++++++++- .../resources/META-INF/accesstransformer.cfg | 1 + .../assets/vampirism/lang/en_us.json | 16 +- .../models/block/blood_infuser/infuser.json | 216 +++++++++++++ .../block/blood_infuser/infuser_blood.json | 22 ++ .../vampirism/textures/block/infuser.png | Bin 0 -> 345 bytes .../textures/gui/container/infuser.png | Bin 0 -> 5530 bytes ...on_ingot.png => blood_infused_diamond.png} | Bin 4497 -> 4471 bytes .../item/blood_infused_gold_ingot.png | Bin 0 -> 4470 bytes .../item/blood_infused_netherite_ingot.png | Bin 0 -> 4533 bytes .../textures/item/blood_infused_raw_gold.png | Bin 0 -> 4566 bytes .../textures/item/blood_infused_raw_iron.png | Bin 0 -> 4575 bytes 335 files changed, 9339 insertions(+), 515 deletions(-) create mode 100644 src/generated/resources/assets/vampirism/blockstates/blood_infuser.json create mode 100644 src/generated/resources/assets/vampirism/items/blood_infused_diamond.json delete mode 100644 src/generated/resources/assets/vampirism/items/blood_infused_enhanced_iron_ingot.json create mode 100644 src/generated/resources/assets/vampirism/items/blood_infused_gold_ingot.json create mode 100644 src/generated/resources/assets/vampirism/items/blood_infused_netherite_ingot.json create mode 100644 src/generated/resources/assets/vampirism/items/blood_infused_raw_gold.json create mode 100644 src/generated/resources/assets/vampirism/items/blood_infused_raw_iron.json create mode 100644 src/generated/resources/assets/vampirism/items/blood_infuser.json rename src/generated/resources/assets/vampirism/items/{heart_striker_normal.json => diamond_heart_seeker.json} (50%) create mode 100644 src/generated/resources/assets/vampirism/items/diamond_heart_striker.json delete mode 100644 src/generated/resources/assets/vampirism/items/heart_seeker_enhanced.json delete mode 100644 src/generated/resources/assets/vampirism/items/heart_seeker_ultimate.json delete mode 100644 src/generated/resources/assets/vampirism/items/heart_striker_enhanced.json delete mode 100644 src/generated/resources/assets/vampirism/items/heart_striker_ultimate.json rename src/generated/resources/assets/vampirism/items/{heart_seeker_normal.json => iron_heart_seeker.json} (50%) create mode 100644 src/generated/resources/assets/vampirism/items/iron_heart_striker.json create mode 100644 src/generated/resources/assets/vampirism/items/netherite_heart_seeker.json create mode 100644 src/generated/resources/assets/vampirism/items/netherite_heart_striker.json create mode 100644 src/generated/resources/assets/vampirism/models/item/blood_infused_diamond.json delete mode 100644 src/generated/resources/assets/vampirism/models/item/blood_infused_enhanced_iron_ingot.json create mode 100644 src/generated/resources/assets/vampirism/models/item/blood_infused_gold_ingot.json create mode 100644 src/generated/resources/assets/vampirism/models/item/blood_infused_netherite_ingot.json create mode 100644 src/generated/resources/assets/vampirism/models/item/blood_infused_raw_gold.json create mode 100644 src/generated/resources/assets/vampirism/models/item/blood_infused_raw_iron.json rename src/generated/resources/assets/vampirism/models/item/{heart_seeker_enhanced.json => diamond_heart_seeker.json} (100%) rename src/generated/resources/assets/vampirism/models/item/{heart_striker_enhanced.json => diamond_heart_striker.json} (100%) rename src/generated/resources/assets/vampirism/models/item/{heart_seeker_normal.json => iron_heart_seeker.json} (100%) rename src/generated/resources/assets/vampirism/models/item/{heart_striker_normal.json => iron_heart_striker.json} (100%) rename src/generated/resources/assets/vampirism/models/item/{heart_seeker_ultimate.json => netherite_heart_seeker.json} (100%) rename src/generated/resources/assets/vampirism/models/item/{heart_striker_ultimate.json => netherite_heart_striker.json} (100%) rename src/generated/resources/data/{vampirism/advancement/recipes/combat/vampire/heart_seeker_enhanced_repair.json => minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_0.json} (64%) create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_1.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_2.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_3.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_4.json rename src/generated/resources/data/minecraft/advancement/recipes/{building_blocks/blood_infused_iron_block.json => combat/heart_seeker_normal_pure_0.json} (84%) rename src/generated/resources/data/{vampirism/advancement/recipes/combat/vampire/heart_seeker_normal.json => minecraft/advancement/recipes/combat/heart_seeker_normal_pure_1.json} (72%) rename src/generated/resources/data/{vampirism/advancement/recipes/combat/vampire/heart_striker_normal.json => minecraft/advancement/recipes/combat/heart_seeker_normal_pure_2.json} (72%) create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_3.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_4.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_0.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_1.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_2.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_3.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_4.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_0.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_1.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_2.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_3.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_4.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_0.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_1.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_2.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_3.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_4.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_0.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_1.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_2.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_3.json create mode 100644 src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_4.json delete mode 100644 src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_block.json delete mode 100644 src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_ingot.json delete mode 100644 src/generated/resources/data/minecraft/recipe/blood_infused_iron_block.json delete mode 100644 src/generated/resources/data/minecraft/recipe/blood_infused_iron_ingot.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_0.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_1.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_2.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_3.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_4.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_0.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_1.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_2.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_3.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_4.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_0.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_1.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_2.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_3.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_4.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_0.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_1.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_2.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_3.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_4.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_0.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_1.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_2.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_3.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_4.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_0.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_1.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_2.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_3.json create mode 100644 src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_4.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block_purity_4.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_0.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_1.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_2.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_3.json rename src/generated/resources/data/{minecraft/advancement/recipes/building_blocks/blood_infused_iron_ingot.json => vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_0.json} (82%) create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_1.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_2.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_3.json rename src/generated/resources/data/{minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_ingot.json => vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_4.json} (83%) create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_0.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_1.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_2.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_3.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_4.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_blasting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_smelting.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_0_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_1_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_2_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_3_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_4_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_0_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_1_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_2_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_3_smithing.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_4_smithing.json delete mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_enhanced_repair.json delete mode 100644 src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_normal_repair.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_0.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_1.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_2.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_3.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_4.json rename src/generated/resources/data/vampirism/advancement/recipes/{combat/vampire/heart_seeker_enhanced.json => infuser/iron_heart_seeker_infuse_1_upgrade.json} (65%) rename src/generated/resources/data/vampirism/advancement/recipes/{combat/vampire/heart_striker_enhanced.json => infuser/iron_heart_seeker_infuse_2_upgrade.json} (65%) create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_4_upgrade.json rename src/generated/resources/data/vampirism/advancement/recipes/{combat/vampire/heart_seeker_normal_repair.json => infuser/netherite_heart_striker_infuse_1_upgrade.json} (64%) create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_4_upgrade.json rename src/generated/resources/data/{minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block.json => vampirism/advancement/recipes/infuser/raw_gold_pure_0.json} (51%) create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_1.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_2.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_3.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_4.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_0.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_1.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_2.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_3.json create mode 100644 src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_4.json create mode 100644 src/generated/resources/data/vampirism/loot_table/blocks/blood_infuser.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_enhanced_iron_block_purity_4.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_0.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_1.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_2.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_3.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_0.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_1.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_2.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_3.json create mode 100644 src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_4.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_pure_0.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_pure_1.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_pure_2.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_pure_3.json create mode 100644 src/generated/resources/data/vampirism/recipe/diamond_pure_4.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_0_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_1_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_2_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_3_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_4_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_1_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_2_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_3_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_4_upgrade.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_0_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_1_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_2_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_3_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_4_smithing.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_0.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_1.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_2.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_3.json create mode 100644 src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_4.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_0.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_1.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_2.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_3.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_4.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_0.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_1.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_2.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_3.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_smelting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_4.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_blasting.json create mode 100644 src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_smelting.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced_repair.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal_repair.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced_repair.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal.json delete mode 100644 src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal_repair.json create mode 100644 src/main/java/de/teamlapen/vampirism/blockentity/InfuserBlockEntity.java create mode 100644 src/main/java/de/teamlapen/vampirism/blockentity/slots/InfuserSlots.java create mode 100644 src/main/java/de/teamlapen/vampirism/blocks/BloodInfuserBlock.java create mode 100644 src/main/java/de/teamlapen/vampirism/blocks/PureBloodBlock.java create mode 100644 src/main/java/de/teamlapen/vampirism/client/gui/screens/InfuserScreen.java create mode 100644 src/main/java/de/teamlapen/vampirism/data/recipebuilder/InfuserRecipeBuilder.java create mode 100644 src/main/java/de/teamlapen/vampirism/data/recipebuilder/ModdedSmithingTransformRecipeBuilder.java create mode 100644 src/main/java/de/teamlapen/vampirism/inventory/InfuserMenu.java create mode 100644 src/main/java/de/teamlapen/vampirism/items/PureLevelBlockItem.java create mode 100644 src/main/java/de/teamlapen/vampirism/items/PureLevelItem.java create mode 100644 src/main/java/de/teamlapen/vampirism/items/component/PureLevel.java create mode 100644 src/main/java/de/teamlapen/vampirism/recipes/InfuserRecipe.java create mode 100644 src/main/java/de/teamlapen/vampirism/util/RecipeHelper.java create mode 100644 src/main/resources/assets/vampirism/models/block/blood_infuser/infuser.json create mode 100644 src/main/resources/assets/vampirism/models/block/blood_infuser/infuser_blood.json create mode 100644 src/main/resources/assets/vampirism/textures/block/infuser.png create mode 100644 src/main/resources/assets/vampirism/textures/gui/container/infuser.png rename src/main/resources/assets/vampirism/textures/item/{blood_infused_enhanced_iron_ingot.png => blood_infused_diamond.png} (67%) create mode 100644 src/main/resources/assets/vampirism/textures/item/blood_infused_gold_ingot.png create mode 100644 src/main/resources/assets/vampirism/textures/item/blood_infused_netherite_ingot.png create mode 100644 src/main/resources/assets/vampirism/textures/item/blood_infused_raw_gold.png create mode 100644 src/main/resources/assets/vampirism/textures/item/blood_infused_raw_iron.png diff --git a/gradle.properties b/gradle.properties index 4c0f011c1c..d3db23decc 100755 --- a/gradle.properties +++ b/gradle.properties @@ -10,8 +10,8 @@ forge_version=21.4.46-beta forge_version_range=[21.4.46-beta,) loader_version_range=[4,) pack_format_number=18 -neogradle.subsystems.parchment.minecraftVersion=1.21 -neogradle.subsystems.parchment.mappingsVersion=2024.07.07 +neogradle.subsystems.parchment.minecraftVersion=1.21.4 +neogradle.subsystems.parchment.mappingsVersion=2025.01.19 # mod mod_id=vampirism diff --git a/src/api/java/de/teamlapen/vampirism/api/VampirismDataComponents.java b/src/api/java/de/teamlapen/vampirism/api/VampirismDataComponents.java index 6cd76e7c4b..427387ed86 100644 --- a/src/api/java/de/teamlapen/vampirism/api/VampirismDataComponents.java +++ b/src/api/java/de/teamlapen/vampirism/api/VampirismDataComponents.java @@ -49,5 +49,6 @@ public static class Keys { public static final ResourceLocation FACTION_RESTRICTION = VResourceLocation.mod("faction_restriction"); public static final ResourceLocation FACTION_SLAYER = VResourceLocation.mod("faction_slayer"); public static final ResourceLocation DROP_VAMPIRE_SOUL = VResourceLocation.mod("drop_vampire_soul"); + public static final ResourceLocation PURE_LEVEL = VResourceLocation.mod("pure_level"); } } diff --git a/src/generated/resources/assets/vampirism/blockstates/blood_infuser.json b/src/generated/resources/assets/vampirism/blockstates/blood_infuser.json new file mode 100644 index 0000000000..965d8a605d --- /dev/null +++ b/src/generated/resources/assets/vampirism/blockstates/blood_infuser.json @@ -0,0 +1,17 @@ +{ + "multipart": [ + { + "apply": { + "model": "vampirism:block/blood_infuser/infuser" + } + }, + { + "apply": { + "model": "vampirism:block/blood_infuser/infuser_blood" + }, + "when": { + "active": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/blood_infused_diamond.json b/src/generated/resources/assets/vampirism/items/blood_infused_diamond.json new file mode 100644 index 0000000000..a3c678eaed --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/blood_infused_diamond.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/blood_infused_diamond" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/blood_infused_enhanced_iron_ingot.json b/src/generated/resources/assets/vampirism/items/blood_infused_enhanced_iron_ingot.json deleted file mode 100644 index 1624c8b57b..0000000000 --- a/src/generated/resources/assets/vampirism/items/blood_infused_enhanced_iron_ingot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "vampirism:item/blood_infused_enhanced_iron_ingot" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/blood_infused_gold_ingot.json b/src/generated/resources/assets/vampirism/items/blood_infused_gold_ingot.json new file mode 100644 index 0000000000..e205a7d1e1 --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/blood_infused_gold_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/blood_infused_netherite_ingot.json b/src/generated/resources/assets/vampirism/items/blood_infused_netherite_ingot.json new file mode 100644 index 0000000000..e7ec21692b --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/blood_infused_netherite_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/blood_infused_netherite_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/blood_infused_raw_gold.json b/src/generated/resources/assets/vampirism/items/blood_infused_raw_gold.json new file mode 100644 index 0000000000..693ac48d50 --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/blood_infused_raw_gold.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/blood_infused_raw_gold" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/blood_infused_raw_iron.json b/src/generated/resources/assets/vampirism/items/blood_infused_raw_iron.json new file mode 100644 index 0000000000..6bb22997ca --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/blood_infused_raw_iron.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/blood_infused_raw_iron" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/blood_infuser.json b/src/generated/resources/assets/vampirism/items/blood_infuser.json new file mode 100644 index 0000000000..c249cf535b --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/blood_infuser.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:block/blood_infuser/infuser" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/heart_striker_normal.json b/src/generated/resources/assets/vampirism/items/diamond_heart_seeker.json similarity index 50% rename from src/generated/resources/assets/vampirism/items/heart_striker_normal.json rename to src/generated/resources/assets/vampirism/items/diamond_heart_seeker.json index 0c5ec836a3..648171ed72 100644 --- a/src/generated/resources/assets/vampirism/items/heart_striker_normal.json +++ b/src/generated/resources/assets/vampirism/items/diamond_heart_seeker.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "vampirism:item/heart_striker_normal" + "model": "vampirism:item/diamond_heart_seeker" } } \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/diamond_heart_striker.json b/src/generated/resources/assets/vampirism/items/diamond_heart_striker.json new file mode 100644 index 0000000000..bcaa3670e8 --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/diamond_heart_striker.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/diamond_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/heart_seeker_enhanced.json b/src/generated/resources/assets/vampirism/items/heart_seeker_enhanced.json deleted file mode 100644 index 4626832a67..0000000000 --- a/src/generated/resources/assets/vampirism/items/heart_seeker_enhanced.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "vampirism:item/heart_seeker_enhanced" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/heart_seeker_ultimate.json b/src/generated/resources/assets/vampirism/items/heart_seeker_ultimate.json deleted file mode 100644 index 92f2d13d89..0000000000 --- a/src/generated/resources/assets/vampirism/items/heart_seeker_ultimate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "vampirism:item/heart_seeker_ultimate" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/heart_striker_enhanced.json b/src/generated/resources/assets/vampirism/items/heart_striker_enhanced.json deleted file mode 100644 index aa6740edeb..0000000000 --- a/src/generated/resources/assets/vampirism/items/heart_striker_enhanced.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "vampirism:item/heart_striker_enhanced" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/heart_striker_ultimate.json b/src/generated/resources/assets/vampirism/items/heart_striker_ultimate.json deleted file mode 100644 index d0ab85871b..0000000000 --- a/src/generated/resources/assets/vampirism/items/heart_striker_ultimate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "vampirism:item/heart_striker_ultimate" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/heart_seeker_normal.json b/src/generated/resources/assets/vampirism/items/iron_heart_seeker.json similarity index 50% rename from src/generated/resources/assets/vampirism/items/heart_seeker_normal.json rename to src/generated/resources/assets/vampirism/items/iron_heart_seeker.json index 42bad10da6..50b32b4fa7 100644 --- a/src/generated/resources/assets/vampirism/items/heart_seeker_normal.json +++ b/src/generated/resources/assets/vampirism/items/iron_heart_seeker.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "vampirism:item/heart_seeker_normal" + "model": "vampirism:item/iron_heart_seeker" } } \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/iron_heart_striker.json b/src/generated/resources/assets/vampirism/items/iron_heart_striker.json new file mode 100644 index 0000000000..e63b4d9a03 --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/iron_heart_striker.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/iron_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/netherite_heart_seeker.json b/src/generated/resources/assets/vampirism/items/netherite_heart_seeker.json new file mode 100644 index 0000000000..303b15a0bc --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/netherite_heart_seeker.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/netherite_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/items/netherite_heart_striker.json b/src/generated/resources/assets/vampirism/items/netherite_heart_striker.json new file mode 100644 index 0000000000..bfcbca003e --- /dev/null +++ b/src/generated/resources/assets/vampirism/items/netherite_heart_striker.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "vampirism:item/netherite_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/models/item/blood_infused_diamond.json b/src/generated/resources/assets/vampirism/models/item/blood_infused_diamond.json new file mode 100644 index 0000000000..1dae35c396 --- /dev/null +++ b/src/generated/resources/assets/vampirism/models/item/blood_infused_diamond.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "vampirism:item/blood_infused_diamond" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/models/item/blood_infused_enhanced_iron_ingot.json b/src/generated/resources/assets/vampirism/models/item/blood_infused_enhanced_iron_ingot.json deleted file mode 100644 index 1244ba8043..0000000000 --- a/src/generated/resources/assets/vampirism/models/item/blood_infused_enhanced_iron_ingot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "vampirism:item/blood_infused_enhanced_iron_ingot" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/models/item/blood_infused_gold_ingot.json b/src/generated/resources/assets/vampirism/models/item/blood_infused_gold_ingot.json new file mode 100644 index 0000000000..52df0f808b --- /dev/null +++ b/src/generated/resources/assets/vampirism/models/item/blood_infused_gold_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "vampirism:item/blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/models/item/blood_infused_netherite_ingot.json b/src/generated/resources/assets/vampirism/models/item/blood_infused_netherite_ingot.json new file mode 100644 index 0000000000..3612057a6f --- /dev/null +++ b/src/generated/resources/assets/vampirism/models/item/blood_infused_netherite_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "vampirism:item/blood_infused_netherite_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/models/item/blood_infused_raw_gold.json b/src/generated/resources/assets/vampirism/models/item/blood_infused_raw_gold.json new file mode 100644 index 0000000000..94dbd9850a --- /dev/null +++ b/src/generated/resources/assets/vampirism/models/item/blood_infused_raw_gold.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "vampirism:item/blood_infused_raw_gold" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/models/item/blood_infused_raw_iron.json b/src/generated/resources/assets/vampirism/models/item/blood_infused_raw_iron.json new file mode 100644 index 0000000000..01e2179400 --- /dev/null +++ b/src/generated/resources/assets/vampirism/models/item/blood_infused_raw_iron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "vampirism:item/blood_infused_raw_iron" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/vampirism/models/item/heart_seeker_enhanced.json b/src/generated/resources/assets/vampirism/models/item/diamond_heart_seeker.json similarity index 100% rename from src/generated/resources/assets/vampirism/models/item/heart_seeker_enhanced.json rename to src/generated/resources/assets/vampirism/models/item/diamond_heart_seeker.json diff --git a/src/generated/resources/assets/vampirism/models/item/heart_striker_enhanced.json b/src/generated/resources/assets/vampirism/models/item/diamond_heart_striker.json similarity index 100% rename from src/generated/resources/assets/vampirism/models/item/heart_striker_enhanced.json rename to src/generated/resources/assets/vampirism/models/item/diamond_heart_striker.json diff --git a/src/generated/resources/assets/vampirism/models/item/heart_seeker_normal.json b/src/generated/resources/assets/vampirism/models/item/iron_heart_seeker.json similarity index 100% rename from src/generated/resources/assets/vampirism/models/item/heart_seeker_normal.json rename to src/generated/resources/assets/vampirism/models/item/iron_heart_seeker.json diff --git a/src/generated/resources/assets/vampirism/models/item/heart_striker_normal.json b/src/generated/resources/assets/vampirism/models/item/iron_heart_striker.json similarity index 100% rename from src/generated/resources/assets/vampirism/models/item/heart_striker_normal.json rename to src/generated/resources/assets/vampirism/models/item/iron_heart_striker.json diff --git a/src/generated/resources/assets/vampirism/models/item/heart_seeker_ultimate.json b/src/generated/resources/assets/vampirism/models/item/netherite_heart_seeker.json similarity index 100% rename from src/generated/resources/assets/vampirism/models/item/heart_seeker_ultimate.json rename to src/generated/resources/assets/vampirism/models/item/netherite_heart_seeker.json diff --git a/src/generated/resources/assets/vampirism/models/item/heart_striker_ultimate.json b/src/generated/resources/assets/vampirism/models/item/netherite_heart_striker.json similarity index 100% rename from src/generated/resources/assets/vampirism/models/item/heart_striker_ultimate.json rename to src/generated/resources/assets/vampirism/models/item/netherite_heart_striker.json diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_enhanced_repair.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_0.json similarity index 64% rename from src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_enhanced_repair.json rename to src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_0.json index dcae098984..1171766513 100644 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_enhanced_repair.json +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_0.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_heart_seeker": { + "has_blood_infused_diamond": { "conditions": { "items": [ { - "items": "vampirism:heart_seeker_enhanced" + "items": "vampirism:blood_infused_diamond" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "vampirism:vampire/heart_seeker_enhanced_repair" + "recipe": "minecraft:heart_seeker_enhanced_pure_0" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_heart_seeker" + "has_blood_infused_diamond" ] ], "rewards": { "recipes": [ - "vampirism:vampire/heart_seeker_enhanced_repair" + "minecraft:heart_seeker_enhanced_pure_0" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_1.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_1.json new file mode 100644 index 0000000000..df2d98fc97 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_1.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_enhanced_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_enhanced_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_2.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_2.json new file mode 100644 index 0000000000..b1b9b4b086 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_2.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_enhanced_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_enhanced_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_3.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_3.json new file mode 100644 index 0000000000..1fa971d9fe --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_enhanced_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_enhanced_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_4.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_4.json new file mode 100644 index 0000000000..b7090374f4 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_enhanced_pure_4.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_enhanced_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_enhanced_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_iron_block.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_0.json similarity index 84% rename from src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_iron_block.json rename to src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_0.json index 9e904d7d7d..b146c70be7 100644 --- a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_iron_block.json +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_0.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "minecraft:blood_infused_iron_block" + "recipe": "minecraft:heart_seeker_normal_pure_0" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "minecraft:blood_infused_iron_block" + "minecraft:heart_seeker_normal_pure_0" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_normal.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_1.json similarity index 72% rename from src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_normal.json rename to src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_1.json index 7a80ef0753..158fa60b89 100644 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_normal.json +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_1.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_ingot": { + "has_blood_infused_iron_ingot": { "conditions": { "items": [ { @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "vampirism:vampire/heart_seeker_normal" + "recipe": "minecraft:heart_seeker_normal_pure_1" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_ingot" + "has_blood_infused_iron_ingot" ] ], "rewards": { "recipes": [ - "vampirism:vampire/heart_seeker_normal" + "minecraft:heart_seeker_normal_pure_1" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_normal.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_2.json similarity index 72% rename from src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_normal.json rename to src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_2.json index 262703c219..c82e3eaa9d 100644 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_normal.json +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_2.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_ingot": { + "has_blood_infused_iron_ingot": { "conditions": { "items": [ { @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "vampirism:vampire/heart_striker_normal" + "recipe": "minecraft:heart_seeker_normal_pure_2" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_ingot" + "has_blood_infused_iron_ingot" ] ], "rewards": { "recipes": [ - "vampirism:vampire/heart_striker_normal" + "minecraft:heart_seeker_normal_pure_2" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_3.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_3.json new file mode 100644 index 0000000000..df2ca21289 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_normal_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_normal_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_4.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_4.json new file mode 100644 index 0000000000..978c15f859 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_normal_pure_4.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_normal_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_normal_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_0.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_0.json new file mode 100644 index 0000000000..f52b777d04 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_0.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_ultimate_pure_0" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_ultimate_pure_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_1.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_1.json new file mode 100644 index 0000000000..396f63137d --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_1.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_ultimate_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_ultimate_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_2.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_2.json new file mode 100644 index 0000000000..481e9e9742 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_2.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_ultimate_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_ultimate_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_3.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_3.json new file mode 100644 index 0000000000..9508ffb811 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_ultimate_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_ultimate_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_4.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_4.json new file mode 100644 index 0000000000..64a58737c8 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_seeker_ultimate_pure_4.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_seeker_ultimate_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_seeker_ultimate_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_0.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_0.json new file mode 100644 index 0000000000..513f83d393 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_0.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_enhanced_pure_0" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_enhanced_pure_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_1.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_1.json new file mode 100644 index 0000000000..847a70912b --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_1.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_enhanced_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_enhanced_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_2.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_2.json new file mode 100644 index 0000000000..4d02334f3d --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_2.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_enhanced_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_enhanced_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_3.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_3.json new file mode 100644 index 0000000000..7257bd502c --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_enhanced_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_enhanced_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_4.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_4.json new file mode 100644 index 0000000000..95fad94683 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_enhanced_pure_4.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_diamond": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_enhanced_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_enhanced_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_0.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_0.json new file mode 100644 index 0000000000..18cc00b2c8 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_0.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_normal_pure_0" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_normal_pure_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_1.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_1.json new file mode 100644 index 0000000000..3036dd8e95 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_1.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_normal_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_normal_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_2.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_2.json new file mode 100644 index 0000000000..f77e7ab323 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_2.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_normal_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_normal_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_3.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_3.json new file mode 100644 index 0000000000..c4fa928c1d --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_normal_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_normal_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_4.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_4.json new file mode 100644 index 0000000000..43475b3aba --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_normal_pure_4.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_normal_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_normal_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_0.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_0.json new file mode 100644 index 0000000000..8697be63ab --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_0.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_ultimate_pure_0" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_ultimate_pure_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_1.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_1.json new file mode 100644 index 0000000000..fe4c691db8 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_1.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_ultimate_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_ultimate_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_2.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_2.json new file mode 100644 index 0000000000..b07200e77b --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_2.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_ultimate_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_ultimate_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_3.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_3.json new file mode 100644 index 0000000000..7cb4742bf0 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_ultimate_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_ultimate_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_4.json b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_4.json new file mode 100644 index 0000000000..c40a2deed3 --- /dev/null +++ b/src/generated/resources/data/minecraft/advancement/recipes/combat/heart_striker_ultimate_pure_4.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_striker_ultimate_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_striker_ultimate_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_block.json b/src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_block.json deleted file mode 100644 index c21dfbe5b9..0000000000 --- a/src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_block.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": "vampirism:blood_infused_enhanced_iron_ingot" - }, - "pattern": [ - "###", - "###", - "###" - ], - "result": { - "count": 1, - "id": "vampirism:blood_infused_enhanced_iron_block" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_ingot.json b/src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_ingot.json deleted file mode 100644 index 556fa4f62d..0000000000 --- a/src/generated/resources/data/minecraft/recipe/blood_infused_enhanced_iron_ingot.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - "vampirism:blood_infused_enhanced_iron_block" - ], - "result": { - "count": 9, - "id": "vampirism:blood_infused_enhanced_iron_ingot" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/blood_infused_iron_block.json b/src/generated/resources/data/minecraft/recipe/blood_infused_iron_block.json deleted file mode 100644 index 83e2474f24..0000000000 --- a/src/generated/resources/data/minecraft/recipe/blood_infused_iron_block.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "#": "vampirism:blood_infused_iron_ingot" - }, - "pattern": [ - "###", - "###", - "###" - ], - "result": { - "count": 1, - "id": "vampirism:blood_infused_iron_block" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/blood_infused_iron_ingot.json b/src/generated/resources/data/minecraft/recipe/blood_infused_iron_ingot.json deleted file mode 100644 index f5a0aa42cc..0000000000 --- a/src/generated/resources/data/minecraft/recipe/blood_infused_iron_ingot.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - "vampirism:blood_infused_iron_block" - ], - "result": { - "count": 9, - "id": "vampirism:blood_infused_iron_ingot" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_0.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_0.json new file mode 100644 index 0000000000..8d36eddfd1 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_0.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_1.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_1.json new file mode 100644 index 0000000000..661a8a5775 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_2.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_2.json new file mode 100644 index 0000000000..5242fbcf17 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_3.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_3.json new file mode 100644 index 0000000000..95f2829405 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_4.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_4.json new file mode 100644 index 0000000000..1188eec3ff --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_enhanced_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_0.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_0.json new file mode 100644 index 0000000000..e9b7e2f7de --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_0.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:iron_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_1.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_1.json new file mode 100644 index 0000000000..4692914226 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:iron_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_2.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_2.json new file mode 100644 index 0000000000..bdfd219974 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:iron_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_3.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_3.json new file mode 100644 index 0000000000..3ba9f09002 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:iron_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_4.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_4.json new file mode 100644 index 0000000000..a2c55c40d7 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_normal_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:iron_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_0.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_0.json new file mode 100644 index 0000000000..410aeb0aef --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_0.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_1.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_1.json new file mode 100644 index 0000000000..e7a49078ce --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_2.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_2.json new file mode 100644 index 0000000000..f55a90fb0e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_3.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_3.json new file mode 100644 index 0000000000..47122ae51f --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_4.json b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_4.json new file mode 100644 index 0000000000..0cd3a4c223 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_seeker_ultimate_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "X", + "X", + "Y" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_0.json b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_0.json new file mode 100644 index 0000000000..1d4fc3795f --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_0.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_1.json b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_1.json new file mode 100644 index 0000000000..e4041cbfd0 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_2.json b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_2.json new file mode 100644 index 0000000000..c217453166 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_3.json b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_3.json new file mode 100644 index 0000000000..8d4175cc3e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_4.json b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_4.json new file mode 100644 index 0000000000..99458054cd --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_enhanced_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_diamond" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:diamond_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_0.json b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_0.json new file mode 100644 index 0000000000..de7ec3a708 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_0.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:iron_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_1.json b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_1.json new file mode 100644 index 0000000000..f72ce8b7ed --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:iron_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_2.json b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_2.json new file mode 100644 index 0000000000..f6237dc48b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:iron_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_3.json b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_3.json new file mode 100644 index 0000000000..50759b398a --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:iron_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_4.json b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_4.json new file mode 100644 index 0000000000..75af281a51 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_normal_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:iron_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_0.json b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_0.json new file mode 100644 index 0000000000..c7ef7558c8 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_0.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_1.json b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_1.json new file mode 100644 index 0000000000..81a84e824a --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_2.json b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_2.json new file mode 100644 index 0000000000..66b9b8e880 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_3.json b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_3.json new file mode 100644 index 0000000000..f37cf0fcb7 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_4.json b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_4.json new file mode 100644 index 0000000000..18fd6eac29 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipe/heart_striker_ultimate_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "Y": "#c:rods/wooden" + }, + "pattern": [ + "XX", + "XX", + "YY" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block_purity_4.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block_purity_4.json new file mode 100644 index 0000000000..7c62057ab8 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block_purity_4.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_enhanced_iron_block_purity_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_enhanced_iron_block_purity_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_0.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_0.json new file mode 100644 index 0000000000..a8cb75ddbe --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_0.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_iron_block_purity_0" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_iron_block_purity_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_1.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_1.json new file mode 100644 index 0000000000..7514432dd4 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_1.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_iron_block_purity_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_iron_block_purity_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_2.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_2.json new file mode 100644 index 0000000000..8b778a53c7 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_2.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_iron_block_purity_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_iron_block_purity_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_3.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_3.json new file mode 100644 index 0000000000..c16fb81baf --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_block_purity_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_iron_block_purity_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_iron_block_purity_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_iron_ingot.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_0.json similarity index 82% rename from src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_iron_ingot.json rename to src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_0.json index 68bb3ab8a3..0ce55f7b04 100644 --- a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_iron_ingot.json +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_0.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "minecraft:blood_infused_iron_ingot" + "recipe": "vampirism:blood_infused_iron_ingot_purity_0" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "minecraft:blood_infused_iron_ingot" + "vampirism:blood_infused_iron_ingot_purity_0" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_1.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_1.json new file mode 100644 index 0000000000..a459650081 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_1.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_block": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_iron_ingot_purity_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_block" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_iron_ingot_purity_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_2.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_2.json new file mode 100644 index 0000000000..7c7d3620c6 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_2.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_block": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_iron_ingot_purity_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_block" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_iron_ingot_purity_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_3.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_3.json new file mode 100644 index 0000000000..bada064167 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_3.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_iron_block": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:blood_infused_iron_ingot_purity_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_iron_block" + ] + ], + "rewards": { + "recipes": [ + "vampirism:blood_infused_iron_ingot_purity_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_ingot.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_4.json similarity index 83% rename from src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_ingot.json rename to src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_4.json index 4e0ac8f695..b507eb5561 100644 --- a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_ingot.json +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/blood_infused_iron_ingot_purity_4.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "minecraft:blood_infused_enhanced_iron_ingot" + "recipe": "vampirism:blood_infused_iron_ingot_purity_4" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "minecraft:blood_infused_enhanced_iron_ingot" + "vampirism:blood_infused_iron_ingot_purity_4" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_0.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_0.json new file mode 100644 index 0000000000..8a80741678 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_0.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_gold_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_netherite_scrap": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_scrap" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_scrap_pure_0" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_gold_ingot", + "has_netherite_scrap" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_scrap_pure_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_1.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_1.json new file mode 100644 index 0000000000..41b2eef330 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_1.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_gold_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_netherite_scrap": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_scrap" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_scrap_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_gold_ingot", + "has_netherite_scrap" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_scrap_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_2.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_2.json new file mode 100644 index 0000000000..9ae36dd0e9 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_2.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_gold_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_netherite_scrap": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_scrap" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_scrap_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_gold_ingot", + "has_netherite_scrap" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_scrap_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_3.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_3.json new file mode 100644 index 0000000000..7963b2a340 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_3.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_gold_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_netherite_scrap": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_scrap" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_scrap_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_gold_ingot", + "has_netherite_scrap" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_scrap_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_4.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_4.json new file mode 100644 index 0000000000..d34fe06dff --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/netherite_scrap_pure_4.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_gold_ingot": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_netherite_scrap": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_scrap" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_scrap_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_gold_ingot", + "has_netherite_scrap" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_scrap_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_blasting.json new file mode 100644 index 0000000000..a133e4757d --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_0_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_0_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_smelting.json new file mode 100644 index 0000000000..ae5cca8f27 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_0_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_0_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_0_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_blasting.json new file mode 100644 index 0000000000..9ed1ef3e69 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_1_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_1_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_smelting.json new file mode 100644 index 0000000000..b214fba354 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_1_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_1_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_1_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_blasting.json new file mode 100644 index 0000000000..f7d2de0893 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_2_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_2_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_smelting.json new file mode 100644 index 0000000000..b24be1caf8 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_2_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_2_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_2_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_blasting.json new file mode 100644 index 0000000000..d322c2198b --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_3_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_3_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_smelting.json new file mode 100644 index 0000000000..4b3b28eacd --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_3_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_3_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_3_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_blasting.json new file mode 100644 index 0000000000..6811a82940 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_4_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_4_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_smelting.json new file mode 100644 index 0000000000..3b9bcad6a3 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_gold_pure_4_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_gold": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_4_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_4_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_blasting.json new file mode 100644 index 0000000000..1112e6ae10 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_0_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_0_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_smelting.json new file mode 100644 index 0000000000..b41f5782e1 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_0_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_0_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_0_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_blasting.json new file mode 100644 index 0000000000..f3b022adff --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_1_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_1_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_smelting.json new file mode 100644 index 0000000000..89d170095b --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_1_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_1_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_1_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_blasting.json new file mode 100644 index 0000000000..16d417921c --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_2_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_2_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_smelting.json new file mode 100644 index 0000000000..cee10e4f38 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_2_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_2_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_2_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_blasting.json new file mode 100644 index 0000000000..f9d1bc8d0d --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_3_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_3_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_smelting.json new file mode 100644 index 0000000000..ee0de8045c --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_3_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_3_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_3_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_blasting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_blasting.json new file mode 100644 index 0000000000..311dc18e0d --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_4_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_4_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_smelting.json b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_smelting.json new file mode 100644 index 0000000000..a7b4b31848 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/building_blocks/raw_iron_pure_4_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blood_infused_raw_iron": { + "conditions": { + "items": [ + { + "items": "vampirism:blood_infused_raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_4_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blood_infused_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_4_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_0_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_0_smithing.json new file mode 100644 index 0000000000..73911c6e64 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_0_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_purity_0_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_purity_0_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_1_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_1_smithing.json new file mode 100644 index 0000000000..f081190bdd --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_1_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_purity_1_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_purity_1_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_2_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_2_smithing.json new file mode 100644 index 0000000000..748c9329b0 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_2_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_purity_2_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_purity_2_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_3_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_3_smithing.json new file mode 100644 index 0000000000..7aa75f1c7d --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_3_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_purity_3_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_purity_3_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_4_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_4_smithing.json new file mode 100644 index 0000000000..1d164147b3 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_seeker_purity_4_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_purity_4_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_purity_4_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_0_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_0_smithing.json new file mode 100644 index 0000000000..bdc2b54481 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_0_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_purity_0_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_purity_0_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_1_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_1_smithing.json new file mode 100644 index 0000000000..2590d15015 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_1_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_purity_1_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_purity_1_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_2_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_2_smithing.json new file mode 100644 index 0000000000..610b67f7e9 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_2_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_purity_2_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_purity_2_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_3_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_3_smithing.json new file mode 100644 index 0000000000..467461b584 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_3_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_purity_3_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_purity_3_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_4_smithing.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_4_smithing.json new file mode 100644 index 0000000000..a2a4fea50b --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/combat/netherite_heart_striker_purity_4_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "#minecraft:netherite_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_purity_4_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_purity_4_smithing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_enhanced_repair.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_enhanced_repair.json deleted file mode 100644 index 103f1e9896..0000000000 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_enhanced_repair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_heart_striker": { - "conditions": { - "items": [ - { - "items": "vampirism:heart_striker_enhanced" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "vampirism:vampire/heart_striker_enhanced_repair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_heart_striker" - ] - ], - "rewards": { - "recipes": [ - "vampirism:vampire/heart_striker_enhanced_repair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_normal_repair.json b/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_normal_repair.json deleted file mode 100644 index 37c5cf5747..0000000000 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_normal_repair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_heart_striker": { - "conditions": { - "items": [ - { - "items": "vampirism:heart_striker_normal" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "vampirism:vampire/heart_striker_normal_repair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_heart_striker" - ] - ], - "rewards": { - "recipes": [ - "vampirism:vampire/heart_striker_normal_repair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_1_upgrade.json new file mode 100644 index 0000000000..c96e63cdbe --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_1_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_1" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_seeker_infuse_1_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_seeker_infuse_1_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_2_upgrade.json new file mode 100644 index 0000000000..97078e7259 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_2_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_seeker_infuse_2_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_seeker_infuse_2_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_3_upgrade.json new file mode 100644 index 0000000000..d333113191 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_3_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_seeker_infuse_3_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_seeker_infuse_3_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_4_upgrade.json new file mode 100644 index 0000000000..f530264234 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_seeker_infuse_4_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_seeker_infuse_4_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_seeker_infuse_4_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_1_upgrade.json new file mode 100644 index 0000000000..f0282938dd --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_1_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_1" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_striker_infuse_1_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_striker_infuse_1_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_2_upgrade.json new file mode 100644 index 0000000000..5136a32bfd --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_2_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_striker_infuse_2_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_striker_infuse_2_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_3_upgrade.json new file mode 100644 index 0000000000..adb05625a9 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_3_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_striker_infuse_3_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_striker_infuse_3_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_4_upgrade.json new file mode 100644 index 0000000000..6de0b9ebe3 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_heart_striker_infuse_4_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_heart_striker_infuse_4_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_heart_striker_infuse_4_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_0.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_0.json new file mode 100644 index 0000000000..91e5ada865 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_0.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_0" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_pure_0" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_diamonds": { + "conditions": { + "items": [ + { + "items": "#c:gems/diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_diamonds", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_pure_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_1.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_1.json new file mode 100644 index 0000000000..6a5cd510ad --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_1.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_1" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_diamonds": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_diamonds", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_2.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_2.json new file mode 100644 index 0000000000..bd6662a416 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_2.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_diamonds": { + "conditions": { + "items": [ + { + "items": "#c:gems/diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_diamonds", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_3.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_3.json new file mode 100644 index 0000000000..de680cc0fd --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_3.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_diamonds": { + "conditions": { + "items": [ + { + "items": "#c:gems/diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_diamonds", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_4.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_4.json new file mode 100644 index 0000000000..8e60d10ee1 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/diamond_pure_4.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:diamond_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_diamonds": { + "conditions": { + "items": [ + { + "items": "#c:gems/diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_diamonds", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:diamond_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_enhanced.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_1_upgrade.json similarity index 65% rename from src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_enhanced.json rename to src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_1_upgrade.json index 52e981e71f..c4532ea060 100644 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_enhanced.json +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_1_upgrade.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_ingot": { + "has_pure_blood": { "conditions": { "items": [ { - "items": "vampirism:blood_infused_enhanced_iron_ingot" + "items": "vampirism:pure_blood_1" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "vampirism:vampire/heart_seeker_enhanced" + "recipe": "vampirism:iron_heart_seeker_infuse_1_upgrade" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_ingot" + "has_pure_blood" ] ], "rewards": { "recipes": [ - "vampirism:vampire/heart_seeker_enhanced" + "vampirism:iron_heart_seeker_infuse_1_upgrade" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_enhanced.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_2_upgrade.json similarity index 65% rename from src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_enhanced.json rename to src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_2_upgrade.json index b9a5a18db1..24a9fecf15 100644 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_striker_enhanced.json +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_2_upgrade.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_ingot": { + "has_pure_blood": { "conditions": { "items": [ { - "items": "vampirism:blood_infused_enhanced_iron_ingot" + "items": "vampirism:pure_blood_2" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "vampirism:vampire/heart_striker_enhanced" + "recipe": "vampirism:iron_heart_seeker_infuse_2_upgrade" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_ingot" + "has_pure_blood" ] ], "rewards": { "recipes": [ - "vampirism:vampire/heart_striker_enhanced" + "vampirism:iron_heart_seeker_infuse_2_upgrade" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_3_upgrade.json new file mode 100644 index 0000000000..c8c71d2b86 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_3_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:iron_heart_seeker_infuse_3_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:iron_heart_seeker_infuse_3_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_4_upgrade.json new file mode 100644 index 0000000000..e9b421e7e7 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_seeker_infuse_4_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:iron_heart_seeker_infuse_4_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:iron_heart_seeker_infuse_4_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_1_upgrade.json new file mode 100644 index 0000000000..665890537f --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_1_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_1" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:iron_heart_striker_infuse_1_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:iron_heart_striker_infuse_1_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_2_upgrade.json new file mode 100644 index 0000000000..24d6c004b2 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_2_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:iron_heart_striker_infuse_2_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:iron_heart_striker_infuse_2_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_3_upgrade.json new file mode 100644 index 0000000000..15adcd5f61 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_3_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:iron_heart_striker_infuse_3_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:iron_heart_striker_infuse_3_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_4_upgrade.json new file mode 100644 index 0000000000..b490688e57 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/iron_heart_striker_infuse_4_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:iron_heart_striker_infuse_4_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:iron_heart_striker_infuse_4_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_1_upgrade.json new file mode 100644 index 0000000000..60b4269e86 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_1_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_1" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_infuse_1_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_infuse_1_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_2_upgrade.json new file mode 100644 index 0000000000..f093434783 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_2_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_infuse_2_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_infuse_2_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_3_upgrade.json new file mode 100644 index 0000000000..5a76cc8fc7 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_3_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_infuse_3_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_infuse_3_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_4_upgrade.json new file mode 100644 index 0000000000..c801a28a63 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_seeker_infuse_4_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_seeker_infuse_4_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_seeker_infuse_4_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_normal_repair.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_1_upgrade.json similarity index 64% rename from src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_normal_repair.json rename to src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_1_upgrade.json index a8880b6e15..b72a2c8fbf 100644 --- a/src/generated/resources/data/vampirism/advancement/recipes/combat/vampire/heart_seeker_normal_repair.json +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_1_upgrade.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_heart_seeker": { + "has_pure_blood": { "conditions": { "items": [ { - "items": "vampirism:heart_seeker_normal" + "items": "vampirism:pure_blood_1" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "vampirism:vampire/heart_seeker_normal_repair" + "recipe": "vampirism:netherite_heart_striker_infuse_1_upgrade" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_heart_seeker" + "has_pure_blood" ] ], "rewards": { "recipes": [ - "vampirism:vampire/heart_seeker_normal_repair" + "vampirism:netherite_heart_striker_infuse_1_upgrade" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_2_upgrade.json new file mode 100644 index 0000000000..d6ce1ccb91 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_2_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_infuse_2_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_infuse_2_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_3_upgrade.json new file mode 100644 index 0000000000..c3b7bd61cf --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_3_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_infuse_3_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_infuse_3_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_4_upgrade.json new file mode 100644 index 0000000000..1ceab47aa8 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/netherite_heart_striker_infuse_4_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:netherite_heart_striker_infuse_4_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:netherite_heart_striker_infuse_4_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_0.json similarity index 51% rename from src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block.json rename to src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_0.json index 5cbafaf332..7b10e59bc3 100644 --- a/src/generated/resources/data/minecraft/advancement/recipes/building_blocks/blood_infused_enhanced_iron_block.json +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_0.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_blood_infused_enhanced_iron_ingot": { + "has_pure_blood": { "conditions": { "items": [ { - "items": "vampirism:blood_infused_enhanced_iron_ingot" + "items": "vampirism:pure_blood_0" } ] }, @@ -13,20 +13,31 @@ }, "has_the_recipe": { "conditions": { - "recipe": "minecraft:blood_infused_enhanced_iron_block" + "recipe": "vampirism:raw_gold_pure_0" }, "trigger": "minecraft:recipe_unlocked" + }, + "raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" } }, "requirements": [ [ "has_the_recipe", - "has_blood_infused_enhanced_iron_ingot" + "raw_gold", + "has_pure_blood" ] ], "rewards": { "recipes": [ - "minecraft:blood_infused_enhanced_iron_block" + "vampirism:raw_gold_pure_0" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_1.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_1.json new file mode 100644 index 0000000000..7737a63059 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_1.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_1" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_gold", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_2.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_2.json new file mode 100644 index 0000000000..7c32592548 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_2.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_gold", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_3.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_3.json new file mode 100644 index 0000000000..3ac354d25e --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_3.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_gold", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_4.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_4.json new file mode 100644 index 0000000000..3b658a40a8 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_gold_pure_4.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_gold_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_gold", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_gold_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_0.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_0.json new file mode 100644 index 0000000000..ce708699b1 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_0.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_0" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_0" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_iron", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_1.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_1.json new file mode 100644 index 0000000000..015e355e9b --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_1.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_1" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_1" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_iron", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_1" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_2.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_2.json new file mode 100644 index 0000000000..375e924821 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_2.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_2" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_2" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_iron", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_2" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_3.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_3.json new file mode 100644 index 0000000000..62e9ae7217 --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_3.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_3" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_3" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_iron", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_3" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_4.json b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_4.json new file mode 100644 index 0000000000..7ce90385bd --- /dev/null +++ b/src/generated/resources/data/vampirism/advancement/recipes/infuser/raw_iron_pure_4.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pure_blood": { + "conditions": { + "items": [ + { + "items": "vampirism:pure_blood_4" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "vampirism:raw_iron_pure_4" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "raw_iron", + "has_pure_blood" + ] + ], + "rewards": { + "recipes": [ + "vampirism:raw_iron_pure_4" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/loot_table/blocks/blood_infuser.json b/src/generated/resources/data/vampirism/loot_table/blocks/blood_infuser.json new file mode 100644 index 0000000000..b684870736 --- /dev/null +++ b/src/generated/resources/data/vampirism/loot_table/blocks/blood_infuser.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "vampirism:blood_infuser" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "vampirism:blocks/blood_infuser" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/loot_table/chests/crypt.json b/src/generated/resources/data/vampirism/loot_table/chests/crypt.json index f90959b5b5..ecf4a1af51 100644 --- a/src/generated/resources/data/vampirism/loot_table/chests/crypt.json +++ b/src/generated/resources/data/vampirism/loot_table/chests/crypt.json @@ -16,7 +16,7 @@ }, { "type": "minecraft:item", - "name": "vampirism:blood_infused_enhanced_iron_ingot", + "name": "vampirism:blood_infused_iron_ingot", "weight": 15 }, { @@ -117,32 +117,32 @@ "entries": [ { "type": "minecraft:item", - "name": "vampirism:heart_striker_normal", + "name": "vampirism:iron_heart_striker", "weight": 30 }, { "type": "minecraft:item", - "name": "vampirism:heart_striker_enhanced", + "name": "vampirism:diamond_heart_striker", "weight": 20 }, { "type": "minecraft:item", - "name": "vampirism:heart_striker_ultimate", + "name": "vampirism:netherite_heart_striker", "weight": 10 }, { "type": "minecraft:item", - "name": "vampirism:heart_seeker_normal", + "name": "vampirism:iron_heart_seeker", "weight": 30 }, { "type": "minecraft:item", - "name": "vampirism:heart_seeker_enhanced", + "name": "vampirism:diamond_heart_seeker", "weight": 20 }, { "type": "minecraft:item", - "name": "vampirism:heart_seeker_ultimate", + "name": "vampirism:netherite_heart_seeker", "weight": 10 }, { diff --git a/src/generated/resources/data/vampirism/loot_table/chests/dungeon/vampire_dungeon.json b/src/generated/resources/data/vampirism/loot_table/chests/dungeon/vampire_dungeon.json index c7aa364bc7..73a1938e55 100644 --- a/src/generated/resources/data/vampirism/loot_table/chests/dungeon/vampire_dungeon.json +++ b/src/generated/resources/data/vampirism/loot_table/chests/dungeon/vampire_dungeon.json @@ -68,7 +68,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_seeker_enhanced", + "name": "vampirism:diamond_heart_seeker", "weight": 21 }, { @@ -92,7 +92,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_seeker_ultimate", + "name": "vampirism:netherite_heart_seeker", "weight": 9 }, { @@ -116,7 +116,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_striker_enhanced", + "name": "vampirism:diamond_heart_striker", "weight": 21 }, { @@ -140,7 +140,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_striker_ultimate", + "name": "vampirism:netherite_heart_striker", "weight": 9 }, { diff --git a/src/generated/resources/data/vampirism/loot_table/chests/vampire_hut.json b/src/generated/resources/data/vampirism/loot_table/chests/vampire_hut.json index ede0e04d3f..91278f9fa4 100644 --- a/src/generated/resources/data/vampirism/loot_table/chests/vampire_hut.json +++ b/src/generated/resources/data/vampirism/loot_table/chests/vampire_hut.json @@ -112,7 +112,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_seeker_enhanced", + "name": "vampirism:diamond_heart_seeker", "weight": 21 }, { @@ -136,7 +136,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_seeker_ultimate", + "name": "vampirism:netherite_heart_seeker", "weight": 9 }, { @@ -160,7 +160,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_striker_enhanced", + "name": "vampirism:diamond_heart_striker", "weight": 21 }, { @@ -184,7 +184,7 @@ "function": "vampirism:set_item_blood_charge" } ], - "name": "vampirism:heart_striker_ultimate", + "name": "vampirism:netherite_heart_striker", "weight": 9 }, { diff --git a/src/generated/resources/data/vampirism/loot_table/inject/abandoned_mineshaft.json b/src/generated/resources/data/vampirism/loot_table/inject/abandoned_mineshaft.json index 2c5610c144..c06b8393bc 100644 --- a/src/generated/resources/data/vampirism/loot_table/inject/abandoned_mineshaft.json +++ b/src/generated/resources/data/vampirism/loot_table/inject/abandoned_mineshaft.json @@ -167,7 +167,7 @@ "function": "minecraft:set_damage" } ], - "name": "vampirism:heart_seeker_enhanced", + "name": "vampirism:diamond_heart_seeker", "weight": 20 }, { @@ -183,7 +183,7 @@ "function": "minecraft:set_damage" } ], - "name": "vampirism:heart_striker_enhanced", + "name": "vampirism:diamond_heart_striker", "weight": 20 }, { diff --git a/src/generated/resources/data/vampirism/loot_table/inject/stronghold_corridor.json b/src/generated/resources/data/vampirism/loot_table/inject/stronghold_corridor.json index 3a21a4ac4f..5741bb37d3 100644 --- a/src/generated/resources/data/vampirism/loot_table/inject/stronghold_corridor.json +++ b/src/generated/resources/data/vampirism/loot_table/inject/stronghold_corridor.json @@ -116,7 +116,7 @@ "function": "minecraft:set_damage" } ], - "name": "vampirism:heart_seeker_enhanced", + "name": "vampirism:diamond_heart_seeker", "weight": 10 }, { @@ -132,7 +132,7 @@ "function": "minecraft:set_damage" } ], - "name": "vampirism:heart_striker_enhanced", + "name": "vampirism:diamond_heart_striker", "weight": 10 }, { diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_enhanced_iron_block_purity_4.json b/src/generated/resources/data/vampirism/recipe/blood_infused_enhanced_iron_block_purity_4.json new file mode 100644 index 0000000000..e457a2f958 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_enhanced_iron_block_purity_4.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_ingot", + "minecraft:item_name": "{\"translate\":\"item.vampirism.blood_infused_iron_ingot\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "vampirism:blood_infused_enhanced_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_0.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_0.json new file mode 100644 index 0000000000..300bd73482 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_0.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_ingot", + "minecraft:item_name": "{\"translate\":\"item.vampirism.blood_infused_iron_ingot\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "vampirism:blood_infused_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_1.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_1.json new file mode 100644 index 0000000000..f167cab3d7 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_1.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_ingot", + "minecraft:item_name": "{\"translate\":\"item.vampirism.blood_infused_iron_ingot\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_2.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_2.json new file mode 100644 index 0000000000..adcc92592d --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_2.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_ingot", + "minecraft:item_name": "{\"translate\":\"item.vampirism.blood_infused_iron_ingot\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_3.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_3.json new file mode 100644 index 0000000000..13cdfef88b --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_block_purity_3.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_ingot", + "minecraft:item_name": "{\"translate\":\"item.vampirism.blood_infused_iron_ingot\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_iron_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_0.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_0.json new file mode 100644 index 0000000000..c5fe6553bd --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_0.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_block", + "minecraft:item_name": "{\"translate\":\"block.vampirism.blood_infused_iron_block\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_iron_block" + } + ], + "result": { + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_1.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_1.json new file mode 100644 index 0000000000..e9b85d4a7c --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_1.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_block", + "minecraft:item_name": "{\"translate\":\"block.vampirism.blood_infused_iron_block\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_iron_block" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_2.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_2.json new file mode 100644 index 0000000000..154cd08b5d --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_2.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_block", + "minecraft:item_name": "{\"translate\":\"block.vampirism.blood_infused_iron_block\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_iron_block" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_3.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_3.json new file mode 100644 index 0000000000..495bd91dd9 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_3.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_iron_block", + "minecraft:item_name": "{\"translate\":\"block.vampirism.blood_infused_iron_block\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_iron_block" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_4.json b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_4.json new file mode 100644 index 0000000000..19142591a8 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/blood_infused_iron_ingot_purity_4.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:item_model": "vampirism:blood_infused_enhanced_iron_block", + "minecraft:item_name": "{\"translate\":\"block.vampirism.blood_infused_enhanced_iron_block\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 64, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0, + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_enhanced_iron_block" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_1_upgrade.json new file mode 100644 index 0000000000..65fe31044d --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_1_upgrade.json @@ -0,0 +1,16 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_2_upgrade.json new file mode 100644 index 0000000000..c48fc48a72 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_2_upgrade.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_3_upgrade.json new file mode 100644 index 0000000000..2c3f6288c0 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_3_upgrade.json @@ -0,0 +1,39 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:diamond_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_4_upgrade.json new file mode 100644 index 0000000000..0eb462024a --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_seeker_infuse_4_upgrade.json @@ -0,0 +1,48 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:diamond_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_1_upgrade.json new file mode 100644 index 0000000000..c8cf5b9e81 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_1_upgrade.json @@ -0,0 +1,16 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_2_upgrade.json new file mode 100644 index 0000000000..8393ab0359 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_2_upgrade.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_3_upgrade.json new file mode 100644 index 0000000000..23c0943679 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_3_upgrade.json @@ -0,0 +1,39 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:diamond_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_4_upgrade.json new file mode 100644 index 0000000000..60408af81b --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_heart_striker_infuse_4_upgrade.json @@ -0,0 +1,48 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:diamond_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_pure_0.json b/src/generated/resources/data/vampirism/recipe/diamond_pure_0.json new file mode 100644 index 0000000000..94dd592d55 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_pure_0.json @@ -0,0 +1,24 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_0", + "ingredient2": "vampirism:pure_blood_0", + "ingredient3": "vampirism:pure_blood_0", + "ingredient4": "vampirism:pure_blood_0", + "item": "#c:gems/diamond", + "result": { + "count": 1, + "id": "vampirism:blood_infused_diamond" + }, + "result1": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + }, + "result2": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + }, + "result3": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_pure_1.json b/src/generated/resources/data/vampirism/recipe/diamond_pure_1.json new file mode 100644 index 0000000000..954f016432 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 400, + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": "#c:gems/diamond", + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_diamond" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_0" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_0" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_0" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_pure_2.json b/src/generated/resources/data/vampirism/recipe/diamond_pure_2.json new file mode 100644 index 0000000000..1638aec522 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 600, + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": "#c:gems/diamond", + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_diamond" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_1" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_1" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_1" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_pure_3.json b/src/generated/resources/data/vampirism/recipe/diamond_pure_3.json new file mode 100644 index 0000000000..f5c4ee02f8 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 800, + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": "#c:gems/diamond", + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_diamond" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_2" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_2" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_2" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/diamond_pure_4.json b/src/generated/resources/data/vampirism/recipe/diamond_pure_4.json new file mode 100644 index 0000000000..f728a7b336 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/diamond_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 1000, + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": "#c:gems/diamond", + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_diamond" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_3" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_3" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_3" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_1_upgrade.json new file mode 100644 index 0000000000..9f07bafac8 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_1_upgrade.json @@ -0,0 +1,16 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_2_upgrade.json new file mode 100644 index 0000000000..374630e2b8 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_2_upgrade.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:iron_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_3_upgrade.json new file mode 100644 index 0000000000..d5bde58ad7 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_3_upgrade.json @@ -0,0 +1,39 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:iron_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:iron_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_4_upgrade.json new file mode 100644 index 0000000000..ee251a664c --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_seeker_infuse_4_upgrade.json @@ -0,0 +1,48 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:iron_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:iron_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:iron_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_1_upgrade.json new file mode 100644 index 0000000000..bb0eeedd8d --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_1_upgrade.json @@ -0,0 +1,16 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_2_upgrade.json new file mode 100644 index 0000000000..4ca8d29340 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_2_upgrade.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:iron_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_3_upgrade.json new file mode 100644 index 0000000000..55f14b0bd9 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_3_upgrade.json @@ -0,0 +1,39 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:iron_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:iron_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_4_upgrade.json new file mode 100644 index 0000000000..ded3f7da11 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/iron_heart_striker_infuse_4_upgrade.json @@ -0,0 +1,48 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:iron_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:iron_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:iron_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:iron_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_1_upgrade.json new file mode 100644 index 0000000000..999d9291aa --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_1_upgrade.json @@ -0,0 +1,16 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_seeker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_2_upgrade.json new file mode 100644 index 0000000000..598f19d6a0 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_2_upgrade.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:netherite_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_3_upgrade.json new file mode 100644 index 0000000000..9106a26a2b --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_3_upgrade.json @@ -0,0 +1,39 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:netherite_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:netherite_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_4_upgrade.json new file mode 100644 index 0000000000..a77e78d516 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_infuse_4_upgrade.json @@ -0,0 +1,48 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:netherite_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:netherite_heart_seeker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:netherite_heart_seeker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_0_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_0_smithing.json new file mode 100644 index 0000000000..0407e73455 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_0_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_1_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_1_smithing.json new file mode 100644 index 0000000000..bfe85a310f --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_1_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_2_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_2_smithing.json new file mode 100644 index 0000000000..9e5188326c --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_2_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_3_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_3_smithing.json new file mode 100644 index 0000000000..878ff2be62 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_3_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_4_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_4_smithing.json new file mode 100644 index 0000000000..c9ae030b5f --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_seeker_purity_4_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:diamond_heart_seeker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_seeker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_1_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_1_upgrade.json new file mode 100644 index 0000000000..d547adc34d --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_1_upgrade.json @@ -0,0 +1,16 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_striker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_2_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_2_upgrade.json new file mode 100644 index 0000000000..657f6bb096 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_2_upgrade.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:netherite_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_3_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_3_upgrade.json new file mode 100644 index 0000000000..91bb03bc2f --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_3_upgrade.json @@ -0,0 +1,39 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:netherite_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:netherite_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_4_upgrade.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_4_upgrade.json new file mode 100644 index 0000000000..15e0433cdb --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_infuse_4_upgrade.json @@ -0,0 +1,48 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": { + "neoforge:ingredient_type": "neoforge:compound", + "children": [ + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:netherite_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:netherite_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:netherite_heart_striker" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:netherite_heart_striker" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_0_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_0_smithing.json new file mode 100644 index 0000000000..9241f6e9a4 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_0_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_1_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_1_smithing.json new file mode 100644 index 0000000000..ac11806e27 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_1_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_2_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_2_smithing.json new file mode 100644 index 0000000000..ba44bdf553 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_2_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_3_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_3_smithing.json new file mode 100644 index 0000000000..d52ee2a987 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_3_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_4_smithing.json b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_4_smithing.json new file mode 100644 index 0000000000..08e093d824 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_heart_striker_purity_4_smithing.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_netherite_ingot" + }, + "base": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:diamond_heart_striker" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:netherite_heart_striker" + }, + "template": "minecraft:netherite_upgrade_smithing_template" +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_0.json b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_0.json new file mode 100644 index 0000000000..3ae4ae72ce --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_0.json @@ -0,0 +1,50 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + } + ], + "result": { + "count": 1, + "id": "vampirism:blood_infused_netherite_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_1.json b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_1.json new file mode 100644 index 0000000000..a2aa10f5bd --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_1.json @@ -0,0 +1,55 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_netherite_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_2.json b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_2.json new file mode 100644 index 0000000000..0e0beb686d --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_2.json @@ -0,0 +1,55 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_netherite_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_3.json b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_3.json new file mode 100644 index 0000000000..641b05b506 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_3.json @@ -0,0 +1,55 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_netherite_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_4.json b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_4.json new file mode 100644 index 0000000000..743b29a279 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/netherite_scrap_pure_4.json @@ -0,0 +1,55 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + "minecraft:netherite_scrap", + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + }, + { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_gold_ingot" + } + ], + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_netherite_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0.json new file mode 100644 index 0000000000..a878422402 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0.json @@ -0,0 +1,24 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_0", + "ingredient2": "vampirism:pure_blood_0", + "ingredient3": "vampirism:pure_blood_0", + "ingredient4": "vampirism:pure_blood_0", + "item": "minecraft:raw_gold", + "result": { + "count": 1, + "id": "vampirism:blood_infused_raw_gold" + }, + "result1": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + }, + "result2": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + }, + "result3": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_blasting.json new file mode 100644 index 0000000000..b59fcef845 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_blasting.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_smelting.json new file mode 100644 index 0000000000..7711263aaf --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_0_smelting.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1.json new file mode 100644 index 0000000000..92ab489c18 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 300, + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": "minecraft:raw_gold", + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_gold" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_0" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_0" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_0" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_blasting.json new file mode 100644 index 0000000000..9b632540b6 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 150, + "experience": 2.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_smelting.json new file mode 100644 index 0000000000..e70fa453e5 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_1_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 300, + "experience": 2.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2.json new file mode 100644 index 0000000000..c8aa514ebd --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 400, + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": "minecraft:raw_gold", + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_gold" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_1" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_1" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_1" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_blasting.json new file mode 100644 index 0000000000..91c599df42 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 200, + "experience": 4.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_smelting.json new file mode 100644 index 0000000000..7262237698 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_2_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 400, + "experience": 4.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3.json new file mode 100644 index 0000000000..b235f8beec --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 500, + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": "minecraft:raw_gold", + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_gold" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_2" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_2" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_2" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_blasting.json new file mode 100644 index 0000000000..bdf51f6d95 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 250, + "experience": 8.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_smelting.json new file mode 100644 index 0000000000..2f3ab7ecec --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_3_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 500, + "experience": 8.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4.json new file mode 100644 index 0000000000..d3f05594b0 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 600, + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": "minecraft:raw_gold", + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_gold" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_3" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_3" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_3" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_blasting.json new file mode 100644 index 0000000000..91ba2e9f79 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 300, + "experience": 16.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_smelting.json new file mode 100644 index 0000000000..2c3e5a622e --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_gold_pure_4_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 600, + "experience": 16.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_raw_gold" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0.json new file mode 100644 index 0000000000..35d8f2ad5e --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0.json @@ -0,0 +1,24 @@ +{ + "type": "vampirism:infuser", + "ingredient1": "vampirism:pure_blood_0", + "ingredient2": "vampirism:pure_blood_0", + "ingredient3": "vampirism:pure_blood_0", + "ingredient4": "vampirism:pure_blood_0", + "item": "minecraft:raw_iron", + "result": { + "count": 1, + "id": "vampirism:blood_infused_raw_iron" + }, + "result1": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + }, + "result2": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + }, + "result3": { + "count": 1, + "id": "vampirism:vampire_blood_bottle" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_blasting.json new file mode 100644 index 0000000000..774374f345 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_blasting.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_smelting.json new file mode 100644 index 0000000000..662094da21 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_0_smelting.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 0 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1.json new file mode 100644 index 0000000000..c41f1b0f19 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 300, + "ingredient1": "vampirism:pure_blood_1", + "ingredient2": "vampirism:pure_blood_1", + "ingredient3": "vampirism:pure_blood_1", + "ingredient4": "vampirism:pure_blood_1", + "item": "minecraft:raw_iron", + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_iron" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_0" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_0" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_0" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_blasting.json new file mode 100644 index 0000000000..73af049b15 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 150, + "experience": 2.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_smelting.json new file mode 100644 index 0000000000..20f4a42669 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_1_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 300, + "experience": 2.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 1 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2.json new file mode 100644 index 0000000000..099019ef8b --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 400, + "ingredient1": "vampirism:pure_blood_2", + "ingredient2": "vampirism:pure_blood_2", + "ingredient3": "vampirism:pure_blood_2", + "ingredient4": "vampirism:pure_blood_2", + "item": "minecraft:raw_iron", + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_iron" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_1" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_1" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_1" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_blasting.json new file mode 100644 index 0000000000..b3f21865d4 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 200, + "experience": 4.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_smelting.json new file mode 100644 index 0000000000..1711bac02e --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_2_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 400, + "experience": 4.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 2 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3.json new file mode 100644 index 0000000000..ca2196ccc0 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 500, + "ingredient1": "vampirism:pure_blood_3", + "ingredient2": "vampirism:pure_blood_3", + "ingredient3": "vampirism:pure_blood_3", + "ingredient4": "vampirism:pure_blood_3", + "item": "minecraft:raw_iron", + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_iron" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_2" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_2" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_2" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_blasting.json new file mode 100644 index 0000000000..0158ed60ed --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 250, + "experience": 8.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_smelting.json new file mode 100644 index 0000000000..fece58a828 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_3_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 500, + "experience": 8.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 3 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4.json new file mode 100644 index 0000000000..95a40ad2b1 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4.json @@ -0,0 +1,30 @@ +{ + "type": "vampirism:infuser", + "cookingtime": 600, + "ingredient1": "vampirism:pure_blood_4", + "ingredient2": "vampirism:pure_blood_4", + "ingredient3": "vampirism:pure_blood_4", + "ingredient4": "vampirism:pure_blood_4", + "item": "minecraft:raw_iron", + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_raw_iron" + }, + "result1": { + "count": 1, + "id": "vampirism:pure_blood_3" + }, + "result2": { + "count": 1, + "id": "vampirism:pure_blood_3" + }, + "result3": { + "count": 1, + "id": "vampirism:pure_blood_3" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_blasting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_blasting.json new file mode 100644 index 0000000000..eaa703ffac --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_blasting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 300, + "experience": 16.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_smelting.json b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_smelting.json new file mode 100644 index 0000000000..b87b722192 --- /dev/null +++ b/src/generated/resources/data/vampirism/recipe/raw_iron_pure_4_smelting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 600, + "experience": 16.0, + "ingredient": { + "neoforge:ingredient_type": "neoforge:components", + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "items": "vampirism:blood_infused_raw_iron" + }, + "result": { + "components": { + "vampirism:pure_level": { + "level": 4 + } + }, + "count": 1, + "id": "vampirism:blood_infused_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced.json deleted file mode 100644 index 6b47bc90af..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_enhanced_iron_ingot", - "Y": "#c:rods/wooden" - }, - "pattern": [ - "X", - "X", - "Y" - ], - "result": { - "count": 1, - "id": "vampirism:heart_seeker_enhanced" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced_repair.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced_repair.json deleted file mode 100644 index c2853842ef..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_enhanced_repair.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_enhanced_iron_ingot", - "Y": "vampirism:heart_seeker_enhanced" - }, - "pattern": [ - " X ", - "XYX" - ], - "result": { - "count": 1, - "id": "vampirism:heart_seeker_enhanced" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal.json deleted file mode 100644 index fff2abf560..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_iron_ingot", - "Y": "#c:rods/wooden" - }, - "pattern": [ - "X", - "X", - "Y" - ], - "result": { - "count": 1, - "id": "vampirism:heart_seeker_normal" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal_repair.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal_repair.json deleted file mode 100644 index c4961d9bde..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_seeker_normal_repair.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_iron_ingot", - "Y": "vampirism:heart_seeker_normal" - }, - "pattern": [ - " X ", - "XYX" - ], - "result": { - "count": 1, - "id": "vampirism:heart_seeker_normal" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced.json deleted file mode 100644 index 80860bd96c..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_enhanced_iron_ingot", - "Y": "#c:rods/wooden" - }, - "pattern": [ - "XX", - "XX", - "YY" - ], - "result": { - "count": 1, - "id": "vampirism:heart_striker_enhanced" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced_repair.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced_repair.json deleted file mode 100644 index 98a2793e92..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_enhanced_repair.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_enhanced_iron_ingot", - "Y": "vampirism:heart_striker_enhanced" - }, - "pattern": [ - "XXX", - "XYX" - ], - "result": { - "count": 1, - "id": "vampirism:heart_striker_enhanced" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal.json deleted file mode 100644 index f1338a6a3b..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_iron_ingot", - "Y": "#c:rods/wooden" - }, - "pattern": [ - "XX", - "XX", - "YY" - ], - "result": { - "count": 1, - "id": "vampirism:heart_striker_normal" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal_repair.json b/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal_repair.json deleted file mode 100644 index f43571ffc7..0000000000 --- a/src/generated/resources/data/vampirism/recipe/vampire/heart_striker_normal_repair.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "equipment", - "key": { - "X": "vampirism:blood_infused_iron_ingot", - "Y": "vampirism:heart_striker_normal" - }, - "pattern": [ - "XXX", - "XYX" - ], - "result": { - "count": 1, - "id": "vampirism:heart_striker_normal" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/tags/item/swords/heart_seeker.json b/src/generated/resources/data/vampirism/tags/item/swords/heart_seeker.json index ae0a0d5bb6..90d3be61d1 100644 --- a/src/generated/resources/data/vampirism/tags/item/swords/heart_seeker.json +++ b/src/generated/resources/data/vampirism/tags/item/swords/heart_seeker.json @@ -1,7 +1,7 @@ { "values": [ - "vampirism:heart_seeker_normal", - "vampirism:heart_seeker_enhanced", - "vampirism:heart_seeker_ultimate" + "vampirism:iron_heart_seeker", + "vampirism:diamond_heart_seeker", + "vampirism:netherite_heart_seeker" ] } \ No newline at end of file diff --git a/src/generated/resources/data/vampirism/tags/item/swords/heart_striker.json b/src/generated/resources/data/vampirism/tags/item/swords/heart_striker.json index ee94c16daa..0c07d458be 100644 --- a/src/generated/resources/data/vampirism/tags/item/swords/heart_striker.json +++ b/src/generated/resources/data/vampirism/tags/item/swords/heart_striker.json @@ -1,7 +1,7 @@ { "values": [ - "vampirism:heart_striker_normal", - "vampirism:heart_striker_enhanced", - "vampirism:heart_striker_ultimate" + "vampirism:iron_heart_striker", + "vampirism:diamond_heart_striker", + "vampirism:netherite_heart_striker" ] } \ No newline at end of file diff --git a/src/lib/java/de/teamlapen/lib/lib/client/gui/GuiRenderer.java b/src/lib/java/de/teamlapen/lib/lib/client/gui/GuiRenderer.java index e6aa9deee9..5e954b01f0 100644 --- a/src/lib/java/de/teamlapen/lib/lib/client/gui/GuiRenderer.java +++ b/src/lib/java/de/teamlapen/lib/lib/client/gui/GuiRenderer.java @@ -28,11 +28,11 @@ public static void blitWithOffset(GuiGraphics graphics, ResourceLocation texture graphics.blit(RenderType::guiTextured, texture, x, y, xOffset, yOffset, width, height, imageWidth, imageHeight); } - public static void blitTiled(GuiGraphics graphics, ResourceLocation texture, int x, int y, int width, int height, int color) { + public static void blitSpriteTiled(GuiGraphics graphics, ResourceLocation texture, int x, int y, int width, int height, int color) { graphics.blitSprite(RenderType::guiTextured, texture, x, y, width, height, color); } - public static void blitTiledOffset(GuiGraphics graphics, ResourceLocation texture, int x, int y, int width, int height, int xOffset, int yOffset, int color) { + public static void blitSpriteTiledOffset(GuiGraphics graphics, ResourceLocation texture, int x, int y, int width, int height, int xOffset, int yOffset, int color) { x += xOffset; y += yOffset; width -= xOffset; diff --git a/src/main/java/de/teamlapen/vampirism/VampirismMod.java b/src/main/java/de/teamlapen/vampirism/VampirismMod.java index 0735d5c95a..841a1fcd20 100755 --- a/src/main/java/de/teamlapen/vampirism/VampirismMod.java +++ b/src/main/java/de/teamlapen/vampirism/VampirismMod.java @@ -56,6 +56,7 @@ import net.neoforged.neoforge.capabilities.ICapabilityProvider; import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.common.NeoForgeMod; import net.neoforged.neoforge.event.AddReloadListenerEvent; import net.neoforged.neoforge.event.OnDatapackSyncEvent; import net.neoforged.neoforge.event.server.ServerAboutToStartEvent; @@ -116,6 +117,7 @@ public VampirismMod(IEventBus modEventBus, ModContainer modContainer) { this.registryManager.setupRegistries(); this.registryManager.registerModEventHandler(); this.registryManager.registerForgeEventHandler(); + NeoForgeMod.enableMergedAttributeTooltips(); } public void onAddReloadListenerEvent(@NotNull AddReloadListenerEvent event) { diff --git a/src/main/java/de/teamlapen/vampirism/blockentity/AltarInfusionBlockEntity.java b/src/main/java/de/teamlapen/vampirism/blockentity/AltarInfusionBlockEntity.java index a450eb408c..e58921965c 100644 --- a/src/main/java/de/teamlapen/vampirism/blockentity/AltarInfusionBlockEntity.java +++ b/src/main/java/de/teamlapen/vampirism/blockentity/AltarInfusionBlockEntity.java @@ -331,7 +331,7 @@ private boolean checkItemRequirements() { ItemStack missing = VampireLeveling.getInfusionRequirement(newLevel).map(req -> InventoryHelper.checkItems(this, new Item[] { PureBloodItem.getBloodItemForLevel(req.pureBloodLevel()), ModItems.HUMAN_HEART.get(), ModItems.VAMPIRE_BOOK.get()}, new int[] {req.pureBloodQuantity(), req.humanHeartQuantity(), req.vampireBookQuantity()}, - (supplied, required) -> supplied.equals(required) || (supplied instanceof PureBloodItem suppliedBlood && required instanceof PureBloodItem requiredBlood && suppliedBlood.getLevel() >= requiredBlood.getLevel()))).orElse(ItemStack.EMPTY); + (supplied, required) -> supplied.equals(required) || (supplied instanceof PureBloodItem suppliedBlood && required instanceof PureBloodItem requiredBlood && suppliedBlood.getLevel(suppliedBlood.getDefaultInstance()) >= requiredBlood.getLevel(requiredBlood.getDefaultInstance())))).orElse(ItemStack.EMPTY); return missing.isEmpty(); } diff --git a/src/main/java/de/teamlapen/vampirism/blockentity/InfuserBlockEntity.java b/src/main/java/de/teamlapen/vampirism/blockentity/InfuserBlockEntity.java new file mode 100644 index 0000000000..31300c4888 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/blockentity/InfuserBlockEntity.java @@ -0,0 +1,273 @@ +package de.teamlapen.vampirism.blockentity; + +import de.teamlapen.vampirism.blockentity.slots.InfuserSlots; +import de.teamlapen.vampirism.blocks.BloodInfuserBlock; +import de.teamlapen.vampirism.core.ModRecipes; +import de.teamlapen.vampirism.core.ModTiles; +import de.teamlapen.vampirism.inventory.InfuserMenu; +import de.teamlapen.vampirism.recipes.InfuserRecipe; +import it.unimi.dsi.fastutil.Pair; +import net.minecraft.core.*; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.ContainerHelper; +import net.minecraft.world.WorldlyContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.StackedItemContents; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ContainerData; +import net.minecraft.world.inventory.StackedContentsCompatible; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.RecipeManager; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BaseContainerBlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.stream.Stream; + +public class InfuserBlockEntity extends BaseContainerBlockEntity implements WorldlyContainer, StackedContentsCompatible, InfuserSlots { + + private static final int[] SLOTS_FOR_UP = new int[]{SLOT_INGREDIENT_1, SLOT_INGREDIENT_2, SLOT_INGREDIENT_3, SLOT_INGREDIENT_4, SLOT_INPUT}; + private static final int[] SLOTS_FOR_DOWN = new int[]{SLOT_RESULT, SLOT_OUTPUT_1, SLOT_OUTPUT_2, SLOT_OUTPUT_3}; + public static final int COOKING_TIMER = 0; + public static final int TOTAL_COOKING_TIMER = 1; + + + protected int cookingTimer; + protected int totalCookingTime; + protected NonNullList items = NonNullList.withSize(9, ItemStack.EMPTY); + protected final RecipeManager.CachedCheck quickCheck; + protected final ContainerData dataAccess = new ContainerData() { + @Override + public int get(int index) { + return switch (index) { + case COOKING_TIMER -> InfuserBlockEntity.this.cookingTimer; + case TOTAL_COOKING_TIMER -> InfuserBlockEntity.this.totalCookingTime; + default -> 0; + }; + } + + @Override + public void set(int index, int value) { + switch (index) { + case COOKING_TIMER -> InfuserBlockEntity.this.cookingTimer = value; + case TOTAL_COOKING_TIMER -> InfuserBlockEntity.this.totalCookingTime = value; + } + } + + @Override + public int getCount() { + return 2; + } + }; + + public InfuserBlockEntity(BlockPos pos, BlockState blockState) { + super(ModTiles.INFUSER.get(), pos, blockState); + this.quickCheck = RecipeManager.createCheck(ModRecipes.INFUSER_TYPE.get()); + } + + @Override + protected @NotNull Component getDefaultName() { + return Component.translatable("block.vampirism.blood_infuser"); + } + + @Override + protected @NotNull NonNullList getItems() { + return this.items; + } + + @Override + protected void setItems(@NotNull NonNullList items) { + this.items = items; + } + + @Override + protected @NotNull AbstractContainerMenu createMenu(int containerId, @NotNull Inventory inventory) { + return new InfuserMenu(containerId, inventory, this, this.dataAccess); + } + + @Override + public int getContainerSize() { + return this.items.size(); + } + + @Override + protected void loadAdditional(@NotNull CompoundTag tag, HolderLookup.@NotNull Provider registries) { + super.loadAdditional(tag, registries); + this.items = NonNullList.withSize(getContainerSize(), ItemStack.EMPTY); + ContainerHelper.loadAllItems(tag, this.items, registries); + this.cookingTimer = tag.getInt("cooking_time_spend"); + this.totalCookingTime = tag.getInt("cooking_total_time"); + } + + @Override + protected void saveAdditional(@NotNull CompoundTag tag, HolderLookup.@NotNull Provider registries) { + super.saveAdditional(tag, registries); + tag.putInt("cooking_time_spend", this.cookingTimer); + tag.putInt("cooking_total_time", this.totalCookingTime); + ContainerHelper.saveAllItems(tag, this.items, registries); + } + + public static void serverTick(Level level, BlockPos blockPos, BlockState blockState, InfuserBlockEntity blockEntity) { + boolean isActive = blockEntity.cookingTimer > 0; + boolean changed = false; + var ingredient1 = blockEntity.getItem(SLOT_INGREDIENT_1); + var ingredient2 = blockEntity.getItem(SLOT_INGREDIENT_2); + var ingredient3 = blockEntity.getItem(SLOT_INGREDIENT_3); + var ingredient4 = blockEntity.getItem(SLOT_INGREDIENT_4); + var input = blockEntity.getItem(SLOT_INPUT); + + if ((!ingredient1.isEmpty() || !ingredient2.isEmpty() || !ingredient3.isEmpty() || !ingredient4.isEmpty()) && !input.isEmpty()) { + var recipeInput = new InfuserRecipe.InfuserRecipeInput(ingredient1, ingredient2, ingredient3, ingredient4, input); + var recipeHolder = blockEntity.quickCheck.getRecipeFor(recipeInput, (ServerLevel) level).orElse(null); + + if (canBurn(level.registryAccess(), recipeHolder, recipeInput, blockEntity.items)) { + blockEntity.cookingTimer++; + if (blockEntity.cookingTimer == blockEntity.totalCookingTime) { + blockEntity.cookingTimer = 0; + blockEntity.totalCookingTime = getTotalCookTime((ServerLevel) level, blockEntity); + if (burn(level.registryAccess(), recipeHolder, recipeInput, blockEntity.items)) { + + } + changed = true; + } + } else { + blockEntity.cookingTimer = 0; + } + } else if (blockEntity.cookingTimer > 0) { + blockEntity.cookingTimer = 0; + } + + if (isActive != blockEntity.cookingTimer > 0) { + changed = true; + blockState = blockState.setValue(BloodInfuserBlock.IS_ACTIVE, blockEntity.cookingTimer > 0); + level.setBlock(blockPos, blockState, 3); + } + + if (changed) { + setChanged(level, blockPos, blockState); + } + } + + private static boolean canBurn(RegistryAccess registryAccess, @Nullable RecipeHolder recipeHolder, InfuserRecipe.InfuserRecipeInput recipeInput, NonNullList items) { + if (recipeHolder == null) { + return false; + } + ItemStack result = recipeHolder.value().assemble(recipeInput, registryAccess); + if (result.isEmpty()) { + return false; + } + + return Stream.of(Pair.of(SLOT_OUTPUT_1, recipeHolder.value().result1()), Pair.of(SLOT_OUTPUT_2, recipeHolder.value().result2()), Pair.of(SLOT_OUTPUT_3, recipeHolder.value().result3()), Pair.of(SLOT_RESULT, result)).noneMatch(pair -> { + if (!items.get(pair.first()).isEmpty() && !pair.right().isEmpty()) { + if (!ItemStack.isSameItemSameComponents(items.get(pair.first()), pair.right())) { + return true; + } else { + return items.get(pair.first()).getCount() + pair.right().getCount() > items.get(pair.first()).getMaxStackSize(); + } + } + return false; + }); + } + + private static boolean burn(RegistryAccess registryAccess, @Nullable RecipeHolder recipeHolder, InfuserRecipe.InfuserRecipeInput recipeInput, NonNullList items) { + if (recipeHolder != null && canBurn(registryAccess, recipeHolder, recipeInput, items)) { + ItemStack result = recipeHolder.value().assemble(recipeInput, registryAccess); + + ItemStack resultSlotItem = items.get(SLOT_RESULT); + if (resultSlotItem.isEmpty()) { + items.set(SLOT_RESULT, result); + } else if (ItemStack.isSameItemSameComponents(resultSlotItem, result) && resultSlotItem.getCount() + result.getCount() <= resultSlotItem.getMaxStackSize()) { + resultSlotItem.grow(result.getCount()); + } + + ItemStack output1SlotItem = items.get(SLOT_OUTPUT_1); + ItemStack output1NewItem = recipeHolder.value().result1().copy(); + if (output1SlotItem.isEmpty()) { + items.set(SLOT_OUTPUT_1, output1NewItem); + } else if (ItemStack.isSameItemSameComponents(output1SlotItem, output1NewItem) && output1SlotItem.getCount() + output1NewItem.getCount() <= output1SlotItem.getMaxStackSize()) { + output1SlotItem.grow(output1NewItem.getCount()); + } + + ItemStack output2SlotItem = items.get(SLOT_OUTPUT_2); + ItemStack output2NewItem = recipeHolder.value().result2().copy(); + if (output2SlotItem.isEmpty()) { + items.set(SLOT_OUTPUT_2, output2NewItem); + } else if (ItemStack.isSameItemSameComponents(output2SlotItem, output2NewItem) && output2SlotItem.getCount() + output2NewItem.getCount() <= output2SlotItem.getMaxStackSize()) { + output2SlotItem.grow(output2NewItem.getCount()); + } + + ItemStack output3SlotItem = items.get(SLOT_OUTPUT_3); + ItemStack output3NewItem = recipeHolder.value().result3().copy(); + if (output3SlotItem.isEmpty()) { + items.set(SLOT_OUTPUT_3, output3NewItem); + } else if (ItemStack.isSameItemSameComponents(output3SlotItem, output3NewItem) && output3SlotItem.getCount() + output3NewItem.getCount() <= output3SlotItem.getMaxStackSize()) { + output3SlotItem.grow(output3NewItem.getCount()); + } + + items.get(SLOT_INPUT).shrink(1); + items.get(SLOT_INGREDIENT_1).shrink(1); + items.get(SLOT_INGREDIENT_2).shrink(1); + items.get(SLOT_INGREDIENT_3).shrink(1); + items.get(SLOT_INGREDIENT_4).shrink(1); + return true; + } + return false; + } + + private static int getTotalCookTime(ServerLevel level, InfuserBlockEntity blockEntity) { + var input = new InfuserRecipe.InfuserRecipeInput(blockEntity.getItem(SLOT_INGREDIENT_1), blockEntity.getItem(SLOT_INGREDIENT_2), blockEntity.getItem(SLOT_INGREDIENT_3), blockEntity.getItem(SLOT_INGREDIENT_4), blockEntity.getItem(SLOT_INPUT)); + return blockEntity.quickCheck.getRecipeFor(input, level).map(x -> x.value().cookingTime()).orElse(200); + } + + @Override + public int @NotNull [] getSlotsForFace(Direction side) { + return switch (side) { + case UP -> SLOTS_FOR_UP; + case DOWN -> SLOTS_FOR_DOWN; + default -> new int[0]; + }; + } + + @Override + public boolean canPlaceItemThroughFace(int index, @NotNull ItemStack itemStack, @Nullable Direction direction) { + return this.canPlaceItem(index, itemStack); + } + + @Override + public boolean canTakeItemThroughFace(int index, @NotNull ItemStack stack, @NotNull Direction direction) { + return true; + } + + @Override + public void setItem(int slot, ItemStack stack) { + ItemStack itemstack = this.items.get(slot); + boolean flag = !stack.isEmpty() && ItemStack.isSameItemSameComponents(itemstack, stack); + this.items.set(slot, stack); + stack.limitSize(this.getMaxStackSize(stack)); + if (slot == 0 && !flag && this.level instanceof ServerLevel serverlevel) { + this.totalCookingTime = getTotalCookTime(serverlevel, this); + this.cookingTimer = 0; + this.setChanged(); + } + } + + @Override + public boolean canPlaceItem(int slot, @NotNull ItemStack stack) { + return switch (slot) { + case SLOT_INGREDIENT_1, SLOT_INGREDIENT_2, SLOT_INGREDIENT_3, SLOT_INGREDIENT_4, SLOT_INPUT -> true; + default -> false; + }; + } + + @Override + public void fillStackedContents(@NotNull StackedItemContents itemContents) { + for (ItemStack item : this.items) { + itemContents.accountStack(item); + } + } +} diff --git a/src/main/java/de/teamlapen/vampirism/blockentity/slots/InfuserSlots.java b/src/main/java/de/teamlapen/vampirism/blockentity/slots/InfuserSlots.java new file mode 100644 index 0000000000..a7b9c2eca6 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/blockentity/slots/InfuserSlots.java @@ -0,0 +1,14 @@ +package de.teamlapen.vampirism.blockentity.slots; + +public interface InfuserSlots { + int SLOT_INGREDIENT_1 = 0; + int SLOT_INGREDIENT_2 = 1; + int SLOT_INGREDIENT_3 = 2; + int SLOT_INGREDIENT_4 = 3; + int SLOT_INPUT = 4; + int SLOT_OUTPUT_1 = 5; + int SLOT_OUTPUT_2 = 6; + int SLOT_OUTPUT_3 = 7; + int SLOT_RESULT = 8; + +} diff --git a/src/main/java/de/teamlapen/vampirism/blocks/BloodInfuserBlock.java b/src/main/java/de/teamlapen/vampirism/blocks/BloodInfuserBlock.java new file mode 100644 index 0000000000..9042762134 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/blocks/BloodInfuserBlock.java @@ -0,0 +1,75 @@ +package de.teamlapen.vampirism.blocks; + +import com.mojang.serialization.MapCodec; +import de.teamlapen.vampirism.blockentity.InfuserBlockEntity; +import de.teamlapen.vampirism.core.ModTiles; +import de.teamlapen.vampirism.util.BlockVoxelshapes; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class BloodInfuserBlock extends BaseEntityBlock { + + public static final MapCodec CODEC = simpleCodec(BloodInfuserBlock::new); + public static final BooleanProperty IS_ACTIVE = BooleanProperty.create("active"); + + public BloodInfuserBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(IS_ACTIVE, false)); + } + + @Override + protected @NotNull MapCodec codec() { + return CODEC; + } + + @Override + public @Nullable BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return new InfuserBlockEntity(pos, state); + } + + public BlockEntityTicker getTicker(Level level, @NotNull BlockState state, @NotNull BlockEntityType type){ + return level.isClientSide() ? null : createTickerHelper(type, ModTiles.INFUSER.get(), InfuserBlockEntity::serverTick); + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + if (!level.isClientSide) { + openContainer(level, pos, player); + } + + return InteractionResult.SUCCESS; + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return BlockVoxelshapes.BLOOD_INFUSER; + } + + protected void openContainer(Level level, BlockPos pos, Player player) { + level.getBlockEntity(pos, ModTiles.INFUSER.get()).ifPresent(blockEntity -> { + player.openMenu(blockEntity); + }); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(IS_ACTIVE); + } +} diff --git a/src/main/java/de/teamlapen/vampirism/blocks/PureBloodBlock.java b/src/main/java/de/teamlapen/vampirism/blocks/PureBloodBlock.java new file mode 100644 index 0000000000..2893ab4a3a --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/blocks/PureBloodBlock.java @@ -0,0 +1,13 @@ +package de.teamlapen.vampirism.blocks; + +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.IntegerProperty; + +public class PureBloodBlock extends Block { + + public static final IntegerProperty PURITY = IntegerProperty.create("purity", 0, 6); + + public PureBloodBlock(Properties properties) { + super(properties); + } +} diff --git a/src/main/java/de/teamlapen/vampirism/client/core/ModScreens.java b/src/main/java/de/teamlapen/vampirism/client/core/ModScreens.java index 748737bf57..6ba6d8ca9e 100644 --- a/src/main/java/de/teamlapen/vampirism/client/core/ModScreens.java +++ b/src/main/java/de/teamlapen/vampirism/client/core/ModScreens.java @@ -34,6 +34,7 @@ public static void registerScreens(RegisterMenuScreensEvent event) { event.register(ModMenus.REVERT_BACK.get(), InjectionChairRevertBackScreen::new); event.register(ModMenus.GARLIC_DIFFUSER.get(), GarlicDiffuserScreen::new); event.register(ModMenus.FOG_DIFFUSER.get(), FogDiffuserScreen::new); + event.register(ModMenus.INFUSER_MENU.get(), InfuserScreen::new); } static void registerScreenOverlays(@NotNull RegisterGuiLayersEvent event) { diff --git a/src/main/java/de/teamlapen/vampirism/client/gui/overlay/VampirismHUDOverlay.java b/src/main/java/de/teamlapen/vampirism/client/gui/overlay/VampirismHUDOverlay.java index 894bd91520..ed81d75519 100644 --- a/src/main/java/de/teamlapen/vampirism/client/gui/overlay/VampirismHUDOverlay.java +++ b/src/main/java/de/teamlapen/vampirism/client/gui/overlay/VampirismHUDOverlay.java @@ -264,7 +264,7 @@ private void renderBloodFangs(@NotNull GuiGraphics graphics, int width, int heig int top = height / 2 - 4; graphics.blitSprite(RenderType::guiTextured, FANG_SPRITE, left, top, 16, 8); int percHeight = (int) (10f * (1f-perc)); - GuiRenderer.blitTiledOffset(graphics, FANG_SPRITE, left, top, 16, 8, 0, percHeight, color); + GuiRenderer.blitSpriteTiledOffset(graphics, FANG_SPRITE, left, top, 16, 8, 0, percHeight, color); } private void renderStakeInstantKill(@NotNull GuiGraphics graphics, int width, int height) { diff --git a/src/main/java/de/teamlapen/vampirism/client/gui/screens/AltarInfusionScreen.java b/src/main/java/de/teamlapen/vampirism/client/gui/screens/AltarInfusionScreen.java index 9375e2dab9..9fdd0f7312 100644 --- a/src/main/java/de/teamlapen/vampirism/client/gui/screens/AltarInfusionScreen.java +++ b/src/main/java/de/teamlapen/vampirism/client/gui/screens/AltarInfusionScreen.java @@ -12,6 +12,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; @@ -61,7 +62,7 @@ private void renderOnBoardingTooltips(GuiGraphics graphics, int pMouseX, int pMo }).orElse(0); if (missing > 0) { optional = Optional.of(Component.translatable("text.vampirism.altar_infusion.ritual_missing_items", missing, (switch (this.hoveredSlot.index) { - case 0 -> req.map(VampireLeveling.AltarInfusionRequirements::pureBloodLevel).map(PureBloodItem::getBloodItemForLevel).map(PureBloodItem::getCustomName).orElseGet(Component::empty); + case 0 -> req.map(VampireLeveling.AltarInfusionRequirements::pureBloodLevel).map(PureBloodItem::getBloodItemForLevel).map(s -> s.getCustomName(s.getDefaultInstance())).orElseGet(Component::empty); case 1 -> ModItems.HUMAN_HEART.get().getDefaultInstance().getHoverName(); case 2 -> ModItems.VAMPIRE_BOOK.get().getDefaultInstance().getHoverName(); default -> null; diff --git a/src/main/java/de/teamlapen/vampirism/client/gui/screens/HunterTableScreen.java b/src/main/java/de/teamlapen/vampirism/client/gui/screens/HunterTableScreen.java index ca8731561e..5fdfc05297 100644 --- a/src/main/java/de/teamlapen/vampirism/client/gui/screens/HunterTableScreen.java +++ b/src/main/java/de/teamlapen/vampirism/client/gui/screens/HunterTableScreen.java @@ -70,7 +70,7 @@ private void renderOnBoardingTooltips(GuiGraphics graphics, int pMouseX, int pMo optional = Optional.of(Component.translatable("text.vampirism.hunter_table.ritual_missing_items", missing, switch (this.hoveredSlot.index) { case 0 -> Items.BOOK.getDefaultInstance().getHoverName(); case 1 -> ModItems.VAMPIRE_FANG.get().getDefaultInstance().getHoverName(); - case 2 -> req.map(HunterLeveling.HunterTableRequirement::pureBloodLevel).map(PureBloodItem::getBloodItemForLevel).map(PureBloodItem::getCustomName).orElseGet(Component::empty); + case 2 -> req.map(HunterLeveling.HunterTableRequirement::pureBloodLevel).map(PureBloodItem::getBloodItemForLevel).map(x -> x.getCustomName(x.getDefaultInstance())).orElseGet(Component::empty); case 3 -> ModItems.VAMPIRE_BOOK.get().getDefaultInstance().getHoverName(); default -> throw new IllegalStateException("Unexpected value: " + this.hoveredSlot.index); })); diff --git a/src/main/java/de/teamlapen/vampirism/client/gui/screens/InfuserScreen.java b/src/main/java/de/teamlapen/vampirism/client/gui/screens/InfuserScreen.java new file mode 100644 index 0000000000..1699318f0c --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/client/gui/screens/InfuserScreen.java @@ -0,0 +1,39 @@ +package de.teamlapen.vampirism.client.gui.screens; + +import de.teamlapen.lib.lib.client.gui.GuiRenderer; +import de.teamlapen.vampirism.api.util.VResourceLocation; +import de.teamlapen.vampirism.inventory.InfuserMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.player.Inventory; +import org.jetbrains.annotations.NotNull; + +public class InfuserScreen extends AbstractContainerScreen { + + private static final ResourceLocation BACKGROUND = VResourceLocation.mod("textures/gui/container/infuser.png"); + private static final ResourceLocation BURN_PROGRESS_SPRITE = ResourceLocation.withDefaultNamespace("container/furnace/burn_progress"); + + public InfuserScreen(InfuserMenu menu, Inventory playerInventory, Component title) { + super(menu, playerInventory, title); + this.imageHeight = 181; + this.inventoryLabelY = this.imageHeight - 94; + } + + @Override + public void render(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + @Override + protected void renderBg(@NotNull GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) { + GuiRenderer.blit(guiGraphics, BACKGROUND, this.leftPos, this.topPos, this.imageWidth, this.imageHeight); + + int j = Mth.ceil(this.menu.getBurnProgress() * 24f); + guiGraphics.blitSprite(RenderType::guiTextured, BURN_PROGRESS_SPRITE, 24, 16, 0, 0, this.leftPos + 117, this.topPos + 32 + 9, j, 16); + } +} diff --git a/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java b/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java index d7e4f6500b..ae70ba6dce 100755 --- a/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java @@ -2,7 +2,6 @@ import de.teamlapen.lib.lib.util.UtilLib; import de.teamlapen.vampirism.REFERENCE; -import de.teamlapen.vampirism.api.ItemPropertiesExtension; import de.teamlapen.vampirism.api.ModRegistryItems; import de.teamlapen.vampirism.api.util.VResourceLocation; import de.teamlapen.vampirism.blocks.BushBlock; @@ -12,6 +11,8 @@ import de.teamlapen.vampirism.blocks.mother.ActiveVulnerableRemainsBlock; import de.teamlapen.vampirism.blocks.mother.MotherBlock; import de.teamlapen.vampirism.blocks.mother.RemainsBlock; +import de.teamlapen.vampirism.items.PureLevelBlockItem; +import de.teamlapen.vampirism.items.component.PureLevel; import de.teamlapen.vampirism.util.BlockVoxelshapes; import de.teamlapen.vampirism.world.gen.ModTreeGrower; import net.minecraft.core.Holder; @@ -34,7 +35,6 @@ import org.jetbrains.annotations.NotNull; import java.util.Collection; -import java.util.Optional; import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; @@ -198,8 +198,8 @@ public class ModBlocks { public static final DeferredBlock FOG_DIFFUSER = registerWithItem("fog_diffuser", (prop) -> new FogDiffuserBlock(prop.noOcclusion().mapColor(MapColor.STONE).strength(40.0F, 1200.0F).sound(SoundType.STONE))); public static final DeferredBlock POTTED_DARK_SPRUCE_SAPLING = BLOCKS.registerBlock("potted_dark_spruce_sapling", (prop) -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, DARK_SPRUCE_SAPLING, prop.noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), DARK_SPRUCE_SAPLING.getId())); public static final DeferredBlock POTTED_CURSED_SPRUCE_SAPLING = BLOCKS.registerBlock("potted_cursed_spruce_sapling", (prop) -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, CURSED_SPRUCE_SAPLING, prop.noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), CURSED_SPRUCE_SAPLING.getId())); - public static final DeferredBlock BLOOD_INFUSED_IRON_BLOCK = registerWithItem("blood_infused_iron_block", (prop) -> new Block(prop.mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(6.0F, 7.0F).sound(SoundType.METAL))); - public static final DeferredBlock BLOOD_INFUSED_ENHANCED_IRON_BLOCK = registerWithItem("blood_infused_enhanced_iron_block", (prop) -> new Block(prop.mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(6.5F, 8.0F).sound(SoundType.METAL))); + public static final DeferredBlock BLOOD_INFUSED_IRON_BLOCK = registerWithItem("blood_infused_iron_block", (prop) -> new PureBloodBlock(prop.mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(6.0F, 7.0F).sound(SoundType.METAL)), (block, prop) -> new PureLevelBlockItem(block, prop.component(ModDataComponents.PURE_LEVEL, PureLevel.LOW))); + public static final DeferredBlock BLOOD_INFUSED_ENHANCED_IRON_BLOCK = registerWithItem("blood_infused_enhanced_iron_block", (prop) -> new PureBloodBlock(prop.mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(6.5F, 8.0F).sound(SoundType.METAL)), (block, prop) -> new PureLevelBlockItem(block, prop.component(ModDataComponents.PURE_LEVEL, new PureLevel(4)))); public static final DeferredBlock VAMPIRE_BEACON = registerWithItem("vampire_beacon", (prop) -> new VampireBeaconBlock(prop.mapColor(MapColor.DIAMOND).instrument(NoteBlockInstrument.HAT).strength(3.0F).lightLevel((p_50828_) -> 15).noOcclusion().isRedstoneConductor(UtilLib::never)), x -> x.rarity(Rarity.RARE)); public static final DeferredBlock PURPLE_STONE_BRICKS = registerWithItem("purple_stone_bricks", (prop) -> new Block(prop.mapColor(MapColor.COLOR_PURPLE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); public static final DeferredBlock PURPLE_STONE_BRICK_STAIRS = registerWithItem("purple_stone_brick_stairs", (prop) -> new StairBlock(PURPLE_STONE_BRICKS.get().defaultBlockState(), prop), () -> BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_BRICKS.get())); @@ -256,6 +256,7 @@ public class ModBlocks { .noOcclusion() .pushReaction(PushReaction.DESTROY) )); + public static final DeferredBlock INFUSER = registerWithItem("blood_infuser", BloodInfuserBlock::new); /** * TUTORIAL: @@ -282,6 +283,12 @@ private static DeferredBlock registerWithItem(String name, return block; } + private static DeferredBlock registerWithItem(String name, Function supplier, @NotNull BiFunction itemCreator) { + DeferredBlock block = BLOCKS.registerBlock(name, supplier); + createItem(name, block, itemCreator, prop -> prop); + return block; + } + private static DeferredBlock registerWithItem(String name, Function supplier, @NotNull BiFunction itemCreator, Function properties) { DeferredBlock block = BLOCKS.registerBlock(name, supplier); createItem(name, block, itemCreator, properties); diff --git a/src/main/java/de/teamlapen/vampirism/core/ModDataComponents.java b/src/main/java/de/teamlapen/vampirism/core/ModDataComponents.java index c4ed06bb73..ccabac298c 100644 --- a/src/main/java/de/teamlapen/vampirism/core/ModDataComponents.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModDataComponents.java @@ -37,6 +37,7 @@ public class ModDataComponents { public static final DeferredHolder, DataComponentType> FACTION_RESTRICTION = ITEM_DATA_COMPONENTS.registerComponentType(VampirismDataComponents.Keys.FACTION_RESTRICTION.getPath(), builder -> builder.persistent(FactionRestriction.CODEC).networkSynchronized(FactionRestriction.STREAM_CODEC)); public static final DeferredHolder, DataComponentType> FACTION_SLAYER = ITEM_DATA_COMPONENTS.registerComponentType(VampirismDataComponents.Keys.FACTION_SLAYER.getPath(), builder -> builder.persistent(FactionSlayer.CODEC).networkSynchronized(FactionSlayer.STREAM_CODEC)); public static final DeferredHolder, DataComponentType> DROP_VAMPIRE_SOUL = ITEM_DATA_COMPONENTS.registerComponentType(VampirismDataComponents.Keys.DROP_VAMPIRE_SOUL.getPath(), builder -> builder.persistent(Unit.CODEC).networkSynchronized(StreamCodec.unit(Unit.INSTANCE))); + public static final DeferredHolder, DataComponentType> PURE_LEVEL = ITEM_DATA_COMPONENTS.registerComponentType(VampirismDataComponents.Keys.PURE_LEVEL.getPath(), builder -> builder.persistent(PureLevel.CODEC).networkSynchronized(PureLevel.STREAM_CODEC)); static void register(IEventBus eventBus) { ITEM_DATA_COMPONENTS.register(eventBus); diff --git a/src/main/java/de/teamlapen/vampirism/core/ModItems.java b/src/main/java/de/teamlapen/vampirism/core/ModItems.java index 975a77e3d2..eb3a67a015 100755 --- a/src/main/java/de/teamlapen/vampirism/core/ModItems.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModItems.java @@ -95,8 +95,12 @@ public class ModItems { public static final DeferredItem BLOOD_BOTTLE = ITEMS.registerItem("blood_bottle", (prop) -> new BloodBottleItem(prop.stacksTo(1).component(DataComponents.CONSUMABLE, Consumables.defaultDrink().build()))); public static final DeferredItem BLOOD_BUCKET = register("blood_bucket", CreativeModeTabs.TOOLS_AND_UTILITIES, (prop) -> new BucketItem(ModFluids.BLOOD.get(), prop.craftRemainder(Items.BUCKET).stacksTo(1))); - public static final DeferredItem BLOOD_INFUSED_IRON_INGOT = register("blood_infused_iron_ingot", Item::new); - public static final DeferredItem BLOOD_INFUSED_ENHANCED_IRON_INGOT = register("blood_infused_enhanced_iron_ingot", Item::new); + public static final DeferredItem BLOOD_INFUSED_RAW_IRON = register("blood_infused_raw_iron", PureLevelItem::new); + public static final DeferredItem BLOOD_INFUSED_RAW_GOLD = register("blood_infused_raw_gold", PureLevelItem::new); + public static final DeferredItem BLOOD_INFUSED_IRON_INGOT = register("blood_infused_iron_ingot", PureLevelItem::new); + public static final DeferredItem BLOOD_INFUSED_GOLD_INGOT = register("blood_infused_gold_ingot", PureLevelItem::new); + public static final DeferredItem BLOOD_INFUSED_DIAMOND = register("blood_infused_diamond", PureLevelItem::new); + public static final DeferredItem BLOOD_INFUSED_NETHERITE_INGOT = register("blood_infused_netherite_ingot", PureLevelItem::new); public static final DeferredItem CROSSBOW_ARROW_NORMAL = register("crossbow_arrow_normal", (prop) -> new CrossbowArrowItem(new NormalBehavior(), prop)); public static final DeferredItem CROSSBOW_ARROW_SPITFIRE = register("crossbow_arrow_spitfire", (prop) -> new CrossbowArrowItem(new SpitfireBehavior(), prop)); @@ -112,13 +116,13 @@ public class ModItems { public static final DeferredItem GARLIC_DIFFUSER_CORE = register("garlic_diffuser_core", Item::new); public static final DeferredItem GARLIC_DIFFUSER_CORE_IMPROVED = register("garlic_diffuser_core_improved", Item::new); - public static final DeferredItem HEART_SEEKER_NORMAL = register("heart_seeker_normal", (prop) -> new HeartSeekerItem(HeartSeekerItem.NORMAL, IItemWithTier.TIER.NORMAL, 1.3f, prop)); - public static final DeferredItem HEART_SEEKER_ENHANCED = register("heart_seeker_enhanced", (prop) -> new HeartSeekerItem(HeartSeekerItem.ENHANCED, IItemWithTier.TIER.ENHANCED, 1.4f, prop)); - public static final DeferredItem HEART_SEEKER_ULTIMATE = register("heart_seeker_ultimate", (prop) -> new HeartSeekerItem(HeartSeekerItem.ULTIMATE, IItemWithTier.TIER.ULTIMATE, 1.5f, prop)); + public static final DeferredItem HEART_SEEKER_NORMAL = register("iron_heart_seeker", (prop) -> new HeartSeekerItem(HeartSeekerItem.IRON, IItemWithTier.TIER.NORMAL, 1.3f, prop)); + public static final DeferredItem HEART_SEEKER_ENHANCED = register("diamond_heart_seeker", (prop) -> new HeartSeekerItem(HeartSeekerItem.DIAMOND, IItemWithTier.TIER.ENHANCED, 1.4f, prop)); + public static final DeferredItem HEART_SEEKER_ULTIMATE = register("netherite_heart_seeker", (prop) -> new HeartSeekerItem(HeartSeekerItem.NETHERITE, IItemWithTier.TIER.ULTIMATE, 1.5f, prop)); - public static final DeferredItem HEART_STRIKER_NORMAL = register("heart_striker_normal", (prop) -> new HeartStrikerItem(HeartStrikerItem.NORMAL, IItemWithTier.TIER.NORMAL,1.25f, prop)); - public static final DeferredItem HEART_STRIKER_ENHANCED = register("heart_striker_enhanced", (prop) -> new HeartStrikerItem(HeartStrikerItem.ENHANCED, IItemWithTier.TIER.ENHANCED, 1.3f, prop)); - public static final DeferredItem HEART_STRIKER_ULTIMATE = register("heart_striker_ultimate", (prop) -> new HeartStrikerItem(HeartStrikerItem.ULTIMATE, IItemWithTier.TIER.ULTIMATE, 1.35f, prop)); + public static final DeferredItem HEART_STRIKER_NORMAL = register("iron_heart_striker", (prop) -> new HeartStrikerItem(HeartStrikerItem.IRON, IItemWithTier.TIER.NORMAL,1.25f, prop)); + public static final DeferredItem HEART_STRIKER_ENHANCED = register("diamond_heart_striker", (prop) -> new HeartStrikerItem(HeartStrikerItem.DIAMOND, IItemWithTier.TIER.ENHANCED, 1.3f, prop)); + public static final DeferredItem HEART_STRIKER_ULTIMATE = register("netherite_heart_striker", (prop) -> new HeartStrikerItem(HeartStrikerItem.NETHERITE, IItemWithTier.TIER.ULTIMATE, 1.35f, prop)); public static final DeferredItem HOLY_WATER_BOTTLE_NORMAL = register("holy_water_bottle_normal", (prop) -> new HolyWaterBottleItem(IItemWithTier.TIER.NORMAL, prop)); public static final DeferredItem HOLY_WATER_BOTTLE_ENHANCED = register("holy_water_bottle_enhanced", (prop) -> new HolyWaterBottleItem(IItemWithTier.TIER.ENHANCED, prop)); diff --git a/src/main/java/de/teamlapen/vampirism/core/ModMenus.java b/src/main/java/de/teamlapen/vampirism/core/ModMenus.java index 852da29659..721d69dcd3 100644 --- a/src/main/java/de/teamlapen/vampirism/core/ModMenus.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModMenus.java @@ -33,6 +33,7 @@ public class ModMenus { public static final DeferredHolder, MenuType> REVERT_BACK = MENUS.register("revert_back", () -> create(RevertBackMenu::new)); public static final DeferredHolder, MenuType> GARLIC_DIFFUSER = MENUS.register("garlic_diffuser", () -> create(new GarlicDiffuserMenu.Factory())); public static final DeferredHolder, MenuType> FOG_DIFFUSER = MENUS.register("fog_diffuser", () -> create(new FogDiffuserMenu.Factory())); + public static final DeferredHolder, MenuType> INFUSER_MENU = MENUS.register("infuser", () -> create(new InfuserMenu.Factory())); private static MenuType create(MenuType.MenuSupplier supplier) { return new MenuType<>(supplier, FeatureFlags.DEFAULT_FLAGS); diff --git a/src/main/java/de/teamlapen/vampirism/core/ModRecipes.java b/src/main/java/de/teamlapen/vampirism/core/ModRecipes.java index 714bf880ca..9487105fc1 100644 --- a/src/main/java/de/teamlapen/vampirism/core/ModRecipes.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModRecipes.java @@ -3,8 +3,10 @@ import com.mojang.serialization.MapCodec; import de.teamlapen.vampirism.REFERENCE; import de.teamlapen.vampirism.api.items.IWeaponTableRecipe; +import de.teamlapen.vampirism.api.util.VResourceLocation; import de.teamlapen.vampirism.recipes.*; import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.item.crafting.*; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.common.conditions.ICondition; @@ -23,6 +25,8 @@ public class ModRecipes { private static final DeferredRegister> CONDITION_CODECS = DeferredRegister.create(NeoForgeRegistries.Keys.CONDITION_CODECS, REFERENCE.MODID); private static final DeferredRegister RECIPE_BOOK_CATEGORIES = DeferredRegister.create(Registries.RECIPE_BOOK_CATEGORY, REFERENCE.MODID); + public static final ResourceKey INFUSER_SET = ResourceKey.create(RecipePropertySet.TYPE_KEY, VResourceLocation.mod("infuser")); + public static final DeferredHolder, RecipeType> WEAPONTABLE_CRAFTING_TYPE = RECIPE_TYPES.register("weapon_table", () -> new RecipeType<>() { public @NotNull String toString() { return "weapon_table"; @@ -38,10 +42,16 @@ public class ModRecipes { return "alchemical_table"; } }); + public static final DeferredHolder, RecipeType> INFUSER_TYPE = RECIPE_TYPES.register("infuser", () -> new RecipeType<>() { + public @NotNull String toString() { + return "infuser"; + } + }); public static final DeferredHolder WEAPON_TABLE_CATEGORY = RECIPE_BOOK_CATEGORIES.register("weapontable", RecipeBookCategory::new); public static final DeferredHolder ALCHEMICAL_TABLE_CATEGORY = RECIPE_BOOK_CATEGORIES.register("alchemical_table", RecipeBookCategory::new); public static final DeferredHolder ALCHEMICAL_CAULDRON_CATEGORY = RECIPE_BOOK_CATEGORIES.register("alchemical_cauldron", RecipeBookCategory::new); + public static final DeferredHolder INFUSER_CATEGORY = RECIPE_BOOK_CATEGORIES.register("infuser", RecipeBookCategory::new); public static final DeferredHolder, RecipeSerializer> SHAPED_CRAFTING_WEAPONTABLE = RECIPE_SERIALIZERS.register("shaped_crafting_weapontable", ShapedWeaponTableRecipe.Serializer::new); public static final DeferredHolder, RecipeSerializer> SHAPELESS_CRAFTING_WEAPONTABLE = RECIPE_SERIALIZERS.register("shapeless_crafting_weapontable", ShapelessWeaponTableRecipe.Serializer::new); @@ -50,6 +60,7 @@ public class ModRecipes { public static final DeferredHolder, RecipeSerializer> ALCHEMICAL_TABLE = RECIPE_SERIALIZERS.register("alchemical_table", AlchemyTableRecipe.Serializer::new); public static final DeferredHolder, RecipeSerializer> APPLICABLE_OIL = RECIPE_SERIALIZERS.register("applicable_oil", () -> new CustomRecipe.Serializer<>(ApplicableOilRecipe::new)); public static final DeferredHolder, RecipeSerializer> CLEAN_OIL = RECIPE_SERIALIZERS.register("clean_oil", () -> new CustomRecipe.Serializer<>(CleanOilRecipe::new)); + public static final DeferredHolder, RecipeSerializer> INFUSER = RECIPE_SERIALIZERS.register("infuser", InfuserRecipe.Serializer::new); public static final DeferredHolder, MapCodec> CONFIG_CONDITION = CONDITION_CODECS.register("config", () -> ConfigCondition.CODEC); diff --git a/src/main/java/de/teamlapen/vampirism/core/ModTiles.java b/src/main/java/de/teamlapen/vampirism/core/ModTiles.java index e07b9a2bf5..3bb1969f99 100644 --- a/src/main/java/de/teamlapen/vampirism/core/ModTiles.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModTiles.java @@ -41,6 +41,7 @@ public class ModTiles { public static final DeferredHolder, BlockEntityType> MOTHER_TROPHY = BLOCK_ENTITY_TYPES.register("mother_trophy", () -> create(MotherTrophyBlockEntity::new, ModBlocks.MOTHER_TROPHY.get())); public static final DeferredHolder, BlockEntityType> FOG_DIFFUSER = BLOCK_ENTITY_TYPES.register("fog_diffuser", () -> create(de.teamlapen.vampirism.blockentity.diffuser.FogDiffuserBlockEntity::new, ModBlocks.FOG_DIFFUSER.get())); public static final DeferredHolder, BlockEntityType> VAMPIRE_BEACON = BLOCK_ENTITY_TYPES.register("vampire_beacon", () -> create(VampireBeaconBlockEntity::new, ModBlocks.VAMPIRE_BEACON.get())); + public static final DeferredHolder, BlockEntityType> INFUSER = BLOCK_ENTITY_TYPES.register("infuser", () -> create(InfuserBlockEntity::new, ModBlocks.INFUSER.get())); static void register(IEventBus bus) { BLOCK_ENTITY_TYPES.register(bus); diff --git a/src/main/java/de/teamlapen/vampirism/core/ModVillage.java b/src/main/java/de/teamlapen/vampirism/core/ModVillage.java index d66b8f0737..d846f58b46 100644 --- a/src/main/java/de/teamlapen/vampirism/core/ModVillage.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModVillage.java @@ -149,7 +149,7 @@ private static Set getAllStates(Block @NotNull ... blocks) { }, 3, new VillagerTrades.ItemListing[] { new Trades.ItemsForHeart(new Trades.Price(30, 40), ModItems.PURE_BLOOD_2.get(), new Trades.Price(1, 1), 10, 1), - new Trades.ItemsForHeart(new Trades.Price(15, 30), ModItems.BLOOD_INFUSED_ENHANCED_IRON_INGOT.get(), new Trades.Price(1, 2)) + new Trades.ItemsForHeart(new Trades.Price(15, 30), ModItems.BLOOD_INFUSED_IRON_INGOT.get(), new Trades.Price(1, 2)) }, 4, new VillagerTrades.ItemListing[] { new Trades.ItemsForHeart(new Trades.Price(20, 30), ModItems.PURE_BLOOD_3.get(), new Trades.Price(1, 1), 10, 1), diff --git a/src/main/java/de/teamlapen/vampirism/data/provider/LootTablesProvider.java b/src/main/java/de/teamlapen/vampirism/data/provider/LootTablesProvider.java index 79f96d132c..4054e98f6a 100644 --- a/src/main/java/de/teamlapen/vampirism/data/provider/LootTablesProvider.java +++ b/src/main/java/de/teamlapen/vampirism/data/provider/LootTablesProvider.java @@ -259,7 +259,7 @@ public void generate(BiConsumer, LootTable.Builder> consu .withPool(LootPool.lootPool().setRolls(UniformGenerator.between(1, 12)) .add(LootItem.lootTableItem(ModItems.OBLIVION_POTION.get()).setWeight(5)) .add(LootItem.lootTableItem(ModItems.BLOOD_INFUSED_IRON_INGOT.get()).setWeight(25)) - .add(LootItem.lootTableItem(ModItems.BLOOD_INFUSED_ENHANCED_IRON_INGOT.get()).setWeight(15)) + .add(LootItem.lootTableItem(ModItems.BLOOD_INFUSED_IRON_INGOT.get()).setWeight(15)) .add(LootItem.lootTableItem(ModItems.VAMPIRE_FANG.get()).setWeight(40)) .add(LootItem.lootTableItem(ModBlocks.VAMPIRE_ORCHID.get()).setWeight(30)) .add(LootItem.lootTableItem(ModItems.BLOOD_BOTTLE.get()).setWeight(20).apply(SetItemDamageFunction.setDamage(UniformGenerator.between(0, 1f))))) @@ -589,6 +589,7 @@ protected void generate() { this.dropMountedCandle(ModBlocks.CANDLE_STICK_RED.get()); this.dropMountedCandle(ModBlocks.CANDLE_STICK_BLACK.get()); this.dropSelf(ModBlocks.VAMPIRE_SOUL_LANTERN.get()); + this.dropSelf(ModBlocks.INFUSER.get()); } @NotNull diff --git a/src/main/java/de/teamlapen/vampirism/data/provider/RecipesProvider.java b/src/main/java/de/teamlapen/vampirism/data/provider/RecipesProvider.java index 6688a1909a..27e1a19010 100644 --- a/src/main/java/de/teamlapen/vampirism/data/provider/RecipesProvider.java +++ b/src/main/java/de/teamlapen/vampirism/data/provider/RecipesProvider.java @@ -9,18 +9,22 @@ import de.teamlapen.vampirism.core.tags.ModItemTags; import de.teamlapen.vampirism.data.ModBlockFamilies; import de.teamlapen.vampirism.entity.player.hunter.skills.HunterSkills; +import de.teamlapen.vampirism.items.PureBloodItem; import de.teamlapen.vampirism.items.component.OilContent; +import de.teamlapen.vampirism.items.component.PureLevel; import de.teamlapen.vampirism.recipes.ApplicableOilRecipe; import de.teamlapen.vampirism.recipes.CleanOilRecipe; import de.teamlapen.vampirism.recipes.ConfigCondition; import de.teamlapen.vampirism.util.ItemDataUtils; import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentMap; import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.*; +import net.minecraft.resources.ResourceKey; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.flag.FeatureFlagSet; @@ -44,9 +48,12 @@ import net.neoforged.neoforge.common.crafting.DataComponentIngredient; import net.neoforged.neoforge.fluids.FluidStack; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Range; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.stream.IntStream; +import java.util.stream.Stream; import static de.teamlapen.vampirism.api.util.VResourceLocation.modString; @@ -88,7 +95,6 @@ protected void buildRecipes() { ItemLike pure_blood_2 = ModItems.PURE_BLOOD_2.get(); ItemLike pure_blood_3 = ModItems.PURE_BLOOD_3.get(); ItemLike pure_blood_4 = ModItems.PURE_BLOOD_4.get(); - ItemLike blood_infused_enhanced_iron_ingot = ModItems.BLOOD_INFUSED_ENHANCED_IRON_INGOT.get(); ItemLike blood_infused_iron_ingot = ModItems.BLOOD_INFUSED_IRON_INGOT.get(); ItemLike rotten_flesh = Items.ROTTEN_FLESH; ItemLike amulet = ModItems.AMULET.get(); @@ -156,10 +162,6 @@ protected void buildRecipes() { shapeless(RecipeCategory.MISC, ModItems.BLOOD_INFUSED_IRON_INGOT, 3).requires(tag(iron_ingot), 3).requires(pure_blood_4).unlockedBy("has_iron", has(iron_ingot)).save(output, vampire("blood_infused_enhanced_iron_ingot")); shapeless(RecipeCategory.MISC, ModItems.BLOOD_INFUSED_IRON_INGOT, 3).requires(tag(iron_ingot), 3).requires(Ingredient.of(pure_blood_0, pure_blood_1, pure_blood_2, pure_blood_3)).unlockedBy("has_iron", has(iron_ingot)).save(output, vampire("blood_infused_iron_ingot")); shaped(RecipeCategory.DECORATIONS, ModBlocks.BLOOD_PEDESTAL.get()).pattern("GYG").pattern("YZY").pattern("XXX").define('X', obsidian).define('Y', planks).define('Z', blood_bottle).define('G', gold_ingot).unlockedBy("has_gold", has(gold_ingot)).save(output, vampire("blood_pedestal")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_SEEKER_ENHANCED.get()).pattern("X").pattern("X").pattern("Y").define('X', blood_infused_enhanced_iron_ingot).define('Y', stick).unlockedBy("has_ingot", has(blood_infused_enhanced_iron_ingot)).save(output, vampire("heart_seeker_enhanced")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_STRIKER_ENHANCED.get()).pattern("XX").pattern("XX").pattern("YY").define('X', blood_infused_enhanced_iron_ingot).define('Y', stick).unlockedBy("has_ingot", has(blood_infused_enhanced_iron_ingot)).save(output, vampire("heart_striker_enhanced")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_SEEKER_NORMAL.get()).pattern("X").pattern("X").pattern("Y").define('X', blood_infused_iron_ingot).define('Y', stick).unlockedBy("has_ingot", has(blood_infused_iron_ingot)).save(output, vampire("heart_seeker_normal")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_STRIKER_NORMAL.get()).pattern("XX").pattern("XX").pattern("YY").define('X', blood_infused_iron_ingot).define('Y', stick).unlockedBy("has_ingot", has(blood_infused_iron_ingot)).save(output, vampire("heart_striker_normal")); shaped(RecipeCategory.COMBAT, ModItems.VAMPIRE_CLOAK_BLACK_BLUE.get()).pattern("YZY").pattern("XAX").pattern("Y Y").define('X', blue_wool).define('Y', black_wool).define('Z', diamond).define('A', pure_blood).unlockedBy("has_pure_blood", has(pure_blood)).save(output, vampire("vampire_cloak_black_blue")); shaped(RecipeCategory.COMBAT, ModItems.VAMPIRE_CLOAK_BLACK_RED.get()).pattern("YZY").pattern("XAX").pattern("Y Y").define('X', red_wool).define('Y', black_wool).define('Z', diamond).define('A', pure_blood).unlockedBy("has_pure_blood", has(pure_blood)).save(output, vampire("vampire_cloak_black_red")); @@ -170,11 +172,6 @@ protected void buildRecipes() { blood_bottle_stack.setDamageValue(0); ShapedRecipeBuilder.shaped(itemLookup, RecipeCategory.MISC, blood_bottle_stack).pattern("XYX").pattern(" X ").define('X', glass).define('Y', rotten_flesh).unlockedBy("has_glass", has(glass)).save(output.withConditions(new NotCondition(new ConfigCondition("auto_convert"))), vampire("blood_bottle")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_SEEKER_NORMAL.get(), 1).pattern(" X ").pattern("XYX").define('X', blood_infused_iron_ingot).define('Y', ModItems.HEART_SEEKER_NORMAL.get()).unlockedBy("has_heart_seeker", has(ModItems.HEART_SEEKER_NORMAL.get())).save(output, vampire("heart_seeker_normal_repair")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_STRIKER_NORMAL.get(), 1).pattern("XXX").pattern("XYX").define('X', blood_infused_iron_ingot).define('Y', ModItems.HEART_STRIKER_NORMAL.get()).unlockedBy("has_heart_striker", has(ModItems.HEART_STRIKER_NORMAL.get())).save(output, vampire("heart_striker_normal_repair")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_SEEKER_ENHANCED.get(), 1).pattern(" X ").pattern("XYX").define('X', blood_infused_enhanced_iron_ingot).define('Y', ModItems.HEART_SEEKER_ENHANCED.get()).unlockedBy("has_heart_seeker", has(ModItems.HEART_SEEKER_ENHANCED.get())).save(output, vampire("heart_seeker_enhanced_repair")); - shaped(RecipeCategory.COMBAT, ModItems.HEART_STRIKER_ENHANCED.get(), 1).pattern("XXX").pattern("XYX").define('X', blood_infused_enhanced_iron_ingot).define('Y', ModItems.HEART_STRIKER_ENHANCED.get()).unlockedBy("has_heart_striker", has(ModItems.HEART_STRIKER_ENHANCED.get())).save(output, vampire("heart_striker_enhanced_repair")); - BuiltInRegistries.ITEM.getOptional(VResourceLocation.loc("guideapi_vp", "vampirism-guidebook")).ifPresent(guideBook -> { shapeless(RecipeCategory.MISC, guideBook).requires(vampire_fang).requires(book).unlockedBy("has_fang", has(vampire_fang)).save(output.withConditions(new ModLoadedCondition("guideapi_vp")), modString("general/guidebook")); }); @@ -238,8 +235,6 @@ protected void buildRecipes() { SimpleCookingRecipeBuilder.blasting(Ingredient.of(ModBlocks.COBBLED_DARK_STONE.get()), RecipeCategory.BUILDING_BLOCKS, ModBlocks.DARK_STONE.get(), 0.1f, 100).unlockedBy("has_cobbled_dark_stone", has(ModBlocks.COBBLED_DARK_STONE.get())).save(output, modString("dark_stone_from_cobbled_dark_stone_blasting")); shaped(RecipeCategory.DECORATIONS, ModBlocks.BAT_CAGE.get()).pattern("GGG").pattern("GPG").pattern("PPP").define('G', gold_ingot).define('P', planks).unlockedBy("has_gold", has(gold_ingot)).unlockedBy("has_planks", has(planks)).save(output); shaped(RecipeCategory.DECORATIONS, ModBlocks.FOG_DIFFUSER.get()).pattern("XYX").pattern("YZY").pattern("OOO").define('X', cursed_spruce_planks).define('Y', diamond).define('O', obsidian).define('Z', mother_core).unlockedBy("has_diamond", has(diamond)).unlockedBy("has_cursed_plank", has(cursed_spruce_planks)).unlockedBy("has_mother_core", has(mother_core)).save(output, vampire("fog_diffuser")); - nineBlockStorageRecipes(RecipeCategory.BUILDING_BLOCKS, ModItems.BLOOD_INFUSED_IRON_INGOT.get(), RecipeCategory.BUILDING_BLOCKS, ModBlocks.BLOOD_INFUSED_IRON_BLOCK.get()); - nineBlockStorageRecipes(RecipeCategory.BUILDING_BLOCKS, ModItems.BLOOD_INFUSED_ENHANCED_IRON_INGOT.get(), RecipeCategory.BUILDING_BLOCKS, ModBlocks.BLOOD_INFUSED_ENHANCED_IRON_BLOCK.get()); shaped(RecipeCategory.MISC, ModBlocks.VAMPIRE_BEACON.get()).pattern("GGG").pattern("GCG").pattern("OOO").define('G', Items.GLASS).define('C', mother_core).define('O', obsidian).unlockedBy("has_mother_core", has(mother_core)).unlockedBy("has_obsidian", has(obsidian)).unlockedBy("has_glass", has(Items.GLASS)).save(output); @@ -250,6 +245,7 @@ protected void buildRecipes() { alchemyCauldron(); weaponTable(); coffins(); + infuser(); } private void stoneCutterRecipes() { @@ -470,6 +466,275 @@ private void coffins() { coffinFromWoolOrDye(output, ModBlocks.COFFIN_BLACK.get(), Items.BLACK_WOOL, Items.BLACK_DYE, vampire("coffin_black")); } + private void infuser() { + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_IRON.toStack(), 0)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_0)) + .input(Ingredient.of(Items.RAW_IRON)) + .results(ModItems.VAMPIRE_BLOOD_BOTTLE.toStack()) + .burnTime(200) + .unlockedBy("raw_iron", has(Items.RAW_IRON)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_0)) + .save(this.output, modString("raw_iron_pure_0")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_IRON.toStack(), 1)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_1)) + .input(Ingredient.of(Items.RAW_IRON)) + .results(ModItems.PURE_BLOOD_0.toStack()) + .burnTime(300) + .unlockedBy("raw_iron", has(Items.RAW_IRON)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_1)) + .save(this.output, modString("raw_iron_pure_1")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_IRON.toStack(), 2)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_2)) + .input(Ingredient.of(Items.RAW_IRON)) + .results(ModItems.PURE_BLOOD_1.toStack()) + .burnTime(400) + .unlockedBy("raw_iron", has(Items.RAW_IRON)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_2)) + .save(this.output, modString("raw_iron_pure_2")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_IRON.toStack(), 3)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_3)) + .input(Ingredient.of(Items.RAW_IRON)) + .results(ModItems.PURE_BLOOD_2.toStack()) + .burnTime(500) + .unlockedBy("raw_iron", has(Items.RAW_IRON)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_3)) + .save(this.output, modString("raw_iron_pure_3")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_IRON.toStack(), 4)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_4)) + .input(Ingredient.of(Items.RAW_IRON)) + .results(ModItems.PURE_BLOOD_3.toStack()) + .burnTime(600) + .unlockedBy("raw_iron", has(Items.RAW_IRON)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_4)) + .save(this.output, modString("raw_iron_pure_4")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_GOLD.toStack(), 0)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_0)) + .input(Ingredient.of(Items.RAW_GOLD)) + .results(ModItems.VAMPIRE_BLOOD_BOTTLE.toStack()) + .burnTime(200) + .unlockedBy("raw_gold", has(Items.RAW_GOLD)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_0)) + .save(this.output, modString("raw_gold_pure_0")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_GOLD.toStack(), 1)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_1)) + .input(Ingredient.of(Items.RAW_GOLD)) + .results(ModItems.PURE_BLOOD_0.toStack()) + .burnTime(300) + .unlockedBy("raw_gold", has(Items.RAW_GOLD)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_1)) + .save(this.output, modString("raw_gold_pure_1")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_GOLD.toStack(), 2)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_2)) + .input(Ingredient.of(Items.RAW_GOLD)) + .results(ModItems.PURE_BLOOD_1.toStack()) + .burnTime(400) + .unlockedBy("raw_gold", has(Items.RAW_GOLD)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_2)) + .save(this.output, modString("raw_gold_pure_2")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_GOLD.toStack(), 3)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_3)) + .input(Ingredient.of(Items.RAW_GOLD)) + .results(ModItems.PURE_BLOOD_2.toStack()) + .burnTime(500) + .unlockedBy("raw_gold", has(Items.RAW_GOLD)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_3)) + .save(this.output, modString("raw_gold_pure_3")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_RAW_GOLD.toStack(), 4)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_4)) + .input(Ingredient.of(Items.RAW_GOLD)) + .results(ModItems.PURE_BLOOD_3.toStack()) + .burnTime(600) + .unlockedBy("raw_gold", has(Items.RAW_GOLD)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_4)) + .save(this.output, modString("raw_gold_pure_4")); + + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_DIAMOND.toStack(), 0)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_0)) + .input(tag(Tags.Items.GEMS_DIAMOND)) + .results(ModItems.VAMPIRE_BLOOD_BOTTLE.toStack()) + .burnTime(200) + .unlockedBy("raw_diamonds", has(Tags.Items.GEMS_DIAMOND)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_0)) + .save(this.output, modString("diamond_pure_0")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_DIAMOND.toStack(), 1)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_1)) + .input(tag(Tags.Items.GEMS_DIAMOND)) + .results(ModItems.PURE_BLOOD_0.toStack()) + .burnTime(400) + .unlockedBy("raw_diamonds", has(Items.RAW_GOLD)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_1)) + .save(this.output, modString("diamond_pure_1")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_DIAMOND.toStack(), 2)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_2)) + .input(tag(Tags.Items.GEMS_DIAMOND)) + .results(ModItems.PURE_BLOOD_1.toStack()) + .burnTime(600) + .unlockedBy("raw_diamonds", has(Tags.Items.GEMS_DIAMOND)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_2)) + .save(this.output, modString("diamond_pure_2")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_DIAMOND.toStack(), 3)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_3)) + .input(tag(Tags.Items.GEMS_DIAMOND)) + .results(ModItems.PURE_BLOOD_2.toStack()) + .burnTime(800) + .unlockedBy("raw_diamonds", has(Tags.Items.GEMS_DIAMOND)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_3)) + .save(this.output, modString("diamond_pure_3")); + infuser(PureLevel.pureBlood(ModItems.BLOOD_INFUSED_DIAMOND.toStack(), 4)) + .ingredients(Ingredient.of(ModItems.PURE_BLOOD_4)) + .input(tag(Tags.Items.GEMS_DIAMOND)) + .results(ModItems.PURE_BLOOD_3.toStack()) + .burnTime(1000) + .unlockedBy("raw_diamonds", has(Tags.Items.GEMS_DIAMOND)) + .unlockedBy("has_pure_blood", has(ModItems.PURE_BLOOD_4)) + .save(this.output, modString("diamond_pure_4")); + swordInfusing(); + + + infusedIron(0); + infusedIron(1); + infusedIron(2); + infusedIron(3); + infusedIron(4); + + infusedGold(0); + infusedGold(1); + infusedGold(2); + infusedGold(3); + infusedGold(4); + + shapeless(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_NETHERITE_INGOT, 0)) + .requires(Items.NETHERITE_SCRAP, 4) + .requires(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(0), ModItems.BLOOD_INFUSED_GOLD_INGOT), 4) + .unlockedBy("has_blood_infused_gold_ingot", has(ModItems.BLOOD_INFUSED_GOLD_INGOT)) + .unlockedBy("has_netherite_scrap", has(Items.NETHERITE_SCRAP)) + .save(this.output, modString("netherite_scrap_pure_0")); + shapeless(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_NETHERITE_INGOT, 1)) + .requires(Items.NETHERITE_SCRAP, 4) + .requires(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(1), ModItems.BLOOD_INFUSED_GOLD_INGOT), 4) + .unlockedBy("has_blood_infused_gold_ingot", has(ModItems.BLOOD_INFUSED_GOLD_INGOT)) + .unlockedBy("has_netherite_scrap", has(Items.NETHERITE_SCRAP)) + .save(this.output, modString("netherite_scrap_pure_1")); + shapeless(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_NETHERITE_INGOT, 2)) + .requires(Items.NETHERITE_SCRAP, 4) + .requires(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(2), ModItems.BLOOD_INFUSED_GOLD_INGOT), 4) + .unlockedBy("has_blood_infused_gold_ingot", has(ModItems.BLOOD_INFUSED_GOLD_INGOT)) + .unlockedBy("has_netherite_scrap", has(Items.NETHERITE_SCRAP)) + .save(this.output, modString("netherite_scrap_pure_2")); + shapeless(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_NETHERITE_INGOT, 3)) + .requires(Items.NETHERITE_SCRAP, 4) + .requires(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(3), ModItems.BLOOD_INFUSED_GOLD_INGOT), 4) + .unlockedBy("has_blood_infused_gold_ingot", has(ModItems.BLOOD_INFUSED_GOLD_INGOT)) + .unlockedBy("has_netherite_scrap", has(Items.NETHERITE_SCRAP)) + .save(this.output, modString("netherite_scrap_pure_3")); + shapeless(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_NETHERITE_INGOT, 4)) + .requires(Items.NETHERITE_SCRAP, 4) + .requires(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(4), ModItems.BLOOD_INFUSED_GOLD_INGOT), 4) + .unlockedBy("has_blood_infused_gold_ingot", has(ModItems.BLOOD_INFUSED_GOLD_INGOT)) + .unlockedBy("has_netherite_scrap", has(Items.NETHERITE_SCRAP)) + .save(this.output, modString("netherite_scrap_pure_4")); + + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_NORMAL,0)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(0), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_seeker_normal_pure_0"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_NORMAL,1)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(1), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_seeker_normal_pure_1"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_NORMAL,2)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(2), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_seeker_normal_pure_2"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_NORMAL,3)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(3), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_seeker_normal_pure_3"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_NORMAL,4)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(4), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_seeker_normal_pure_4"); + + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ENHANCED,0)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(0), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_seeker_enhanced_pure_0"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ENHANCED,1)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(1), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_seeker_enhanced_pure_1"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ENHANCED,2)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(2), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_seeker_enhanced_pure_2"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ENHANCED,3)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(3), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_seeker_enhanced_pure_3"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ENHANCED,4)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(4), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_seeker_enhanced_pure_4"); + + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ULTIMATE,0)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(0), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_seeker_ultimate_pure_0"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ULTIMATE,1)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(1), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_seeker_ultimate_pure_1"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ULTIMATE,2)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(2), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_seeker_ultimate_pure_2"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ULTIMATE,3)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(3), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_seeker_ultimate_pure_3"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_SEEKER_ULTIMATE,4)).pattern("X").pattern("X").pattern("Y").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(4), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_seeker_ultimate_pure_4"); + + + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_NORMAL,0)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(0), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_striker_normal_pure_0"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_NORMAL,1)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(1), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_striker_normal_pure_1"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_NORMAL,2)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(2), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_striker_normal_pure_2"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_NORMAL,3)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(3), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_striker_normal_pure_3"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_NORMAL,4)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(4), ModItems.BLOOD_INFUSED_IRON_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_iron_ingot", has(ModItems.BLOOD_INFUSED_IRON_INGOT)).save(output, "heart_striker_normal_pure_4"); + + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ENHANCED,0)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(0), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_striker_enhanced_pure_0"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ENHANCED,1)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(1), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_striker_enhanced_pure_1"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ENHANCED,2)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(2), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_striker_enhanced_pure_2"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ENHANCED,3)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(3), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_striker_enhanced_pure_3"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ENHANCED,4)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(4), ModItems.BLOOD_INFUSED_DIAMOND)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_diamond", has(ModItems.BLOOD_INFUSED_DIAMOND)).save(output, "heart_striker_enhanced_pure_4"); + + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ULTIMATE,0)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(0), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_striker_ultimate_pure_0"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ULTIMATE,1)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(1), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_striker_ultimate_pure_1"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ULTIMATE,2)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(2), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_striker_ultimate_pure_2"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ULTIMATE,3)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(3), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_striker_ultimate_pure_3"); + ShapedRecipeBuilder.shaped(this.itemLookup, RecipeCategory.COMBAT, PureLevel.pureBlood(ModItems.HEART_STRIKER_ULTIMATE,4)).pattern("XX").pattern("XX").pattern("YY").define('X', DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(4), ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).define('Y', Tags.Items.RODS_WOODEN).unlockedBy("has_blood_infused_netherite_ingot", has(ModItems.BLOOD_INFUSED_NETHERITE_INGOT)).save(output, "heart_striker_ultimate_pure_4"); + + nineBlockStorageRecipes(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_IRON_INGOT,0) , RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModBlocks.BLOOD_INFUSED_IRON_BLOCK, 0), "_purity_0"); + nineBlockStorageRecipes(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_IRON_INGOT,1) , RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModBlocks.BLOOD_INFUSED_IRON_BLOCK, 1), "_purity_1"); + nineBlockStorageRecipes(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_IRON_INGOT,2) , RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModBlocks.BLOOD_INFUSED_IRON_BLOCK, 2), "_purity_2"); + nineBlockStorageRecipes(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_IRON_INGOT,3) , RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModBlocks.BLOOD_INFUSED_IRON_BLOCK, 3), "_purity_3"); + nineBlockStorageRecipes(RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_IRON_INGOT,4) , RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModBlocks.BLOOD_INFUSED_ENHANCED_IRON_BLOCK, 4), "_purity_4"); + + smithingPure(ModItems.HEART_SEEKER_ENHANCED, 0, ModItems.HEART_SEEKER_ULTIMATE); + smithingPure(ModItems.HEART_SEEKER_ENHANCED, 1, ModItems.HEART_SEEKER_ULTIMATE); + smithingPure(ModItems.HEART_SEEKER_ENHANCED, 2, ModItems.HEART_SEEKER_ULTIMATE); + smithingPure(ModItems.HEART_SEEKER_ENHANCED, 3, ModItems.HEART_SEEKER_ULTIMATE); + smithingPure(ModItems.HEART_SEEKER_ENHANCED, 4, ModItems.HEART_SEEKER_ULTIMATE); + + smithingPure(ModItems.HEART_STRIKER_ENHANCED, 0, ModItems.HEART_STRIKER_ULTIMATE); + smithingPure(ModItems.HEART_STRIKER_ENHANCED, 1, ModItems.HEART_STRIKER_ULTIMATE); + smithingPure(ModItems.HEART_STRIKER_ENHANCED, 2, ModItems.HEART_STRIKER_ULTIMATE); + smithingPure(ModItems.HEART_STRIKER_ENHANCED, 3, ModItems.HEART_STRIKER_ULTIMATE); + smithingPure(ModItems.HEART_STRIKER_ENHANCED, 4, ModItems.HEART_STRIKER_ULTIMATE); + + } + + private void smithingPure(ItemLike item, int level, ItemLike result) { + netheriteSmithing(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(level), item), RecipeCategory.COMBAT, DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(level), ModItems.BLOOD_INFUSED_NETHERITE_INGOT), PureLevel.pureBlood(result, level), "_purity_" + level); + } + + private void infusedGold(int pureLevel) { + SimpleCookingRecipeBuilder + .smelting(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(pureLevel), ModItems.BLOOD_INFUSED_RAW_GOLD), RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_GOLD_INGOT, pureLevel), (float)Math.pow(2f, pureLevel), 200 + pureLevel * 100) + .unlockedBy("has_blood_infused_raw_gold", has(ModItems.BLOOD_INFUSED_RAW_GOLD)) + .save(this.output, modString("raw_gold_pure_" + pureLevel + "_smelting")); + SimpleCookingRecipeBuilder + .blasting(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(pureLevel), ModItems.BLOOD_INFUSED_RAW_GOLD), RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_GOLD_INGOT, pureLevel),(float)Math.pow(2f, pureLevel), 100 + pureLevel * 50) + .unlockedBy("has_blood_infused_raw_gold", has(ModItems.BLOOD_INFUSED_RAW_GOLD)) + .save(this.output, modString("raw_gold_pure_" + pureLevel + "_blasting")); + } + + private void infusedIron(int pureLevel) { + SimpleCookingRecipeBuilder + .smelting(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(pureLevel), ModItems.BLOOD_INFUSED_RAW_IRON), RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_IRON_INGOT, pureLevel), (float)Math.pow(2f, pureLevel), 200 + pureLevel * 100) + .unlockedBy("has_blood_infused_raw_iron", has(ModItems.BLOOD_INFUSED_RAW_IRON)) + .save(this.output, modString("raw_iron_pure_" + pureLevel + "_smelting")); + SimpleCookingRecipeBuilder + .blasting(DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(pureLevel), ModItems.BLOOD_INFUSED_RAW_IRON), RecipeCategory.BUILDING_BLOCKS, PureLevel.pureBlood(ModItems.BLOOD_INFUSED_IRON_INGOT, pureLevel),(float)Math.pow(2f, pureLevel), 100 + pureLevel * 50) + .unlockedBy("has_blood_infused_raw_iron", has(ModItems.BLOOD_INFUSED_RAW_IRON)) + .save(this.output, modString("raw_iron_pure_" + pureLevel + "_blasting")); + } + + private void swordInfusing() { + Stream.of(ModItems.HEART_SEEKER_NORMAL, ModItems.HEART_SEEKER_ENHANCED, ModItems.HEART_SEEKER_ULTIMATE, ModItems.HEART_STRIKER_NORMAL, ModItems.HEART_STRIKER_ENHANCED, ModItems.HEART_STRIKER_ULTIMATE).forEach(item -> { + for (int i = 1; i < 5; i++) { + swordInfuse(item, i); + } + }); + } + + private void swordInfuse(ItemLike item, @Range(from = 1, to = 4) int level) { + infuserUpgrade() + .ingredients(Ingredient.of(PureBloodItem.getBloodItemForLevel(level))) + .results(ItemStack.EMPTY) + .burnTime(200) + .unlockedBy("has_pure_blood", has(PureBloodItem.getBloodItemForLevel(level))) + .input(CompoundIngredient.of(IntStream.range(0, level).mapToObj(x -> DataComponentIngredient.of(false, ModDataComponents.PURE_LEVEL, new PureLevel(x), item)).toArray(Ingredient[]::new))) + .save(this.output, ResourceKey.create(Registries.RECIPE, BuiltInRegistries.ITEM.getKey(item.asItem()).withSuffix("_infuse_" + level + "_upgrade"))); + } + private @NotNull String general(String path) { return modString("general/" + path); diff --git a/src/main/java/de/teamlapen/vampirism/data/provider/model/BlockModelGenerators.java b/src/main/java/de/teamlapen/vampirism/data/provider/model/BlockModelGenerators.java index 2f19f316c3..f6a89a00c7 100644 --- a/src/main/java/de/teamlapen/vampirism/data/provider/model/BlockModelGenerators.java +++ b/src/main/java/de/teamlapen/vampirism/data/provider/model/BlockModelGenerators.java @@ -62,6 +62,7 @@ public void run() { createPlants(); createWood(); createCursedEarthPath(); + createInfuser(); createLantern(ModBlocks.VAMPIRE_SOUL_LANTERN.get()); @@ -439,4 +440,11 @@ protected void createCursedGrassBlock() { this.registerSimpleTintedItemModel(ModBlocks.CURSED_GRASS.get(), ModelLocationUtils.getModelLocation(ModBlocks.CURSED_GRASS.get()), new GrassColorSource()); } + protected void createInfuser() { + this.blockStateOutput.accept(MultiPartGenerator.multiPart(ModBlocks.INFUSER.get()) + .with(Variant.variant().with(VariantProperties.MODEL, VResourceLocation.mod("block/blood_infuser/infuser"))) + .with(Condition.condition().term(BloodInfuserBlock.IS_ACTIVE, true), Variant.variant().with(VariantProperties.MODEL, VResourceLocation.mod("block/blood_infuser/infuser_blood")))); + this.createDefaultBlockItem(ModBlocks.INFUSER.get(), VResourceLocation.mod("block/blood_infuser/infuser")); + } + } diff --git a/src/main/java/de/teamlapen/vampirism/data/provider/model/ItemModelGenerators.java b/src/main/java/de/teamlapen/vampirism/data/provider/model/ItemModelGenerators.java index 1ae1e071a4..e4b325313d 100644 --- a/src/main/java/de/teamlapen/vampirism/data/provider/model/ItemModelGenerators.java +++ b/src/main/java/de/teamlapen/vampirism/data/provider/model/ItemModelGenerators.java @@ -15,9 +15,7 @@ import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredItem; -import java.util.Collection; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; import java.util.function.BiConsumer; import java.util.stream.Stream; @@ -189,66 +187,70 @@ protected void generateWeapons() { this.itemModelOutput.accept(ModItems.HUNTER_AXE_ULTIMATE.asItem(), ItemModelUtils.plainModel(ModelTemplates.HUNTER_AXE.create(ModItems.HUNTER_AXE_ULTIMATE.asItem(), TextureMapping.defaultTexture(VResourceLocation.mod("item/hunter_axe_ultimate")), this.modelOutput))); } - protected Collection getFlatItems() { - return new HashSet<>() {{ - add(ModItems.HUNTER_COAT_CHEST_NORMAL.get()); - add(ModItems.HUNTER_COAT_CHEST_ENHANCED.get()); - add(ModItems.HUNTER_COAT_CHEST_ULTIMATE.get()); - add(ModItems.HUNTER_COAT_FEET_NORMAL.get()); - add(ModItems.HUNTER_COAT_FEET_ENHANCED.get()); - add(ModItems.HUNTER_COAT_FEET_ULTIMATE.get()); - add(ModItems.HUNTER_COAT_HEAD_NORMAL.get()); - add(ModItems.HUNTER_COAT_HEAD_ENHANCED.get()); - add(ModItems.HUNTER_COAT_HEAD_ULTIMATE.get()); - add(ModItems.HUNTER_COAT_LEGS_NORMAL.get()); - add(ModItems.HUNTER_COAT_LEGS_ENHANCED.get()); - add(ModItems.HUNTER_COAT_LEGS_ULTIMATE.get()); - add(ModItems.BLOOD_BUCKET.get()); - add(ModItems.IMPURE_BLOOD_BUCKET.get()); - add(ModItems.BLOOD_INFUSED_ENHANCED_IRON_INGOT.get()); - add(ModItems.BLOOD_INFUSED_IRON_INGOT.get()); - add(ModItems.PURE_SALT.get()); - add(ModItems.PURE_SALT_WATER.get()); - add(ModItems.HUMAN_HEART.get()); - add(ModItems.INJECTION_EMPTY.get()); - add(ModItems.INJECTION_GARLIC.get()); - add(ModItems.INJECTION_SANGUINARE.get()); - add(ModItems.PURIFIED_GARLIC.get()); - add(ModItems.SOUL_ORB_VAMPIRE.get()); - add(ModItems.VAMPIRE_BLOOD_BOTTLE.get()); - add(ModItems.VAMPIRE_CLOAK_BLACK_BLUE.get()); - add(ModItems.VAMPIRE_CLOAK_BLACK_RED.get()); - add(ModItems.VAMPIRE_CLOAK_BLACK_WHITE.get()); - add(ModItems.VAMPIRE_CLOAK_WHITE_BLACK.get()); - add(ModItems.VAMPIRE_CLOAK_RED_BLACK.get()); - add(ModItems.VAMPIRE_FANG.get()); - add(ModItems.WEAK_HUMAN_HEART.get()); - add(ModItems.ITEM_TENT.get()); - add(ModItems.PURE_BLOOD_0.get()); - add(ModItems.PURE_BLOOD_1.get()); - add(ModItems.PURE_BLOOD_2.get()); - add(ModItems.PURE_BLOOD_3.get()); - add(ModItems.PURE_BLOOD_4.get()); - add(ModItems.VAMPIRE_MINION_BINDING.get()); - add(ModItems.VAMPIRE_MINION_UPGRADE_SIMPLE.get()); - add(ModItems.VAMPIRE_MINION_UPGRADE_ENHANCED.get()); - add(ModItems.VAMPIRE_MINION_UPGRADE_SPECIAL.get()); - add(ModItems.HUNTER_MINION_EQUIPMENT.get()); - add(ModItems.HUNTER_MINION_UPGRADE_SIMPLE.get()); - add(ModItems.HUNTER_MINION_UPGRADE_ENHANCED.get()); - add(ModItems.HUNTER_MINION_UPGRADE_SPECIAL.get()); - add(ModItems.OBLIVION_POTION.get()); - add(ModItems.VAMPIRE_CLOTHING_HAT.get()); - add(ModItems.VAMPIRE_CLOTHING_BOOTS.get()); - add(ModItems.VAMPIRE_CLOTHING_LEGS.get()); - add(ModItems.VAMPIRE_CLOTHING_CROWN.get()); - add(ModItems.GARLIC_FINDER.get()); - add(ModItems.DARK_SPRUCE_BOAT.get()); - add(ModItems.CURSED_SPRUCE_BOAT.get()); - add(ModItems.DARK_SPRUCE_CHEST_BOAT.get()); - add(ModItems.CURSED_SPRUCE_CHEST_BOAT.get()); - add(ModItems.FEEDING_ADAPTER.get()); - }}; + protected Stream getFlatItems() { + return Stream.of( + ModItems.HUNTER_COAT_CHEST_NORMAL, + ModItems.HUNTER_COAT_CHEST_ENHANCED, + ModItems.HUNTER_COAT_CHEST_ULTIMATE, + ModItems.HUNTER_COAT_FEET_NORMAL, + ModItems.HUNTER_COAT_FEET_ENHANCED, + ModItems.HUNTER_COAT_FEET_ULTIMATE, + ModItems.HUNTER_COAT_HEAD_NORMAL, + ModItems.HUNTER_COAT_HEAD_ENHANCED, + ModItems.HUNTER_COAT_HEAD_ULTIMATE, + ModItems.HUNTER_COAT_LEGS_NORMAL, + ModItems.HUNTER_COAT_LEGS_ENHANCED, + ModItems.HUNTER_COAT_LEGS_ULTIMATE, + ModItems.BLOOD_BUCKET, + ModItems.IMPURE_BLOOD_BUCKET, + ModItems.PURE_SALT, + ModItems.PURE_SALT_WATER, + ModItems.HUMAN_HEART, + ModItems.INJECTION_EMPTY, + ModItems.INJECTION_GARLIC, + ModItems.INJECTION_SANGUINARE, + ModItems.PURIFIED_GARLIC, + ModItems.SOUL_ORB_VAMPIRE, + ModItems.VAMPIRE_BLOOD_BOTTLE, + ModItems.VAMPIRE_CLOAK_BLACK_BLUE, + ModItems.VAMPIRE_CLOAK_BLACK_RED, + ModItems.VAMPIRE_CLOAK_BLACK_WHITE, + ModItems.VAMPIRE_CLOAK_WHITE_BLACK, + ModItems.VAMPIRE_CLOAK_RED_BLACK, + ModItems.VAMPIRE_FANG, + ModItems.WEAK_HUMAN_HEART, + ModItems.ITEM_TENT, + ModItems.PURE_BLOOD_0, + ModItems.PURE_BLOOD_1, + ModItems.PURE_BLOOD_2, + ModItems.PURE_BLOOD_3, + ModItems.PURE_BLOOD_4, + ModItems.VAMPIRE_MINION_BINDING, + ModItems.VAMPIRE_MINION_UPGRADE_SIMPLE, + ModItems.VAMPIRE_MINION_UPGRADE_ENHANCED, + ModItems.VAMPIRE_MINION_UPGRADE_SPECIAL, + ModItems.HUNTER_MINION_EQUIPMENT, + ModItems.HUNTER_MINION_UPGRADE_SIMPLE, + ModItems.HUNTER_MINION_UPGRADE_ENHANCED, + ModItems.HUNTER_MINION_UPGRADE_SPECIAL, + ModItems.OBLIVION_POTION, + ModItems.VAMPIRE_CLOTHING_HAT, + ModItems.VAMPIRE_CLOTHING_BOOTS, + ModItems.VAMPIRE_CLOTHING_LEGS, + ModItems.VAMPIRE_CLOTHING_CROWN, + ModItems.GARLIC_FINDER, + ModItems.DARK_SPRUCE_BOAT, + ModItems.CURSED_SPRUCE_BOAT, + ModItems.DARK_SPRUCE_CHEST_BOAT, + ModItems.CURSED_SPRUCE_CHEST_BOAT, + ModItems.FEEDING_ADAPTER, + ModItems.BLOOD_INFUSED_RAW_IRON, + ModItems.BLOOD_INFUSED_RAW_GOLD, + ModItems.BLOOD_INFUSED_IRON_INGOT, + ModItems.BLOOD_INFUSED_GOLD_INGOT, + ModItems.BLOOD_INFUSED_DIAMOND, + ModItems.BLOOD_INFUSED_NETHERITE_INGOT + ).map(DeferredItem::asItem); } protected Map getFlatItemWithTexture() { diff --git a/src/main/java/de/teamlapen/vampirism/data/provider/parent/RecipesProvider.java b/src/main/java/de/teamlapen/vampirism/data/provider/parent/RecipesProvider.java index 390793d75c..259cc304d3 100644 --- a/src/main/java/de/teamlapen/vampirism/data/provider/parent/RecipesProvider.java +++ b/src/main/java/de/teamlapen/vampirism/data/provider/parent/RecipesProvider.java @@ -3,17 +3,15 @@ import de.teamlapen.vampirism.api.items.oil.IOil; import de.teamlapen.vampirism.api.util.VResourceLocation; import de.teamlapen.vampirism.core.ModBlocks; -import de.teamlapen.vampirism.data.recipebuilder.AlchemicalCauldronRecipeBuilder; -import de.teamlapen.vampirism.data.recipebuilder.AlchemyTableRecipeBuilder; -import de.teamlapen.vampirism.data.recipebuilder.ShapedWeaponTableRecipeBuilder; -import de.teamlapen.vampirism.data.recipebuilder.ShapelessWeaponTableRecipeBuilder; +import de.teamlapen.vampirism.data.recipebuilder.*; import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.data.recipes.RecipeCategory; -import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.*; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -26,6 +24,7 @@ import net.neoforged.neoforge.common.crafting.CompoundIngredient; import net.neoforged.neoforge.common.crafting.DataComponentIngredient; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Arrays; @@ -91,4 +90,53 @@ protected ShapelessWeaponTableRecipeBuilder shapelessWeaponTable(RecipeCategory protected ShapelessWeaponTableRecipeBuilder shapelessWeaponTable(RecipeCategory category, ItemLike item, int count) { return ShapelessWeaponTableRecipeBuilder.shapelessWeaponTable(this.itemLookup, category, item, count); } + + protected InfuserRecipeBuilder infuser(ItemStack output) { + return InfuserRecipeBuilder.infuserRecipe(this.itemLookup, output); + } + + protected InfuserRecipeBuilder infuserUpgrade() { + return InfuserRecipeBuilder.infuserRecipe(this.itemLookup); + } + + protected void nineBlockStorageRecipes(RecipeCategory unpackedCategory, ItemStack unpacked, RecipeCategory packedCategory, ItemStack packed, String pathSuffix) { + this.nineBlockStorageRecipes(unpackedCategory, unpacked, packedCategory, packed, BuiltInRegistries.ITEM.getKey(packed.getItem()).withSuffix(pathSuffix), null, BuiltInRegistries.ITEM.getKey(unpacked.getItem()).withSuffix(pathSuffix), null); + } + + protected void nineBlockStorageRecipes( + RecipeCategory unpackedCategory, + ItemStack unpacked, + RecipeCategory packedCategory, + ItemStack packed, + ResourceLocation packedName, + @Nullable String packedGroup, + ResourceLocation unpackedName, + @Nullable String unpackedGroup + ) { + this.shapeless(unpackedCategory, unpacked) + .requires(DataComponentIngredient.of(false, packed)) + .group(unpackedGroup) + .unlockedBy(getHasName(packed.getItem()), this.has(packed.getItem())) + .save(this.output, ResourceKey.create(Registries.RECIPE, unpackedName)); + ShapedRecipeBuilder.shaped(this.itemLookup, packedCategory, packed) + .define('#', DataComponentIngredient.of(false, unpacked)) + .pattern("###") + .pattern("###") + .pattern("###") + .group(packedGroup) + .unlockedBy(getHasName(unpacked.getItem()), this.has(unpacked.getItem())) + .save(this.output, ResourceKey.create(Registries.RECIPE, packedName)); + } + + protected void netheriteSmithing(Ingredient ingredient, RecipeCategory category, Ingredient material, ItemStack resultItem, String pathSuffix) { + ModdedSmithingTransformRecipeBuilder.smithing( + Ingredient.of(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE), + ingredient, + material, + category, + resultItem + ) + .unlocks("has_netherite_ingot", this.has(ItemTags.NETHERITE_TOOL_MATERIALS)) + .save(this.output, ResourceKey.create(Registries.RECIPE, BuiltInRegistries.ITEM.getKey(resultItem.getItem()).withSuffix(pathSuffix).withSuffix("_smithing"))); + } } diff --git a/src/main/java/de/teamlapen/vampirism/data/recipebuilder/InfuserRecipeBuilder.java b/src/main/java/de/teamlapen/vampirism/data/recipebuilder/InfuserRecipeBuilder.java new file mode 100644 index 0000000000..eec8168c94 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/data/recipebuilder/InfuserRecipeBuilder.java @@ -0,0 +1,126 @@ +package de.teamlapen.vampirism.data.recipebuilder; + +import de.teamlapen.vampirism.recipes.InfuserRecipe; +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementRequirements; +import net.minecraft.advancements.AdvancementRewards; +import net.minecraft.advancements.Criterion; +import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.recipes.RecipeBuilder; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.Recipe; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.*; + +public class InfuserRecipeBuilder implements RecipeBuilder { + private final HolderLookup.RegistryLookup itemLookup; + @Nullable + private final ItemStack result; + protected String group = ""; + protected final Map> criteria = new LinkedHashMap<>(); + private final List ingredients = Arrays.asList(new Ingredient[4]); + private Ingredient input; + private final List results = Arrays.asList(new ItemStack[3]); + private int burnTime = 200; + + public InfuserRecipeBuilder(HolderLookup.RegistryLookup itemLookup, ItemStack result) { + this.itemLookup = itemLookup; + this.result = result; + } + + public InfuserRecipeBuilder(HolderLookup.RegistryLookup itemLookup) { + this.itemLookup = itemLookup; + this.result = null; + } + + @Override + public @NotNull InfuserRecipeBuilder unlockedBy(@NotNull String name, @NotNull Criterion criterion) { + this.criteria.put(name, criterion); + return this; + } + + @Override + public @NotNull InfuserRecipeBuilder group(@Nullable String groupName) { + this.group = groupName; + return this; + } + + public InfuserRecipeBuilder ingredient(Ingredient ingredient) { + int i = ingredients.indexOf(null); + if (i == -1) { + throw new IllegalArgumentException("Ingredients are already filled"); + } + this.ingredients.set(i, ingredient); + return this; + } + + public InfuserRecipeBuilder ingredient(int number, Ingredient ingredient) { + this.ingredients.set(number, ingredient); + return this; + } + + public InfuserRecipeBuilder ingredients(Ingredient ingredient) { + Collections.fill(this.ingredients, ingredient); + return this; + } + + public InfuserRecipeBuilder input(Ingredient input) { + this.input = input; + return this; + } + + public InfuserRecipeBuilder burnTime(int burnTime) { + this.burnTime = burnTime; + return this; + } + + public InfuserRecipeBuilder result(ItemStack result) { + int i = results.indexOf(null); + if (i == -1) { + throw new IllegalArgumentException("Results are already filled"); + } + this.results.set(i, result); + return this; + } + + public InfuserRecipeBuilder result(int number, ItemStack result) { + this.results.set(number, result); + return this; + } + + public InfuserRecipeBuilder results(ItemStack result) { + Collections.fill(this.results, result); + return this; + } + + @Override + public @NotNull Item getResult() { + return this.result.getItem(); + } + + @Override + public void save(@NotNull RecipeOutput recipeOutput, @NotNull ResourceKey> key) { + Advancement.Builder advancement = recipeOutput.advancement() + .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(key)) + .rewards(AdvancementRewards.Builder.recipe(key)) + .requirements(AdvancementRequirements.Strategy.OR); + this.criteria.forEach(advancement::addCriterion); + var recipe = new InfuserRecipe(this.group, this.ingredients.get(0), this.ingredients.get(1), this.ingredients.get(2), this.ingredients.get(3), this.input, this.results.get(0), this.results.get(1), this.results.get(2), Optional.ofNullable(this.result), this.burnTime); + recipeOutput.accept(key, recipe, advancement.build(key.location().withPrefix("recipes/infuser/"))); + } + + public static InfuserRecipeBuilder infuserRecipe(HolderLookup.RegistryLookup itemLookup, ItemStack result) { + return new InfuserRecipeBuilder(itemLookup, result); + } + + public static InfuserRecipeBuilder infuserRecipe(HolderLookup.RegistryLookup itemLookup) { + return new InfuserRecipeBuilder(itemLookup); + } +} diff --git a/src/main/java/de/teamlapen/vampirism/data/recipebuilder/ModdedSmithingTransformRecipeBuilder.java b/src/main/java/de/teamlapen/vampirism/data/recipebuilder/ModdedSmithingTransformRecipeBuilder.java new file mode 100644 index 0000000000..e25bf1e9d5 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/data/recipebuilder/ModdedSmithingTransformRecipeBuilder.java @@ -0,0 +1,75 @@ +package de.teamlapen.vampirism.data.recipebuilder; + +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementRequirements; +import net.minecraft.advancements.AdvancementRewards; +import net.minecraft.advancements.Criterion; +import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.SmithingTransformRecipeBuilder; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.SmithingTransformRecipe; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Optional; + +public class ModdedSmithingTransformRecipeBuilder { + private final Ingredient template; + private final Ingredient base; + private final Ingredient addition; + private final RecipeCategory category; + private final ItemStack result; + private final Map> criteria = new LinkedHashMap<>(); + + public ModdedSmithingTransformRecipeBuilder(Ingredient template, Ingredient base, Ingredient addition, RecipeCategory category, ItemStack result) { + this.category = category; + this.template = template; + this.base = base; + this.addition = addition; + this.result = result; + } + + public static ModdedSmithingTransformRecipeBuilder smithing( + Ingredient template, Ingredient base, Ingredient addition, RecipeCategory category, ItemStack result + ) { + return new ModdedSmithingTransformRecipeBuilder(template, base, addition, category, result); + } + + public ModdedSmithingTransformRecipeBuilder unlocks(String key, Criterion criterion) { + this.criteria.put(key, criterion); + return this; + } + + public void save(RecipeOutput recipeOutput, String recipeId) { + this.save(recipeOutput, ResourceKey.create(Registries.RECIPE, ResourceLocation.parse(recipeId))); + } + + public void save(RecipeOutput output, ResourceKey> resourceKey) { + this.ensureValid(resourceKey); + Advancement.Builder advancement$builder = output.advancement() + .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(resourceKey)) + .rewards(AdvancementRewards.Builder.recipe(resourceKey)) + .requirements(AdvancementRequirements.Strategy.OR); + this.criteria.forEach(advancement$builder::addCriterion); + SmithingTransformRecipe smithingtransformrecipe = new SmithingTransformRecipe( + Optional.of(this.template), Optional.of(this.base), Optional.of(this.addition), this.result + ); + output.accept( + resourceKey, smithingtransformrecipe, advancement$builder.build(resourceKey.location().withPrefix("recipes/" + this.category.getFolderName() + "/")) + ); + } + + private void ensureValid(ResourceKey> recipe) { + if (this.criteria.isEmpty()) { + throw new IllegalStateException("No way of obtaining recipe " + recipe.location()); + } + } +} diff --git a/src/main/java/de/teamlapen/vampirism/inventory/HunterTableMenu.java b/src/main/java/de/teamlapen/vampirism/inventory/HunterTableMenu.java index b82c73d4d3..336e980b65 100644 --- a/src/main/java/de/teamlapen/vampirism/inventory/HunterTableMenu.java +++ b/src/main/java/de/teamlapen/vampirism/inventory/HunterTableMenu.java @@ -53,7 +53,7 @@ public Optional getRequirement() { return ItemCombinerMenuSlotDefinition.create() .withSlot(0, 15, 28, stack -> stack.is(Items.BOOK)) .withSlot(1, 42, 28, stack -> stack.is(ModItems.VAMPIRE_FANG.get())) - .withSlot(2, 69, 28, stack -> tableRequirement.filter(req -> req.pureBloodLevel() <= (stack.getItem() instanceof PureBloodItem pure ? pure.getLevel() : -1)).isPresent()) + .withSlot(2, 69, 28, stack -> tableRequirement.filter(req -> req.pureBloodLevel() <= (stack.getItem() instanceof PureBloodItem pure ? pure.getLevel(stack) : -1)).isPresent()) .withSlot(3, 96, 28, stack -> stack.is(ModItems.VAMPIRE_BOOK.get())) .withResultSlot(4, 146, 28) .build(); diff --git a/src/main/java/de/teamlapen/vampirism/inventory/InfuserMenu.java b/src/main/java/de/teamlapen/vampirism/inventory/InfuserMenu.java new file mode 100644 index 0000000000..0bde847fdf --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/inventory/InfuserMenu.java @@ -0,0 +1,146 @@ +package de.teamlapen.vampirism.inventory; + +import de.teamlapen.vampirism.blockentity.InfuserBlockEntity; +import de.teamlapen.vampirism.blockentity.slots.InfuserSlots; +import de.teamlapen.vampirism.core.ModMenus; +import de.teamlapen.vampirism.util.RecipeHelper; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.util.Mth; +import net.minecraft.world.Container; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.*; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipePropertySet; +import net.minecraft.world.level.Level; +import net.neoforged.neoforge.network.IContainerFactory; +import org.jetbrains.annotations.NotNull; + +public class InfuserMenu extends AbstractContainerMenu implements InfuserSlots { + + protected final Level level; + private final ContainerData data; + private final Container container; + private final RecipePropertySet acceptedIngredients; + private final RecipePropertySet acceptedInputs; + + public InfuserMenu(int containerId, Inventory inventory) { + this(containerId, inventory, new SimpleContainer(9), new SimpleContainerData(2)); + } + + public InfuserMenu(int containerId, Inventory inventory, Container container, ContainerData data) { + super(ModMenus.INFUSER_MENU.get(), containerId); + checkContainerSize(container, 9); + checkContainerDataCount(data, 2); + this.container = container; + this.data = data; + this.level = inventory.player.level(); + this.addInputSlots(container); + this.addOutputSlots(container); + this.addStandardInventorySlots(inventory, 8, 84+15); + this.addDataSlots(data); + this.acceptedIngredients = RecipeHelper.createLocalInfuserRecipePropertySet(this.level); + this.acceptedInputs = RecipeHelper.createLocalInfuserRecipeInputPropertySet(this.level); + } + + private void addInputSlots(Container container) { + this.addSlot(new Slot(container, 0, 7, 16)); + this.addSlot(new Slot(container, 1, 29, 16)); + this.addSlot(new Slot(container, 2, 51, 16)); + this.addSlot(new Slot(container, 3, 73, 16)); + this.addSlot(new Slot(container, 4, 97, 33+9)); + } + + private void addOutputSlots(Container container) { + this.addSlot(new ResultSlot(container, 5, 18, 59+9)); + this.addSlot(new ResultSlot(container, 6, 40, 59+9)); + this.addSlot(new ResultSlot(container, 7, 62, 59+9)); + this.addSlot(new ResultSlot(container, 8, 150, 32+9)); + } + + @Override + public @NotNull ItemStack quickMoveStack(@NotNull Player player, int index) { + ItemStack itemstack = ItemStack.EMPTY; + Slot slot = this.slots.get(index); + if (slot.hasItem()) { + ItemStack itemstack1 = slot.getItem(); + itemstack = itemstack1.copy(); + if (index >= SLOT_INGREDIENT_1 && index <= SLOT_RESULT) { + if (!this.moveItemStackTo(itemstack1, SLOT_RESULT + 1, SLOT_RESULT + 36 +1, false)) { + return ItemStack.EMPTY; + } + } else{ + if (isIngredient(itemstack1)) { + if (!this.moveItemStackTo(itemstack1, SLOT_INGREDIENT_1, SLOT_INGREDIENT_4 +1, false)) { + return ItemStack.EMPTY; + } + } else if (isInput(itemstack1)) { + if (!this.moveItemStackTo(itemstack1, SLOT_INPUT, SLOT_INPUT + 1, false)) { + return ItemStack.EMPTY; + } + } else if (index > SLOT_RESULT && index <= SLOT_RESULT + 27) { + if (!this.moveItemStackTo(itemstack1, SLOT_RESULT +1 + 27, SLOT_RESULT + 1 + 36, false)) { + return ItemStack.EMPTY; + } + } else if (index > SLOT_RESULT + 27 && index <= SLOT_RESULT + 27 + 9 && !this.moveItemStackTo(itemstack1, SLOT_RESULT+1, SLOT_RESULT + 27 + 1, false)) { + return ItemStack.EMPTY; + } else if (!this.moveItemStackTo(itemstack1, SLOT_RESULT+1, SLOT_RESULT + 36 +1, false)) { + return ItemStack.EMPTY; + } + } + if (itemstack1.isEmpty()) { + slot.setByPlayer(ItemStack.EMPTY); + } else { + slot.setChanged(); + } + + if (itemstack1.getCount() == itemstack.getCount()) { + return ItemStack.EMPTY; + } + + slot.onTake(player, itemstack1); + } + return itemstack; + } + + private boolean isIngredient(ItemStack stack) { + return this.acceptedIngredients.test(stack); + } + + private boolean isInput(ItemStack stack) { + return this.acceptedInputs.test(stack); + } + + @Override + public boolean stillValid(@NotNull Player player) { + return this.container.stillValid(player); + + } + + public float getBurnProgress() { + int i = this.data.get(InfuserBlockEntity.COOKING_TIMER); + int j = this.data.get(InfuserBlockEntity.TOTAL_COOKING_TIMER); + return j != 0 && i != 0 ? Mth.clamp((float)i / (float)j, 0.0F, 1.0F) : 0.0F; + } + + public static class Factory implements IContainerFactory { + + @Override + public @NotNull InfuserMenu create(int windowId, @NotNull Inventory inv, @NotNull RegistryFriendlyByteBuf data) { + return new InfuserMenu(windowId, inv); + } + } + + private static class ResultSlot extends Slot { + + public ResultSlot(Container container, int slot, int x, int y) { + super(container, slot, x, y); + } + + @Override + public boolean mayPlace(@NotNull ItemStack stack) { + return false; + } + } +} diff --git a/src/main/java/de/teamlapen/vampirism/items/HeartSeekerItem.java b/src/main/java/de/teamlapen/vampirism/items/HeartSeekerItem.java index 4e68640e53..823b968d75 100644 --- a/src/main/java/de/teamlapen/vampirism/items/HeartSeekerItem.java +++ b/src/main/java/de/teamlapen/vampirism/items/HeartSeekerItem.java @@ -1,25 +1,24 @@ package de.teamlapen.vampirism.items; +import de.teamlapen.lib.lib.util.ModDisplayItemGenerator; import de.teamlapen.vampirism.api.items.IItemWithTier; import de.teamlapen.vampirism.config.VampirismConfig; -import de.teamlapen.vampirism.core.ModItems; +import de.teamlapen.vampirism.core.ModDataComponents; import de.teamlapen.vampirism.core.tags.ModItemTags; +import de.teamlapen.vampirism.items.component.PureLevel; import net.minecraft.network.chat.Component; import net.minecraft.tags.BlockTags; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ToolMaterial; -import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; -public class HeartSeekerItem extends VampireSwordItem implements IItemWithTier { +public class HeartSeekerItem extends VampireSwordItem implements IItemWithTier, ModDisplayItemGenerator.CreativeTabItemProvider { - public static final ToolMaterial NORMAL = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL, 500, -3.6f, 1.7F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_SIMPLE); - public static final ToolMaterial ENHANCED = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 1750, -3.5f, 2.7F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); - public static final ToolMaterial ULTIMATE = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2500, -3.4f, 3.7F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); + public static final ToolMaterial IRON = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL, 500, -3.6f, 1.7F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_SIMPLE); + public static final ToolMaterial DIAMOND = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 1750, -3.5f, 2.7F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); + public static final ToolMaterial NETHERITE = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2500, -3.4f, 3.7F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); private final @NotNull TIER tier; @@ -30,8 +29,11 @@ public HeartSeekerItem(@NotNull ToolMaterial material, @NotNull TIER tier, float @Override public void appendHoverText(@NotNull ItemStack stack, @Nullable TooltipContext context, @NotNull List tooltip, @NotNull TooltipFlag flagIn) { - addTierInformation(tooltip); super.appendHoverText(stack, context, tooltip, flagIn); + + if (flagIn.hasAltDown()) { + tooltip.add(Component.translatable("Consumes %s blood per hit", getChargeUsage(stack))); + } } @Override @@ -45,12 +47,20 @@ public float getXpRepairRatio(ItemStack stack) { } @Override - protected float getChargeUsage() { - return (float) ((VampirismConfig.BALANCE.vampireSwordBloodUsageFactor.get() / 100f) * (getVampirismTier().ordinal() + 2) / 2f); + protected float getChargeUsage(ItemStack stack) { + return (float) ((VampirismConfig.BALANCE.vampireSwordBloodUsageFactor.get() / 100f) * (getVampirismTier().ordinal() + 2) / 2f) * getPurityChargeUsageModifier(stack); } @Override protected float getChargingFactor(ItemStack stack) { - return (float) (VampirismConfig.BALANCE.vampireSwordChargingFactor.get() * 2f / (getVampirismTier().ordinal() + 2f)); + return (float) (VampirismConfig.BALANCE.vampireSwordChargingFactor.get() * 2f / (getVampirismTier().ordinal() + 2f)) * getPurityChargeSpeedModifier(stack); + } + + @Override + public void generateCreativeTab(CreativeModeTab.@NotNull ItemDisplayParameters parameters, CreativeModeTab.Output output) { + output.accept(PureLevel.pureBlood(this, 0)); + for (int i = 1; i < 5; i++) { + output.accept(PureLevel.pureBlood(this, i), CreativeModeTab.TabVisibility.SEARCH_TAB_ONLY); + } } } diff --git a/src/main/java/de/teamlapen/vampirism/items/HeartStrikerItem.java b/src/main/java/de/teamlapen/vampirism/items/HeartStrikerItem.java index e55c799059..9a37d8d15e 100644 --- a/src/main/java/de/teamlapen/vampirism/items/HeartStrikerItem.java +++ b/src/main/java/de/teamlapen/vampirism/items/HeartStrikerItem.java @@ -1,26 +1,23 @@ package de.teamlapen.vampirism.items; +import de.teamlapen.lib.lib.util.ModDisplayItemGenerator; import de.teamlapen.vampirism.api.items.IItemWithTier; import de.teamlapen.vampirism.config.VampirismConfig; -import de.teamlapen.vampirism.core.ModItems; import de.teamlapen.vampirism.core.tags.ModItemTags; +import de.teamlapen.vampirism.items.component.PureLevel; import net.minecraft.network.chat.Component; import net.minecraft.tags.BlockTags; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ToolMaterial; -import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; -public class HeartStrikerItem extends VampireSwordItem implements IItemWithTier { +public class HeartStrikerItem extends VampireSwordItem implements IItemWithTier, ModDisplayItemGenerator.CreativeTabItemProvider { - public static final ToolMaterial NORMAL = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL, 500, -4.1f, 2.2F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_SIMPLE); - public static final ToolMaterial ENHANCED = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 1750, -4.0f, 4.2F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); - public static final ToolMaterial ULTIMATE = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2500, -3.9f, 6.2F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); + public static final ToolMaterial IRON = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL, 500, -4.1f, 3.2F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_SIMPLE); + public static final ToolMaterial DIAMOND = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 1750, -4.0f, 5.2F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); + public static final ToolMaterial NETHERITE = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2500, -3.9f, 7.2F, 14, ModItemTags.VAMPIRE_SWORD_REPAIRABLE_ENHANCED); private final @NotNull TIER tier; @@ -29,12 +26,6 @@ public HeartStrikerItem(@NotNull ToolMaterial material, @NotNull TIER tier, floa this.tier = tier; } - @Override - public void appendHoverText(@NotNull ItemStack stack, @Nullable TooltipContext context, @NotNull List tooltip, @NotNull TooltipFlag flagIn) { - addTierInformation(tooltip); - super.appendHoverText(stack, context, tooltip, flagIn); - } - @Override public TIER getVampirismTier() { return tier; @@ -46,12 +37,20 @@ public float getXpRepairRatio(ItemStack stack) { } @Override - protected float getChargeUsage() { - return (float) ((VampirismConfig.BALANCE.vampireSwordBloodUsageFactor.get() / 100f) * (getVampirismTier().ordinal() + 2) / 2f); + protected float getChargeUsage(ItemStack stack) { + return (float) ((VampirismConfig.BALANCE.vampireSwordBloodUsageFactor.get() / 100f) * (getVampirismTier().ordinal() + 2) / 2f) * getPurityChargeUsageModifier(stack); } @Override protected float getChargingFactor(ItemStack stack) { - return (float) (VampirismConfig.BALANCE.vampireSwordChargingFactor.get() * 2f / (getVampirismTier().ordinal() + 2f)); + return (float) (VampirismConfig.BALANCE.vampireSwordChargingFactor.get() * 2f / (getVampirismTier().ordinal() + 2f)) * getPurityChargeSpeedModifier(stack); + } + + @Override + public void generateCreativeTab(CreativeModeTab.@NotNull ItemDisplayParameters parameters, CreativeModeTab.Output output) { + output.accept(PureLevel.pureBlood(this, 0)); + for (int i = 1; i < 5; i++) { + output.accept(PureLevel.pureBlood(this, i), CreativeModeTab.TabVisibility.SEARCH_TAB_ONLY); + } } } diff --git a/src/main/java/de/teamlapen/vampirism/items/ItemEventHandler.java b/src/main/java/de/teamlapen/vampirism/items/ItemEventHandler.java index 20e6fdbdff..7ac168b060 100644 --- a/src/main/java/de/teamlapen/vampirism/items/ItemEventHandler.java +++ b/src/main/java/de/teamlapen/vampirism/items/ItemEventHandler.java @@ -21,6 +21,8 @@ public static void onItemAttributeModifier(ItemAttributeModifierEvent event) { if (stack.getItem() instanceof VampireSwordItem sword) { event.addModifier(Attributes.ATTACK_DAMAGE, new AttributeModifier(BuiltInRegistries.ITEM.getKey(sword), sword.getAttackDamageModifier(stack), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND); event.addModifier(Attributes.ATTACK_SPEED, new AttributeModifier(BuiltInRegistries.ITEM.getKey(sword), sword.getSpeedModifier(stack), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND); + event.addModifier(Attributes.ARMOR_TOUGHNESS, new AttributeModifier(BuiltInRegistries.ITEM.getKey(sword).withSuffix("_purity"), sword.getPurityArmorToughnessModifier(stack) , AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND); + event.addModifier(Attributes.ENTITY_INTERACTION_RANGE, new AttributeModifier(BuiltInRegistries.ITEM.getKey(sword).withSuffix("_purity"), sword.getPurityInteractionRangeModifier(stack) , AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND); } } } diff --git a/src/main/java/de/teamlapen/vampirism/items/PureBloodItem.java b/src/main/java/de/teamlapen/vampirism/items/PureBloodItem.java index d8392ff955..ea85564450 100644 --- a/src/main/java/de/teamlapen/vampirism/items/PureBloodItem.java +++ b/src/main/java/de/teamlapen/vampirism/items/PureBloodItem.java @@ -3,6 +3,7 @@ import de.teamlapen.vampirism.api.VReference; import de.teamlapen.vampirism.api.VampirismAPI; import de.teamlapen.vampirism.api.util.VResourceLocation; +import de.teamlapen.vampirism.core.ModDataComponents; import de.teamlapen.vampirism.core.ModEffects; import de.teamlapen.vampirism.core.ModFactions; import de.teamlapen.vampirism.core.ModItems; @@ -10,6 +11,7 @@ import de.teamlapen.vampirism.entity.player.vampire.VampireLeveling; import de.teamlapen.vampirism.entity.player.vampire.VampirePlayer; import de.teamlapen.vampirism.entity.vampire.DrinkBloodContext; +import de.teamlapen.vampirism.items.component.PureLevel; import de.teamlapen.vampirism.items.consume.BloodConsume; import de.teamlapen.vampirism.items.consume.BloodFoodProperties; import de.teamlapen.vampirism.items.consume.FactionBasedConsumeEffect; @@ -55,8 +57,6 @@ public class PureBloodItem extends Item { }; } - private final int level; - public PureBloodItem(int level, Item.Properties properties) { super(properties.stacksTo(16).overrideDescription(Util.makeDescriptionId("item", VResourceLocation.mod("pure_blood"))).component(DataComponents.CONSUMABLE, Consumables.defaultDrink() .onConsume( @@ -64,21 +64,20 @@ public PureBloodItem(int level, Item.Properties properties) { .add(new ApplyStatusEffectsConsumeEffect(new MobEffectInstance(ModEffects.SATURATION))) .add(new BloodConsume(50, 0.4f + (0.15f * level), false)) .build() - ).build())); - this.level = level; + ).build()).component(ModDataComponents.PURE_LEVEL, new PureLevel(level))); } @Override public void appendHoverText(@NotNull ItemStack stack, @Nullable TooltipContext context, @NotNull List tooltip, @NotNull TooltipFlag flagIn) { - tooltip.add(Component.translatable("item.vampirism.pure_blood.purity").append(Component.literal(": " + (level + 1 + "/" + COUNT))).withStyle(ChatFormatting.RED)); + tooltip.add(Component.translatable("item.vampirism.pure_blood.purity").append(Component.literal(": " + (getLevel(stack) + 1 + "/" + COUNT))).withStyle(ChatFormatting.RED)); } - public int getLevel() { - return this.level; + public int getLevel(ItemStack stack) { + return stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.LOW).level(); } - public @NotNull Component getCustomName() { - return Component.translatable(this.getDescriptionId().replaceAll("_\\d", "")).append(Component.literal(" " + (level + 1))); + public @NotNull Component getCustomName(ItemStack stack) { + return Component.translatable(this.getDescriptionId().replaceAll("_\\d", "")).append(Component.literal(" " + (getLevel(stack) + 1))); } @Override @@ -96,7 +95,7 @@ public ItemUseAnimation getUseAnimation(@NotNull ItemStack stack) { @Override public InteractionResult use(@NotNull Level worldIn, @NotNull Player playerIn, @NotNull InteractionHand handIn) { int playerLevel = VampirismAPI.factionPlayerHandler(playerIn).getCurrentLevel(ModFactions.VAMPIRE); - if (VampireLeveling.getInfusionRequirement(playerLevel).filter(x -> x.pureBloodLevel() < getLevel()).isPresent()) { + if (VampireLeveling.getInfusionRequirement(playerLevel).filter(x -> x.pureBloodLevel() < getLevel(getDefaultInstance())).isPresent()) { playerIn.startUsingItem(handIn); return InteractionResult.SUCCESS_SERVER; } diff --git a/src/main/java/de/teamlapen/vampirism/items/PureLevelBlockItem.java b/src/main/java/de/teamlapen/vampirism/items/PureLevelBlockItem.java new file mode 100644 index 0000000000..9cab3d4556 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/items/PureLevelBlockItem.java @@ -0,0 +1,26 @@ +package de.teamlapen.vampirism.items; + +import de.teamlapen.vampirism.core.ModDataComponents; +import de.teamlapen.vampirism.items.component.PureLevel; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class PureLevelBlockItem extends BlockItem { + + public PureLevelBlockItem(Block block, Properties properties) { + super(block, properties); + } + + @Override + public void appendHoverText(@NotNull ItemStack stack, @NotNull TooltipContext context, @NotNull List tooltipComponents, @NotNull TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("text.vampirism.purity", stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.EMPTY).level() + 1).withStyle(ChatFormatting.DARK_RED)); + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); + } +} diff --git a/src/main/java/de/teamlapen/vampirism/items/PureLevelItem.java b/src/main/java/de/teamlapen/vampirism/items/PureLevelItem.java new file mode 100644 index 0000000000..c0e828d955 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/items/PureLevelItem.java @@ -0,0 +1,36 @@ +package de.teamlapen.vampirism.items; + +import de.teamlapen.lib.lib.util.ModDisplayItemGenerator; +import de.teamlapen.vampirism.core.ModDataComponents; +import de.teamlapen.vampirism.items.component.PureLevel; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class PureLevelItem extends Item implements ModDisplayItemGenerator.CreativeTabItemProvider { + + public PureLevelItem(Properties properties) { + super(properties.component(ModDataComponents.PURE_LEVEL, PureLevel.LOW)); + } + + @Override + public void appendHoverText(@NotNull ItemStack stack, @NotNull TooltipContext context, @NotNull List tooltipComponents, @NotNull TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("text.vampirism.purity", stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.EMPTY).level() + 1).withStyle(ChatFormatting.DARK_RED)); + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); + + } + + @Override + public void generateCreativeTab(CreativeModeTab.@NotNull ItemDisplayParameters parameters, CreativeModeTab.Output output) { + output.accept(PureLevel.pureBlood(this, 0)); + for (int i = 1; i < 5; i++) { + output.accept(PureLevel.pureBlood(this, i), CreativeModeTab.TabVisibility.SEARCH_TAB_ONLY); + } + } +} diff --git a/src/main/java/de/teamlapen/vampirism/items/VampireSwordItem.java b/src/main/java/de/teamlapen/vampirism/items/VampireSwordItem.java index b4a7f7d165..b98fe58b83 100644 --- a/src/main/java/de/teamlapen/vampirism/items/VampireSwordItem.java +++ b/src/main/java/de/teamlapen/vampirism/items/VampireSwordItem.java @@ -15,6 +15,7 @@ import de.teamlapen.vampirism.entity.player.vampire.skills.VampireSkills; import de.teamlapen.vampirism.items.component.BloodCharged; import de.teamlapen.vampirism.items.component.FactionRestriction; +import de.teamlapen.vampirism.items.component.PureLevel; import de.teamlapen.vampirism.items.component.SwordTraining; import de.teamlapen.vampirism.particle.FlyingBloodParticleOptions; import de.teamlapen.vampirism.particle.GenericParticleOptions; @@ -50,12 +51,13 @@ public abstract class VampireSwordItem extends VampirismSwordItem implements IBl private final float trainedAttackSpeedIncrease; public VampireSwordItem(@NotNull ToolMaterial material, int attackDamage, float trainSpeedIncrease, @NotNull Properties prop) { - super(material, attackDamage, material.speed(), FactionRestriction.apply(ModFactions.VAMPIRE, prop)); + super(material, attackDamage, material.speed(), FactionRestriction.apply(ModFactions.VAMPIRE, prop).component(ModDataComponents.BLOOD_CHARGED, new BloodCharged(0))); this.trainedAttackSpeedIncrease = trainSpeedIncrease; } @Override public void appendHoverText(@NotNull ItemStack stack, @Nullable TooltipContext context, @NotNull List tooltip, @NotNull TooltipFlag flagIn) { + tooltip.add(Component.translatable("text.vampirism.purity", stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.LOW).level() + 1).withStyle(ChatFormatting.DARK_RED)); float charged = getChargePercentage(stack); float trained = getTrained(stack, VampirismMod.proxy.getClientPlayer()); tooltip.add(Component.translatable("text.vampirism.sword_charged").append(Component.literal(" " + ((int) Math.ceil(charged * 100f)) + "%")).withStyle(ChatFormatting.DARK_AQUA)); @@ -134,7 +136,7 @@ public boolean hurtEnemy(@NotNull ItemStack stack, @NotNull LivingEntity target, } //Consume blood float charged = getChargePercentage(stack); - charged -= getChargeUsage(); + charged -= getChargeUsage(stack); setCharged(stack, charged); attacker.setItemInHand(InteractionHand.MAIN_HAND, stack); @@ -247,7 +249,21 @@ protected float getSpeedModifier(@NotNull ItemStack stack) { /** * @return The amount of charge consumed per hit */ - protected abstract float getChargeUsage(); + protected abstract float getChargeUsage(ItemStack stack); + + protected float getPurityArmorToughnessModifier(@NotNull ItemStack stack) { + return switch (stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.LOW).level()) { + case 0 -> 0; + case 1 -> 0.035f; + case 2 -> 0.06f; + case 3 -> 0.1f; + default -> 0.15f; + }; + } + + protected float getPurityInteractionRangeModifier(@NotNull ItemStack stack) { + return Math.clamp((stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.LOW).level()/4f) * 0.5f,0f,0.5f); + } /** * Gets the charged value from the tag compound @@ -299,4 +315,26 @@ private void spawnChargingParticle(@NotNull LivingEntity player, boolean mainHan ModParticles.spawnParticleClient(player.getCommandSenderWorld(), new FlyingBloodParticleOptions((int) (4.0F / (player.getRandom().nextFloat() * 0.6F + 0.1F)), true, pos.x, pos.y, pos.z), playerPos.x, playerPos.y, playerPos.z); } + protected float getPurityChargeUsageModifier(ItemStack stack) { + var purity = stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.LOW).level(); + return switch (purity) { + case 0 -> 1f; + case 1 -> 0.9f; + case 2 -> 0.8f; + case 3 -> 0.6f; + default -> 0.4f; + }; + } + + protected float getPurityChargeSpeedModifier(ItemStack stack) { + var purity = stack.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.LOW).level(); + return switch (purity) { + case 0 -> 1f; + case 1 -> 1.2f; + case 2 -> 1.4f; + case 3 -> 1.6f; + default -> 2f; + }; + } + } diff --git a/src/main/java/de/teamlapen/vampirism/items/component/PureLevel.java b/src/main/java/de/teamlapen/vampirism/items/component/PureLevel.java new file mode 100644 index 0000000000..a49012b10a --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/items/component/PureLevel.java @@ -0,0 +1,34 @@ +package de.teamlapen.vampirism.items.component; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import de.teamlapen.vampirism.core.ModDataComponents; +import de.teamlapen.vampirism.core.ModItems; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; + +public record PureLevel(int level) { + + public static final PureLevel EMPTY = new PureLevel(-1); + public static final PureLevel LOW = new PureLevel(0); + + public static final Codec CODEC = RecordCodecBuilder.create(inst -> inst.group( + Codec.INT.fieldOf("level").forGetter(PureLevel::level) + ).apply(inst, PureLevel::new)); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.INT, PureLevel::level, + PureLevel::new + ); + + public static ItemStack pureBlood(ItemStack stack, int level) { + stack.set(ModDataComponents.PURE_LEVEL, new PureLevel(level)); + return stack; + } + public static ItemStack pureBlood(ItemLike item, int level) { + return pureBlood(item.asItem().getDefaultInstance(), level); + } +} diff --git a/src/main/java/de/teamlapen/vampirism/misc/VampirismCreativeTab.java b/src/main/java/de/teamlapen/vampirism/misc/VampirismCreativeTab.java index 94dde653c8..eed502509b 100644 --- a/src/main/java/de/teamlapen/vampirism/misc/VampirismCreativeTab.java +++ b/src/main/java/de/teamlapen/vampirism/misc/VampirismCreativeTab.java @@ -43,8 +43,12 @@ private void addItems() { addArmor(); addItemGen(BLOOD_BOTTLE); - addItem(BLOOD_INFUSED_IRON_INGOT); - addItem(BLOOD_INFUSED_ENHANCED_IRON_INGOT); + addItemGen(BLOOD_INFUSED_RAW_IRON); + addItemGen(BLOOD_INFUSED_RAW_GOLD); + addItemGen(BLOOD_INFUSED_IRON_INGOT); + addItemGen(BLOOD_INFUSED_GOLD_INGOT); + addItemGen(BLOOD_INFUSED_DIAMOND); + addItemGen(BLOOD_INFUSED_NETHERITE_INGOT); addItem(GARLIC_DIFFUSER_CORE); addItem(GARLIC_DIFFUSER_CORE_IMPROVED); @@ -312,12 +316,12 @@ private void addArmor() { } private void addWeapons() { - addItem(HEART_SEEKER_NORMAL); - addItem(HEART_SEEKER_ENHANCED); - addItem(HEART_SEEKER_ULTIMATE); - addItem(HEART_STRIKER_NORMAL); - addItem(HEART_STRIKER_ENHANCED); - addItem(HEART_STRIKER_ULTIMATE); + addItemGen(HEART_SEEKER_NORMAL); + addItemGen(HEART_SEEKER_ENHANCED); + addItemGen(HEART_SEEKER_ULTIMATE); + addItemGen(HEART_STRIKER_NORMAL); + addItemGen(HEART_STRIKER_ENHANCED); + addItemGen(HEART_STRIKER_ULTIMATE); addItemGen(HUNTER_AXE_NORMAL); addItemGen(HUNTER_AXE_ENHANCED); diff --git a/src/main/java/de/teamlapen/vampirism/modcompat/jei/VampirismJEIPlugin.java b/src/main/java/de/teamlapen/vampirism/modcompat/jei/VampirismJEIPlugin.java index d72ab0c9c0..176c1daf99 100755 --- a/src/main/java/de/teamlapen/vampirism/modcompat/jei/VampirismJEIPlugin.java +++ b/src/main/java/de/teamlapen/vampirism/modcompat/jei/VampirismJEIPlugin.java @@ -173,7 +173,7 @@ public void registerVanillaCategoryExtensions(@NotNull IVanillaCategoryExtension items.put(leather, Lists.newArrayList(ModItems.ARMOR_OF_SWIFTNESS_CHEST_NORMAL.get(), ModItems.ARMOR_OF_SWIFTNESS_CHEST_ENHANCED.get(), ModItems.ARMOR_OF_SWIFTNESS_CHEST_ULTIMATE.get(), ModItems.ARMOR_OF_SWIFTNESS_HEAD_NORMAL.get(), ModItems.ARMOR_OF_SWIFTNESS_HEAD_ENHANCED.get(), ModItems.ARMOR_OF_SWIFTNESS_HEAD_ULTIMATE.get(), ModItems.ARMOR_OF_SWIFTNESS_LEGS_NORMAL.get(), ModItems.ARMOR_OF_SWIFTNESS_LEGS_ENHANCED.get(), ModItems.ARMOR_OF_SWIFTNESS_LEGS_ULTIMATE.get(), ModItems.ARMOR_OF_SWIFTNESS_FEET_NORMAL.get(), ModItems.ARMOR_OF_SWIFTNESS_FEET_ENHANCED.get(), ModItems.ARMOR_OF_SWIFTNESS_FEET_ULTIMATE.get())); Ingredient bloodIngot = Ingredient.of(ModItems.BLOOD_INFUSED_IRON_INGOT.get()); items.put(bloodIngot, Lists.newArrayList(ModItems.HEART_SEEKER_NORMAL.get(), ModItems.HEART_STRIKER_NORMAL.get())); - Ingredient enhancedBloodIngot = Ingredient.of(ModItems.BLOOD_INFUSED_ENHANCED_IRON_INGOT.get()); + Ingredient enhancedBloodIngot = Ingredient.of(ModItems.PURE_BLOOD_INFUSED_IRON_INGOT.get()); items.put(enhancedBloodIngot, Lists.newArrayList(ModItems.HEART_SEEKER_ENHANCED.get(), ModItems.HEART_SEEKER_ULTIMATE.get(), ModItems.HEART_STRIKER_ENHANCED.get(), ModItems.HEART_STRIKER_ULTIMATE.get())); Ingredient human_heart = Ingredient.of(ModItemTags.HEART); items.put(human_heart, Lists.newArrayList(ModItems.VAMPIRE_CLOTHING_CROWN.get(), ModItems.VAMPIRE_CLOTHING_HAT.get(), ModItems.VAMPIRE_CLOTHING_LEGS.get(), ModItems.VAMPIRE_CLOTHING_BOOTS.get(), ModItems.VAMPIRE_CLOAK_RED_BLACK.get(), ModItems.VAMPIRE_CLOAK_BLACK_RED.get(), ModItems.VAMPIRE_CLOAK_BLACK_WHITE.get(), ModItems.VAMPIRE_CLOAK_WHITE_BLACK.get(), ModItems.VAMPIRE_CLOAK_BLACK_BLUE.get())); diff --git a/src/main/java/de/teamlapen/vampirism/recipes/InfuserRecipe.java b/src/main/java/de/teamlapen/vampirism/recipes/InfuserRecipe.java new file mode 100644 index 0000000000..f541992303 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/recipes/InfuserRecipe.java @@ -0,0 +1,197 @@ +package de.teamlapen.vampirism.recipes; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import de.teamlapen.vampirism.core.ModDataComponents; +import de.teamlapen.vampirism.core.ModRecipes; +import de.teamlapen.vampirism.items.component.BloodCharged; +import de.teamlapen.vampirism.items.component.PureLevel; +import de.teamlapen.vampirism.util.StreamCodecExtension; +import io.netty.buffer.ByteBuf; +import net.minecraft.core.HolderLookup; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.*; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; + +public class InfuserRecipe implements Recipe { + + @NotNull + private final String group; + private final Ingredient ingredient1; + private final Ingredient ingredient2; + private final Ingredient ingredient3; + private final Ingredient ingredient4; + private final Ingredient ingredient; + private final ItemStack result1; + private final ItemStack result2; + private final ItemStack result3; + private final Optional result; + private final int cookingTime; + + @Nullable + private PlacementInfo placementInfo; + + public InfuserRecipe(@NotNull String groupIn, Ingredient ingredient1, Ingredient ingredient2, Ingredient ingredient3, Ingredient ingredient4, Ingredient ingredient, ItemStack result1, ItemStack result2, ItemStack result3, Optional result, int cookingTime) { + this.group = groupIn; + this.ingredient1 = ingredient1; + this.ingredient2 = ingredient2; + this.ingredient3 = ingredient3; + this.ingredient4 = ingredient4; + this.ingredient = ingredient; + this.result1 = result1; + this.result2 = result2; + this.result3 = result3; + this.result = result; + this.cookingTime = cookingTime; + } + + public Ingredient ingredient1() { + return ingredient1; + } + + public Ingredient ingredient2() { + return ingredient2; + } + + public Ingredient ingredient3() { + return ingredient3; + } + + public Ingredient ingredient4() { + return ingredient4; + } + + public Ingredient ingredient() { + return ingredient; + } + + public ItemStack result1() { + return result1; + } + + public ItemStack result2() { + return result2; + } + + public ItemStack result3() { + return result3; + } + + public Optional result() { + return result; + } + + public int cookingTime() { + return cookingTime; + } + + @Override + public boolean matches(InfuserRecipeInput input, @NotNull Level level) { + return this.ingredient.test(input.item) && this.ingredient1.test(input.input1) && this.ingredient2.test(input.input2) && this.ingredient3.test(input.input3) && this.ingredient4.test(input.input4); + } + + @Override + public @NotNull ItemStack assemble(@NotNull InfuserRecipeInput input, HolderLookup.@NotNull Provider registries) { + int level = Stream.of(input.input1, input.input2, input.input3, input.input4).map(s -> s.getOrDefault(ModDataComponents.PURE_LEVEL, PureLevel.EMPTY)).mapToInt(PureLevel::level).min().orElse(-1); + var result = this.result.map(ItemStack::copy).orElseGet(input.item::copy); + if (result.has(ModDataComponents.BLOOD_CHARGED)) { + result.set(ModDataComponents.BLOOD_CHARGED, new BloodCharged(1)); + } + return PureLevel.pureBlood(result, level); + } + + @Override + public @NotNull RecipeSerializer> getSerializer() { + return ModRecipes.INFUSER.get(); + } + + @Override + public @NotNull RecipeType> getType() { + return ModRecipes.INFUSER_TYPE.get(); + } + + @Override + public @NotNull PlacementInfo placementInfo() { + if (this.placementInfo == null) { + this.placementInfo = PlacementInfo.create(List.of(this.ingredient1, this.ingredient2, this.ingredient3, this.ingredient4, this.ingredient)); + } + return this.placementInfo; + } + + @Override + public @NotNull RecipeBookCategory recipeBookCategory() { + return ModRecipes.INFUSER_CATEGORY.get(); + } + + public record InfuserRecipeInput(ItemStack input1, ItemStack input2, ItemStack input3, ItemStack input4, ItemStack item) implements RecipeInput { + + @Override + public @NotNull ItemStack getItem(int index) { + return switch (index) { + case 0 -> this.input1; + case 1 -> this.input2; + case 2 -> this.input3; + case 3 -> this.input4; + case 4 -> this.item; + default -> throw new IllegalArgumentException("Recipe does not contain slot " + index); + }; + } + + @Override + public int size() { + return 5; + } + } + + public static class Serializer implements RecipeSerializer { + + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + Codec.STRING.optionalFieldOf("group", "").forGetter(s -> s.group), + Ingredient.CODEC.fieldOf("ingredient1").forGetter(x -> x.ingredient1), + Ingredient.CODEC.fieldOf("ingredient2").forGetter(x -> x.ingredient2), + Ingredient.CODEC.fieldOf("ingredient3").forGetter(x -> x.ingredient3), + Ingredient.CODEC.fieldOf("ingredient4").forGetter(x -> x.ingredient4), + Ingredient.CODEC.fieldOf("item").forGetter(x -> x.ingredient), + ItemStack.CODEC.optionalFieldOf("result1", ItemStack.EMPTY).forGetter(x -> x.result1), + ItemStack.CODEC.optionalFieldOf("result2", ItemStack.EMPTY).forGetter(x -> x.result2), + ItemStack.CODEC.optionalFieldOf("result3", ItemStack.EMPTY).forGetter(x -> x.result3), + ItemStack.CODEC.optionalFieldOf("result").forGetter(x -> x.result), + Codec.INT.optionalFieldOf("cookingtime", 200).forGetter(x -> x.cookingTime) + ).apply(instance, InfuserRecipe::new)); + + public static final StreamCodec STREAM_CODEC = StreamCodecExtension.composite( + ByteBufCodecs.STRING_UTF8, s -> s.group, + Ingredient.CONTENTS_STREAM_CODEC, s -> s.ingredient1, + Ingredient.CONTENTS_STREAM_CODEC, s -> s.ingredient2, + Ingredient.CONTENTS_STREAM_CODEC, s -> s.ingredient3, + Ingredient.CONTENTS_STREAM_CODEC, s -> s.ingredient4, + Ingredient.CONTENTS_STREAM_CODEC, s -> s.ingredient, + ItemStack.STREAM_CODEC, s -> s.result1, + ItemStack.STREAM_CODEC, s -> s.result2, + ItemStack.STREAM_CODEC, s -> s.result3, + ByteBufCodecs.optional(ItemStack.STREAM_CODEC), s -> s.result, + ByteBufCodecs.INT, s -> s.cookingTime, + InfuserRecipe::new + ); + + @Override + public @NotNull MapCodec codec() { + return CODEC; + } + + @Override + public @NotNull StreamCodec streamCodec() { + return STREAM_CODEC; + } + } +} diff --git a/src/main/java/de/teamlapen/vampirism/util/BlockVoxelshapes.java b/src/main/java/de/teamlapen/vampirism/util/BlockVoxelshapes.java index fe04946412..ae74cfd749 100644 --- a/src/main/java/de/teamlapen/vampirism/util/BlockVoxelshapes.java +++ b/src/main/java/de/teamlapen/vampirism/util/BlockVoxelshapes.java @@ -107,4 +107,19 @@ public class BlockVoxelshapes { Block.box(10, 3, 6, 16, 7, 10), Block.box(0, 3, 6, 6, 7, 10) ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).orElseGet(Shapes::empty); + public static final VoxelShape BLOOD_INFUSER = Stream.of( + Block.box(0, 0.3125, 0.8125, 0.1875, 0.875, 1), + Block.box(0, 0, 0, 1, 0.0625, 1), + Shapes.box(0.0625, 0.0625, 0.0625, 0.9375, 0.125, 0.9375), + Shapes.box(0, 0.125, 0, 1, 0.1875, 1), + Shapes.box(0.0625, 0.1875, 0.0625, 0.9375, 0.25, 0.9375), + Shapes.box(0, 0.25, 0, 1, 0.3125, 1), + Shapes.box(0, 0.3125, 0.1875, 0.125, 0.5625, 0.8125), + Shapes.box(0.1875, 0.3125, 0, 0.8125, 0.5625, 0.125), + Shapes.box(0.875, 0.3125, 0.1875, 1, 0.5625, 0.8125), + Shapes.box(0.1875, 0.3125, 0.875, 0.8125, 0.5625, 1), + Shapes.box(0, 0.3125, 0, 0.1875, 0.875, 0.1875), + Shapes.box(0.8125, 0.3125, 0, 1, 0.875, 0.1875), + Shapes.box(0.8125, 0.3125, 0.8125, 1, 0.875, 1) + ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).orElseGet(Shapes::empty); } diff --git a/src/main/java/de/teamlapen/vampirism/util/RecipeHelper.java b/src/main/java/de/teamlapen/vampirism/util/RecipeHelper.java new file mode 100644 index 0000000000..9747725e66 --- /dev/null +++ b/src/main/java/de/teamlapen/vampirism/util/RecipeHelper.java @@ -0,0 +1,23 @@ +package de.teamlapen.vampirism.util; + +import de.teamlapen.vampirism.VampirismMod; +import de.teamlapen.vampirism.core.ModRecipes; +import de.teamlapen.vampirism.recipes.InfuserRecipe; +import net.minecraft.world.item.crafting.RecipePropertySet; +import net.minecraft.world.level.Level; + +import java.util.stream.Stream; + +public class RecipeHelper { + + public static RecipePropertySet createLocalInfuserRecipePropertySet(Level level) { + return RecipePropertySet.create(VampirismMod.proxy.recipeMap(level).byType(ModRecipes.INFUSER_TYPE.get()).stream().flatMap(x -> { + InfuserRecipe recipe = x.value(); + return Stream.of(recipe.ingredient1(), recipe.ingredient2(), recipe.ingredient3(), recipe.ingredient4()); + }).toList()); + } + + public static RecipePropertySet createLocalInfuserRecipeInputPropertySet(Level level) { + return RecipePropertySet.create(VampirismMod.proxy.recipeMap(level).byType(ModRecipes.INFUSER_TYPE.get()).stream().flatMap(x -> Stream.of(x.value().ingredient())).toList()); + } +} diff --git a/src/main/java/de/teamlapen/vampirism/util/StreamCodecExtension.java b/src/main/java/de/teamlapen/vampirism/util/StreamCodecExtension.java index 0199c018fd..c4b647c970 100644 --- a/src/main/java/de/teamlapen/vampirism/util/StreamCodecExtension.java +++ b/src/main/java/de/teamlapen/vampirism/util/StreamCodecExtension.java @@ -1,8 +1,6 @@ package de.teamlapen.vampirism.util; -import com.mojang.datafixers.util.Function7; -import com.mojang.datafixers.util.Function8; -import com.mojang.datafixers.util.Function9; +import com.mojang.datafixers.util.*; import net.minecraft.network.codec.StreamCodec; import org.jetbrains.annotations.NotNull; @@ -130,5 +128,152 @@ public void encode(@NotNull B buffer, @NotNull C obj) { }; } + static StreamCodec composite( + final StreamCodec codec1, final Function func1, + final StreamCodec codec2, final Function func2, + final StreamCodec codec3, final Function func3, + final StreamCodec codec4, final Function func4, + final StreamCodec codec5, final Function func5, + final StreamCodec codec6, final Function func6, + final StreamCodec codec7, final Function func7, + final StreamCodec codec8, final Function func8, + final StreamCodec codec9, final Function func9, + final StreamCodec codec10, final Function func10, + + final Function10 result + ) { + return new StreamCodec() { + @Override + public @NotNull C decode(@NotNull B buffer) { + T1 t1 = codec1.decode(buffer); + T2 t2 = codec2.decode(buffer); + T3 t3 = codec3.decode(buffer); + T4 t4 = codec4.decode(buffer); + T5 t5 = codec5.decode(buffer); + T6 t6 = codec6.decode(buffer); + T7 t7 = codec7.decode(buffer); + T8 t8 = codec8.decode(buffer); + T9 t9 = codec9.decode(buffer); + T10 t10 = codec10.decode(buffer); + return result.apply(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); + } + + @Override + public void encode(@NotNull B buffer, @NotNull C obj) { + codec1.encode(buffer, func1.apply(obj)); + codec2.encode(buffer, func2.apply(obj)); + codec3.encode(buffer, func3.apply(obj)); + codec4.encode(buffer, func4.apply(obj)); + codec5.encode(buffer, func5.apply(obj)); + codec6.encode(buffer, func6.apply(obj)); + codec7.encode(buffer, func7.apply(obj)); + codec8.encode(buffer, func8.apply(obj)); + codec9.encode(buffer, func9.apply(obj)); + codec10.encode(buffer, func10.apply(obj)); + } + }; + } + + static StreamCodec composite( + final StreamCodec codec1, final Function func1, + final StreamCodec codec2, final Function func2, + final StreamCodec codec3, final Function func3, + final StreamCodec codec4, final Function func4, + final StreamCodec codec5, final Function func5, + final StreamCodec codec6, final Function func6, + final StreamCodec codec7, final Function func7, + final StreamCodec codec8, final Function func8, + final StreamCodec codec9, final Function func9, + final StreamCodec codec10, final Function func10, + final StreamCodec codec11, final Function func11, + + final Function11 result + ) { + return new StreamCodec() { + @Override + public @NotNull C decode(@NotNull B buffer) { + T1 t1 = codec1.decode(buffer); + T2 t2 = codec2.decode(buffer); + T3 t3 = codec3.decode(buffer); + T4 t4 = codec4.decode(buffer); + T5 t5 = codec5.decode(buffer); + T6 t6 = codec6.decode(buffer); + T7 t7 = codec7.decode(buffer); + T8 t8 = codec8.decode(buffer); + T9 t9 = codec9.decode(buffer); + T10 t10 = codec10.decode(buffer); + T11 t11 = codec11.decode(buffer); + return result.apply(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); + } + + @Override + public void encode(@NotNull B buffer, @NotNull C obj) { + codec1.encode(buffer, func1.apply(obj)); + codec2.encode(buffer, func2.apply(obj)); + codec3.encode(buffer, func3.apply(obj)); + codec4.encode(buffer, func4.apply(obj)); + codec5.encode(buffer, func5.apply(obj)); + codec6.encode(buffer, func6.apply(obj)); + codec7.encode(buffer, func7.apply(obj)); + codec8.encode(buffer, func8.apply(obj)); + codec9.encode(buffer, func9.apply(obj)); + codec10.encode(buffer, func10.apply(obj)); + codec11.encode(buffer, func11.apply(obj)); + } + }; + } + + static StreamCodec composite( + final StreamCodec codec1, final Function func1, + final StreamCodec codec2, final Function func2, + final StreamCodec codec3, final Function func3, + final StreamCodec codec4, final Function func4, + final StreamCodec codec5, final Function func5, + final StreamCodec codec6, final Function func6, + final StreamCodec codec7, final Function func7, + final StreamCodec codec8, final Function func8, + final StreamCodec codec9, final Function func9, + final StreamCodec codec10, final Function func10, + final StreamCodec codec11, final Function func11, + final StreamCodec codec12, final Function func12, + + final Function12 result + ) { + return new StreamCodec() { + @Override + public @NotNull C decode(@NotNull B buffer) { + T1 t1 = codec1.decode(buffer); + T2 t2 = codec2.decode(buffer); + T3 t3 = codec3.decode(buffer); + T4 t4 = codec4.decode(buffer); + T5 t5 = codec5.decode(buffer); + T6 t6 = codec6.decode(buffer); + T7 t7 = codec7.decode(buffer); + T8 t8 = codec8.decode(buffer); + T9 t9 = codec9.decode(buffer); + T10 t10 = codec10.decode(buffer); + T11 t11 = codec11.decode(buffer); + T12 t12 = codec12.decode(buffer); + return result.apply(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); + } + + @Override + public void encode(@NotNull B buffer, @NotNull C obj) { + codec1.encode(buffer, func1.apply(obj)); + codec2.encode(buffer, func2.apply(obj)); + codec3.encode(buffer, func3.apply(obj)); + codec4.encode(buffer, func4.apply(obj)); + codec5.encode(buffer, func5.apply(obj)); + codec6.encode(buffer, func6.apply(obj)); + codec7.encode(buffer, func7.apply(obj)); + codec8.encode(buffer, func8.apply(obj)); + codec9.encode(buffer, func9.apply(obj)); + codec10.encode(buffer, func10.apply(obj)); + codec11.encode(buffer, func11.apply(obj)); + codec12.encode(buffer, func12.apply(obj)); + } + }; + } + } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index c5b0275d05..b82e3a3752 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -57,6 +57,7 @@ public net.minecraft.client.gui.GuiGraphics blitTiledSprite(Ljava/util/function/ public net.minecraft.client.gui.GuiGraphics sprites # sprites public net.minecraft.world.item.Item$Properties components # components public net.minecraft.core.component.DataComponentMap$Builder map # map +public net.minecraft.world.item.crafting.RecipePropertySet create(Ljava/util/Collection;)Lnet/minecraft/world/item/crafting/RecipePropertySet; # create protected net.minecraft.data.recipes.ShapedRecipeBuilder result #result protected net.minecraft.data.recipes.ShapedRecipeBuilder count #count diff --git a/src/main/resources/assets/vampirism/lang/en_us.json b/src/main/resources/assets/vampirism/lang/en_us.json index e849b51786..3fba90412d 100644 --- a/src/main/resources/assets/vampirism/lang/en_us.json +++ b/src/main/resources/assets/vampirism/lang/en_us.json @@ -893,6 +893,7 @@ "block.vampirism.candle_stick_black": "Candle Stick", "block.vampirism.wall_candle_stick_black": "Candle Stick", "block.vampirism.vampire_soul_lantern": "Vampire Soul Lantern", + "block.vampirism.blood_infuser": "Blood Infuser", "__comment": "items", "item.vampirism.hunter_intel": "Hunter Intel", "item.vampirism.pure_blood": "Pure Blood", @@ -952,10 +953,14 @@ "item.vampirism.vampire_cloak_red_black": "Vampire Cloak", "item.vampirism.hunter_hat_head": "Hunter Hat", "item.vampirism.heart_seeker": "Heartseeker", + "item.vampirism.iron_heart_seeker": "Iron Heartseeker", + "item.vampirism.diamond_heart_seeker": "Diamond Heartseeker", + "item.vampirism.netherite_heart_seeker": "Netherite Heartseeker", "item.vampirism.heart_striker": "Heartstriker", + "item.vampirism.iron_heart_striker": "Iron Heartstriker", + "item.vampirism.diamond_heart_striker": "Diamond Heartstriker", + "item.vampirism.netherite_heart_striker": "Netherite Heartstriker", "item.vampirism.hunter_axe": "Hunter Axe", - "item.vampirism.blood_infused_iron_ingot": "Blood-Infused Iron Ingot", - "item.vampirism.blood_infused_enhanced_iron_ingot": "Enhanced Blood-Infused Iron Ingot", "item.vampirism.soul_orb_vampire": "Vampire Soul", "item.vampirism.item_tent": "Tent", "item.vampirism.item_tent_spawner": "Tent", @@ -1007,6 +1012,12 @@ "entity.vampirism.cursed_spruce_chest_boat": "Cursed Spruce Boat with Chest", "item.vampirism.oil_bottle": "Oil", "item.vampirism.mother_core": "Mother Core", + "item.vampirism.blood_infused_raw_iron": "Blood Infused Raw Iron", + "item.vampirism.blood_infused_raw_gold": "Blood Infused Raw Gold", + "item.vampirism.blood_infused_iron_ingot": "Blood Infused Iron Ingot", + "item.vampirism.blood_infused_gold_ingot": "Blood Infused Gold Ingot", + "item.vampirism.blood_infused_diamond": "Blood Infused Diamond", + "item.vampirism.blood_infused_netherite_ingot": "Blood Infused Netherite Ingot", "__comment": "Potion items", "item.minecraft.potion.effect.blindness": "Potion of Blindness", "item.minecraft.potion.effect.nausea": "Potion of Nausea", @@ -1051,6 +1062,7 @@ "item.vampirism.item_alchemical_fire.desc1": "Does not spread", "item.vampirism.item_alchemical_fire.desc2": "Burns indefinitely", "item.vampirism.pure_blood.purity": "Purity", + "text.vampirism.purity": "Purity: %s", "item.vampirism.hunter_minion_equipment": "Equipment for hunter minion", "item.vampirism.hunter_minion_upgrade_simple": "Hunter minion equipment upgrade", "item.vampirism.hunter_minion_upgrade_enhanced": "Enhanced Hunter minion equipment upgrade", diff --git a/src/main/resources/assets/vampirism/models/block/blood_infuser/infuser.json b/src/main/resources/assets/vampirism/models/block/blood_infuser/infuser.json new file mode 100644 index 0000000000..12d70ab579 --- /dev/null +++ b/src/main/resources/assets/vampirism/models/block/blood_infuser/infuser.json @@ -0,0 +1,216 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "block/gilded_blackstone", + "3": "block/gold_block", + "particle": "block/gold_block" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 1, 16], + "faces": { + "north": {"uv": [0, 15, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 15, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 15, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 15, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [1, 1, 1], + "to": [15, 2, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 1, 1]}, + "faces": { + "north": {"uv": [1, 14, 15, 15], "texture": "#1"}, + "east": {"uv": [1, 14, 15, 15], "texture": "#1"}, + "south": {"uv": [1, 14, 15, 15], "texture": "#1"}, + "west": {"uv": [1, 14, 15, 15], "texture": "#1"}, + "up": {"uv": [1, 1, 15, 15], "texture": "#1"}, + "down": {"uv": [1, 1, 15, 15], "texture": "#1"} + } + }, + { + "from": [0, 2, 0], + "to": [16, 3, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, + "faces": { + "north": {"uv": [0, 13, 16, 14], "texture": "#1"}, + "east": {"uv": [0, 13, 16, 14], "texture": "#1"}, + "south": {"uv": [0, 13, 16, 14], "texture": "#1"}, + "west": {"uv": [0, 13, 16, 14], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [1, 3, 1], + "to": [15, 4, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 3, 1]}, + "faces": { + "north": {"uv": [1, 12, 15, 13], "texture": "#1"}, + "east": {"uv": [1, 12, 15, 13], "texture": "#1"}, + "south": {"uv": [1, 12, 15, 13], "texture": "#1"}, + "west": {"uv": [1, 12, 15, 13], "texture": "#1"}, + "up": {"uv": [1, 1, 15, 15], "texture": "#1"}, + "down": {"uv": [1, 1, 15, 15], "texture": "#1"} + } + }, + { + "from": [0, 4, 0], + "to": [16, 5, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 4, 0]}, + "faces": { + "north": {"uv": [0, 11, 16, 12], "texture": "#1"}, + "east": {"uv": [0, 11, 16, 12], "texture": "#1"}, + "south": {"uv": [0, 11, 16, 12], "texture": "#1"}, + "west": {"uv": [0, 11, 16, 12], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "from": [0, 4, 0], + "to": [16, 5, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 4, 0]}, + "faces": { + "up": {"uv": [0, 0, 16, 16], "texture": "#3"} + } + }, + { + "from": [0, 5, 3], + "to": [2, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 5, 0]}, + "faces": { + "north": {"uv": [14, 7, 16, 11], "texture": "#3"}, + "east": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "south": {"uv": [0, 7, 2, 11], "texture": "#3"}, + "west": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "up": {"uv": [0, 3, 2, 13], "texture": "#3"}, + "down": {"uv": [0, 3, 2, 13], "texture": "#3"} + } + }, + { + "from": [3, 5, 0], + "to": [13, 9, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 5, 0]}, + "faces": { + "north": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "east": {"uv": [14, 7, 16, 11], "texture": "#3"}, + "south": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "west": {"uv": [0, 0, 2, 4], "texture": "#3"}, + "up": {"uv": [3, 0, 13, 2], "texture": "#3"}, + "down": {"uv": [3, 14, 13, 16], "texture": "#3"} + } + }, + { + "from": [14, 5, 3], + "to": [16, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6, 1]}, + "faces": { + "north": {"uv": [0, 7, 2, 11], "texture": "#3"}, + "east": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "south": {"uv": [14, 7, 16, 11], "texture": "#3"}, + "west": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "up": {"uv": [14, 3, 16, 13], "texture": "#3"}, + "down": {"uv": [14, 3, 16, 13], "texture": "#3"} + } + }, + { + "from": [3, 5, 14], + "to": [13, 9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 14]}, + "faces": { + "north": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "east": {"uv": [0, 7, 2, 11], "texture": "#3"}, + "south": {"uv": [3, 7, 13, 11], "texture": "#3"}, + "west": {"uv": [10, 4, 12, 8], "texture": "#3"}, + "up": {"uv": [3, 14, 13, 16], "texture": "#3"}, + "down": {"uv": [3, 0, 13, 2], "texture": "#3"} + } + }, + { + "from": [0, 5, 0], + "to": [3, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 1]}, + "faces": { + "north": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "east": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "south": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "west": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "up": {"uv": [0, 0, 3, 3], "texture": "#3"}, + "down": {"uv": [0, 13, 3, 16], "texture": "#3"} + } + }, + { + "from": [13, 5, 0], + "to": [16, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6, 1]}, + "faces": { + "north": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "east": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "south": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "west": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "up": {"uv": [13, 0, 16, 3], "texture": "#3"}, + "down": {"uv": [13, 13, 16, 16], "texture": "#3"} + } + }, + { + "from": [13, 5, 13], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6, 14]}, + "faces": { + "north": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "east": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "south": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "west": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "up": {"uv": [13, 13, 16, 16], "texture": "#3"}, + "down": {"uv": [13, 0, 16, 3], "texture": "#3"} + } + }, + { + "from": [0, 5, 13], + "to": [3, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 14]}, + "faces": { + "north": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "east": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "south": {"uv": [0, 2, 3, 11], "texture": "#3"}, + "west": {"uv": [13, 2, 16, 11], "texture": "#3"}, + "up": {"uv": [0, 13, 3, 16], "texture": "#3"}, + "down": {"uv": [0, 0, 3, 3], "texture": "#3"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vampirism/models/block/blood_infuser/infuser_blood.json b/src/main/resources/assets/vampirism/models/block/blood_infuser/infuser_blood.json new file mode 100644 index 0000000000..a34e55efa9 --- /dev/null +++ b/src/main/resources/assets/vampirism/models/block/blood_infuser/infuser_blood.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "2": "vampirism:block/blood_still", + "particle": "block/gold_block" + }, + "elements": [ + { + "from": [2, 5, 2], + "to": [14, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 5, 2]}, + "faces": { + "north": {"uv": [2, 8, 14, 11], "texture": "#2"}, + "east": {"uv": [2, 8, 14, 11], "texture": "#2"}, + "south": {"uv": [2, 8, 14, 11], "texture": "#2"}, + "west": {"uv": [2, 8, 14, 11], "texture": "#2"}, + "up": {"uv": [2, 2, 14, 14], "texture": "#2"}, + "down": {"uv": [2, 2, 14, 14], "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/vampirism/textures/block/infuser.png b/src/main/resources/assets/vampirism/textures/block/infuser.png new file mode 100644 index 0000000000000000000000000000000000000000..6d92a4a62615c7fd9712ea94a911ba0722a9a8a6 GIT binary patch literal 345 zcmV-f0jB> z!?N%DH-Lx$psE0D+eWO`8UVFcT5FgY0ODX(CFlGgi9j#E17K!1ftjJI)LQvePI{i_ zATcw(T!D9r9USQ3)*3nIVM9c21@Xcxb+%AzCFe}end3N+-aDm~k%NPlWf}Wut+hre z1%Tc=l2Uqs&Fl^+oJTbx!gXB$cLwpNsCV8}qFhydJQxT6`;elFdG9%RkP-YKaL*AKRn0*7oq{i-mEQXx`2>6@@KMf}B5715 rBF_wB$M}sEExr`IWQn{onSowE_jkm*lTG@~00000NkvXXu0mjf(Q1|c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vampirism/textures/gui/container/infuser.png b/src/main/resources/assets/vampirism/textures/gui/container/infuser.png new file mode 100644 index 0000000000000000000000000000000000000000..5b46ca0f68d2bee8fa782fb22d12717533bd88d5 GIT binary patch literal 5530 zcmeHLX;c$g7Jdm}Vh{vHL2(JeIWjs$Qk6XhK?zHg07o+lt)P{v3Pj055=gLJqAjAf zTdUn7gKOIk+Ulssbx>Q62s-M}He;i$AdEBGF1WY2fX=G~5RT5`nf9Lv#k=+1z2Cd{ zyZ7CsvM4ncBE$HsCkRpyY!jwthZ0^GvQO4GnCFgJBE!)qDD+`!b zIALH?<_ngl|H`1?gcJK48me^{Pn=4h$eK7RpoNheTpE(Mo zdp?j3OA?p=-L*YEUa>Y{@8REvJ>v{saG@xqa)|!6ZFBLwtXXyAr57_+XB9NJrnio% zCtWGrWx~4M3#ALQB*?nQBXf(t98&nK)cM0k-(JzyjQrK>tMpD1&S(<1VB zUp=vdEUT!g2#mWJacx6hdgGB(={x_Hc4vJ{;ie-8_MXf8gx`C zx7=7>!1P`}clgexKS^AdQ+~K(M6BLDa=e0TjhcF|NQZ0F&+G1(N(D4rWv0cCoc&*QpP?9-!oX|RrB z%~pyliWEf(kT|CyALEVWaFte4uNbF_Z-an$QM_!s-J;<09S%pNLl|kcX7N$ET+SC@ zd<;XN24X8P*>NXgvW3$S9t;&_Bdi9C-C#CxX-r&a&a+4HcyOKD?w`@3(R9F@Y;7z+ zKKM@D!bc+oe4~-y*}`Uz%ZDIs4!zUDrY*2g{Be}coM$DdxO~cF5AO^?5*_xIJZp|S z9FpKuIg}Bq+TgBemo4cN*I_|ZkYzAh+*Xk6E}C|O{ta1Oe4|&~;dFKcns?xK(Qc33 ztqip^8imSC8e+6kK45Y#%q7u1KCZ-UP03{KT43#6eKp;m*6c@?Fgj6Wf zi#kE6O*T7jA}AUPf=3!4jsO!%DV!1`A_9{`2qA^YDG7y0a51i@NSzLo6P+MZtOi(> zcur@pXebgw38g3@#Yhwp>SQP)!bCC%r57P2Awe;LL`Pvb?uH@>MZDQ+#9=xOMm&q+ zTTEH*1)6Zhs8n?n4~rDMnMuvT?Rsbs#Y-}n@|5#v?yROkXW3qQwZRmhp{MPtrTuITeW6$P86@B>vk+_;Bg{x zJFdd*6a?+)!`k*fJRG)VfyaFsPGcqw`hx$aO&=bv66(X0CmL*U{{r`v=R}RCay@sR z+Z==YC~>*&L!rP4PY5ZJa@WKjf>e+&<(MT<*tB z-izOlbbX}jy%=~e<&V|%k*@b*;JuVTR@bja7w63rBV~eL^c?VcaEwt)!e_~Dy0Hl= z@S1*aJo?8~aHhK@G2I4$Z*TfyfRfS>ILWfBHF2z4jDEgCB(*2&4glU-wQ7{s`BPKf z1$A$0U(C{Imi3o2(EN#Gh?4IG@~}7^=Rwt*H7L3`~)ci7JLD-ooH(sB;rM2C^fB)L~rk5kvZ`iPE@aff6jU|ttmo_2s zi%)GEn;F{oTYZS@Y;Wl=!BP8bYil>ZI`++_7uQUCwod}wqT#N?=A~b}`jNSpbNuST z%EV928IO%Vg-Wlfb?RdkCr_Td+h;9{WXEj!>d4vZ*0rm9p3cn7tk}XE#I%Z;Y`}8? zZu`(O=$LQAmJDUJgEg7K9mWP?t4~8;*Ob|N>u0QSJSu0#Bn5!d7B)zp?G5>4x>gNl z96ytyo*DX}Xx6?=<0swqKB3G9W3T0!k;jK7ch~!cp7LoJkzeW6ZwezVC%xI&!^9|i zBI(9(u6mK7`<6uxIuZs#)xRX~x#)%UtS?*ing!Ey$R{oL@{x+H=(?@@4yQH=T{}n8 z(*KYK@0EAGE=@!12HPf)Mz!R+EPlRE@#;p4Or=s?Yp$6da`3GJV7p@5Dk7$jeolYO zt*Y#5!xhN_Tu@cYuYQQ$jSh0%^4%R@n}_!JOnzf#!LkkG@_f6NP}ibjHUz+lJ|%Um z6}O3f=g}hN`Ps@tOJi>QLvYg?zG6A+_157u$!1v?Ky->x_AYtwmm;Rk>scqGbJKw~nxsOb_X zDL2O_-$Rbp@jRu!Bk+PqBOJ6mffYRLC^LJ|;K2j^7B@1c_Fu!Y*b^h3?Dqw~+Us}C Y!Br*ODS3Itd>T_7m#o?~dg{D?0q&SZ8UO$Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vampirism/textures/item/blood_infused_enhanced_iron_ingot.png b/src/main/resources/assets/vampirism/textures/item/blood_infused_diamond.png similarity index 67% rename from src/main/resources/assets/vampirism/textures/item/blood_infused_enhanced_iron_ingot.png rename to src/main/resources/assets/vampirism/textures/item/blood_infused_diamond.png index 4e9d240efb7156c198acf60ee6d19782af2dd889..f8ebfd835d8ec0894463820d1696ee496b05607b 100644 GIT binary patch delta 1049 zcmbQJ{9S3n1zigU1|tI_Q!4{QDZ6w`P304t_())h)lFAdnQYOn0L3d@YprJN`NBWTL`74tuPOWB!TCp5HFs}b$G5IY z;Ro|0JqyiU9-ZG+Tg43HD)#h$erLI-T>e3R*vzbNDh#2UdwjGspL|;F^g-0lMevw_ zn`+vt;zcvs(rfPqn_rEclV17#ZzQwV!ITDn1;2WOyBj*pJJQW`=YF;;Y?-Rs`eRPT zp#|JR_C>K}KYNQ$Cfc9xk+^xrrm!VKqjck)qib?j9JzeN(Dkau{rSa_5BD66Tzf6@ z_q;!?3!AoWI#U{@?2#zwEuiS&CMz0}sOY!bt*et~uDb1?z~lOpyw$>4dt|s*IJQ3d zaq$0x?>T25)n8dMTf~cLul}~bhHNb5jbVqk?eEXsUCP8VuTgvL3;>w%C<3M=&t(R%C`mltlRYSS4?s#bn2%Vs4t6Y+_<+ zp=)HGXsByqW@4(FWMW~iYhhuYoM@J6k!WC%GWidSyo#AwN@}Wwxq&WF$W+%P(J)ar z$a`v`9)y)iqB|O3^hjH8Rz;OiVG+O|(cgPENHj zF*8j|o9xBzDr~B2V5n(QA&VckT3M%8(<<9@pN$v zu{fQaAdzvP!`o@YidXhV|7+u=l`k&i5)1w7&KCZ^{&#<#g5%k^{QQ64tExZ$KXhOJ zU;N+yZ}%U%xc0y6qo)7DYbzhV7cV%=UBCaw`>)^B!klLmNQxa-I+t+h(D4OF51a(i z2Y_I~(uGcQ>fgSIi}>;TX#L92)Bn>8JpN9P+A4EYG$OX3_n|d25I9@N+aFqa-adJ& z#NmduPFXznj(=O65%=?@GD!CDGS|HlY#SEbj`{V@uz6Y=m-EwKe>J%No|2XTfo&yb z5BS(8?s)JY=-xwryL%FoSdt%JOurMD`}3zvo&KIki!IY8Ha0%AZ{KKrc=7Vzfy|Sx qcPz9xBeaaIKJLKOM;A2;E1Ag>89>3i)&gU3!PSoMwJ>=zLYn~^bCrTVZGkeY~LNqE}kAM8^h}O zf&IwUqn;OCz4qv9Zt3`V@M-Ow@8=%w`^~U0GYkYu>(*EQ_)#bRJo4W6e=*Hj2U8mSRs8BV>`D~O7dW32ReJ9C5y7x&p^u6m zaW+e-)IHht=#%vGNr#!v_ek74V^i1?q4RaarNe7-GLBq6VimFdL^O4hIE7p^G8Qyx=^V+t?rAu2;pZjo^+!H>KM6V!%BXytDeHoQ zb=?R1AGXn(E$U5Qs#Ni{?)oA4Vr6oShr}TxL1H!?d)i`xyE7 z8b1o9uCLx>eZzWt{ri$<-XQ2>tmI?c@~o$lZvs0nPHlx zNt$k2nyG=ViHT{lu4QVHg|2aOq7hKa*eEe6dGa3?c@+zTq*U`112bJC)09+QlOzix z-9#fJ16@mV10(a)ltd$A6N}0Atm-NTiN?dd_G&dN{VT!iLs$!imrumsxi>LrY5>c<`$N^<|Y=# z=E)XmhUON=lfBqog^hI$EOm`ckPY6vh&`Kwg>%B=&N zb<$l2W~H`s?z^p}9{s$k8vR;&jmz|Qh4m$xu@Vju3(hdKe6?hF@8!KaknyO%AuKlJ;58pEN50!3wQ-LuXX&)<0Ah?-Sx e#cZa(y0y$MJ_YMVGna^fvc9LQpUXO@geCy^^s4m$ diff --git a/src/main/resources/assets/vampirism/textures/item/blood_infused_gold_ingot.png b/src/main/resources/assets/vampirism/textures/item/blood_infused_gold_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..00f311ec0136b494f2ecfc6b99afe172d82514c8 GIT binary patch literal 4470 zcmeHKeQ*@z8Q)7nzyKx)Ng>LxY(x`vZ$IvPn@bG23wM%BQn*4=#K~rN@3Q3X_Hw)T z5egHN5CjuHK%;;`)0S373RZ2w5fme&=#)-Bz_xUVVx;Y~bi`>KiAs__ySaR|&U7+U z|I6OI_dfgV@AAn|DPU8&6l5Xv z-Oy;Tmq7m#H1UzKvEBk(z2<2j7g#Fuc)!N&sX}QzMd}S!h$m?iLsATFMkzCVGX@Kw zbv=_aQkkTx$R=RfA(oa_xl2pYa76Nn0Rcf0-P`xrU1zG6v{!EWG1hf!&Ypp+L(CN2^v|%s9&IJM~%S0ppzo`o~)vdV62!d#SDCwPUv)Yek1r2lUp0H(a}KtZL7p z9!i{gV(=5&srZU3(uVz8KED(B?rWXp_Y_?H*OAqqW*0dY{W7a;mG2+&5BKf#Z|`4k zd4F@azv;$sP3i-^{KJ)K1=;_zU6x&bGk$QesBuTvs`jDo#5+CnZ!3;$j(zc%{2p8U zo6e<|&KEZBsLqeRa=GuPfx~AnoTZ%a=YRNuT=UVXzM7+dsQK#oo9#bnJ^t$X==btm z?4q?duK4(FBO&bJCO7krR1-0;ceKmX0T9eLGwMA~&KQs+C-k)uvbQNL5bFe4ibgoW852TE-c$;n zn}`obBLQtWJVyutAqY?zMx~|=sh+rr2vq{V7z}GsAoet*BKju9nl?A}iME`n6M^sv z-f8IZwQFENc|43m;-c#G+zvaYj?eHCC-RJDlDyAsGt+grjka2FBWvbx)@o#N6VFks zjpVFWi*X8-J0vS?h!a#QAlHk)V`dFz%ExiIjp9h$Xg2b=m8D6XHV8J3=d3h2jiNFl zLRPYYsk2h4c%b5}l!3KbD4eFuG;TClXxzqGOgLvCje^A_80jPx&oO0EB*?;cib2*d z5aEzto2Du_Q&Q!&W3--}^i%~{#Rma)tXvF56O#|TVo+GGu&SDr#bB|KCdy{9P(~{` zC3=Gpks%XRPOWxo;p(<9uow`QRr3@GG(W6`DUArMB1OEC6tH6xRd?dC2aXfZDy)N5 z1R$NL!`|^ad@q#cu(2kykM;?;*$Vjp`v*xun_v?K zo3)O%SZP`?O=p)SpAu&yLWv)A1g#)FwO=SSU)!jH>F9X9pzZ<)hLeya=KmCoNG_OA zYsUDB3yJ^Iq)-D)DKZc@=7Zt|wUC%7hDpuTvhxjI$-VdnM*!;CL1v`ytX#8l%}9Y6 zfoHR8R<0Q-FeC76cKzSv%9wne5<>7VC=M@6T^-17c+pC)Tf4@AjH;iWH(z`TJhy~h zH8O(CU#vDAa-e%DIOi&Ek8|$db-9_jt1|W90*`L7+fm}R{)($zO81nP3^(s@{jynU z%vpV)_MfhxFMsWD^B>!u>m(b?wjJ2Jt?8BALTS*SzHjAye+mqE2j01M5I{ReukRm; zH{U$>ZuL)kMou5fYx$`EcfWA7w?7#rQ{g&u@<$EJ{;Fr@HuhfV>sWS(;~H~QE~H&} zyVdY?J6;N^|6D;LkccjkO8 zc7E5ExA&hIT^8su`1-&p);Rt`o;T z@X}6ZYlki1{H;+k6D6-xI5R S(#hq5K8V{{;W)Osw)Nk{vId|4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vampirism/textures/item/blood_infused_netherite_ingot.png b/src/main/resources/assets/vampirism/textures/item/blood_infused_netherite_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..d94b52ab0d7f789d65df2a110cbe6601223f59b6 GIT binary patch literal 4533 zcmeHKdsGzH8J`6-2!d$9V?dAN5(r>t=dmw#WFdqFcZKC$g;=Y@%i^-G#1%d~F zlm$RC5d)fRjO{1$hy20VdeCM8Tf~ShQZ_~E8-X1)WN!m@+z`eO*tpCO3ITmHXaums zL4O!D?iJr&?*m)>1WI2cutetJezD1%3lj<)Qz#R`dW=w$7)}xz7}t=578n36YZ>)O zWD4C4F9R&KTv}SLDJ>0lxt$iy#zK&{xvEKT?8ptT%UQl(zCCnyQ*YQlvO7I}Zdt^} z+y!3*9U)&kbAQH8)wA)6%{681?Rz>8zua)FHMF$`9`Nr~B*vdIZs?Dxn~nd{duGeM zJGwKT`8S+PUw`Srv(V3vHD)Eme|`7u7ru)~Hq87(SVoNH8-DL=>#bEi1=_9^&DP5P z$Ho3j+L?7Za5mO+v|d|p)gW)&OI}^OJ*IA;+52Hj@T?T~ii(Gu`14fC9~lKeS~h!j9oURac=Oz)Vi+++MnF$w|(0C#lBtPOZ?tLPdvt_ z26(EMcAPl7#eTZnFJO1|!Xr1^)YaWNm!sw(6#=y;s~c`_j_s4}SoFbnuPUC|8a<`- zVMF?j$BpmD&zOGQ?{V3kYgcb2RzdHm-o78=as@W-h+Erpv!|+u|Ka2T{n`23=eUn2 zd;E()4tlx5BB98fMbb{Yf?}K{tio$|i3bKHrFdNwUB(J<32WsXdU@aJvvQbY^zvnD zGiG+Bv89}Gjhii4lU+!!DWi3aJS90O$x8wPJ1bDI*KTw0q*pJOcu8Q3!>AmVAVQg5 zUIg+e&FN-gl|rS!kaRCsLCBMX;3PL=A@dCxLlodiFE14Y7m1=Ck4NEADx7XBitBVb z6eCcAKmY>aD;)ymMI3yzNa5o!usrSNTmt8Gz#=DA;w%^RaygiXhyAm=%;ph#2S20& z&;#{SE)-W_sNIf^UBL_K6@X;Op&wnr7goAhG@s?2i~Ey|ljaywGBqsA;;foQD5Zu*R3(HC(cxMpqS9fwiqbI{tyGPn zGC6pGa?q?u1;`Z~;3?72OrlDqLo8~-f~Z)X8lhB5C4%c{6{EJ`I+oCmp~!J_AS)@` zSg%AX22jzMhEP&U3}Gx<0#V^Kft09mEdp2woTYRcEYU~B&}4?wZKuF-a(2qfqArJ3 z+CvnaOwBdv<%9wo9m%y(f(0zl%d zj@048;X1q!lx584zDQ?wGMuIIf1$<811AAIIC3M$gZ(R|A>WNEU|0K|e2+Fxx=JuC zT?&$-eIf8v1Od`%IbvUBMEf}IwGb$vJV6})w zL+fae2}%oY8PCo;ErN$~v#C~~BhU(@r}P&Jj*|{5emvS!%8I7|1Vbd8$er0=9$lX6W+ zfeC>pvujeW2`Mlk@ML!V-{cA!eVt+*;J+Xbcv(tVl=T&O(VAM4x!3?b5x*_(9e5Rt zOmi8Fc?b%AT5K|CXY(8|_>^EWr$6-%S>%kU$d-cOUxByje3K!yF!4fH6Q0?zDs26p zZ9?v@Z<}iKgEpBCT#A81EACuxUzz(z-|BEE24xMWn5IP4p>V^(%W>gB8$$Q*-;^Yis-Z+s{rb(AFM`>Rr2XFyxcFpQ+3zk>vv&xu5*&a_m8iS{8SKg(9ow zue-2w$qB>NfcV4tMZ3>UgBt!?b8?6E5fyj-H;(!%gR-lgYAE{Mthf4>kF%D{tdpOEENC% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vampirism/textures/item/blood_infused_raw_gold.png b/src/main/resources/assets/vampirism/textures/item/blood_infused_raw_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..f68980f7b9e7ffae0314e46f4b142ff6ca7139ca GIT binary patch literal 4566 zcmeHKe^3+I9Zv}IQv@wo3)~ojdT`fGb~hm*TY`rqm>dQvM1`}oZgw|eCBIBIB;ar! zC{_iv%6XiEh^;qXPZ9Mv&kCqi)UiF(>z!@&grn+=R$KI{2RMrM?S`N2&2*UQ{YQ3Q z-uJ!td7t;*=lgx%WH)DLEe;Eb4&m{5VLGik2hFL?J^mL)aX*bapipTTTm+eq#&t*qeE?xP7XxEI{J8nfBz^-dF zu|-i^vg5uCX~N!bdlJ4!HZM`Ut)i%-W8e9Y)>nOeWX6#S;h^A_I63i@cJsje%Gt=z zy=~hc_bJ;vb9?Q}cdzcB$6NMs^^(^T@BHh~qDN7w>X{cJGUl7^yMF!tMsrzruHsrj zy}4vyC|~eq2l>uYVHVtdbdzF}Sq|-eoVsSiuKAUN_1@n%hR#~(EGT}u)pZG9c%^#I z_0Lk)Y{*M+AG>+}u;s(fFFFy;wS=$tx$^(kc0Rx9&-u?9o>%U#IC1ch7tk#Szo2T!6RrUO*7bQD07p$089UJ;#TIHR=j+eaymabc09;l0a)304} zVh9QF_mnR`cjC-;YpdJOzoGo~rrXU)<=2<~DdrWZ*nh*PZ#mp0@vdHN+7VYiBL(r%>0UaNz37%yd^*MSp76eBcJX4<9_J#0NA64Inf zv?56l>mBJ-A+0TSQn{sB2BNfxP?DmBsUay|3=mi;1{Zp*7Mlz6sze+w25h!lA`)^C zrbs2q196mYcTz%`SSE%cjh8M)MX4de6enrIa?}~a6riON6*7zilSn)skJuv>+nr_! zqEsp+Fe*V&2p}L=iH*U%kj)j(QusL3l#6iE4u-bdge)g+w7VIVNCd`(Bm1*D^!ibH zn`>AFpoheZJ0yr0mRPNl@iSbErWlY6Z|FN`xC|u@N|Hml>~1GPX^JTu6F;7UBu3{u z+)fL39FmYw7Rm~sF0d*xVM+GJjm}^tFw<5CHw%b80m;y&F|j7>jUC~RGkzmr`Y7)N z^vKycFhJ?`nA%Rb+3o4nDiOOrM%oFQ#5fa0h$O^_5Rj21NJs`FQV5qRaEK(8$*7Ss z!A43kj!I{9F}RJOSSmm+rU4JBq@)y~fFTpAR6;T-OhL)XI0DH*8#Ur4lTiVWqgd*s zK~&s zCLaSWr<^Vji7Y3VJGl|oEf_cq5Ef_S6cBLz;4E0WlfoIh(_pt-RHD(WJ36cf*NMa# zT#YjnARW!ahLJq{I!Md#sA!npPSU25|Al5Rk1)mOaxLuw>z8m{z8jTGt?{*dO$*Ik zC83bJ6c|qUj^M(JDU#bK;PMR-g}BX3f$T9Ht|R^QcZ33h5-=fG$RT5rlyzdV0y0XI zKxDuau9U(u1PDBl-DNj19^6T#nSqW#D-fRCFO)EWb5!C)w5O0_y#NG*U<5+t|0$Sc z_`ni2XN;UUMe<*oq;P<7Ne0aG^?~FCa-n2284hd4rk(HcGwh4+aRopUg!_l!sqR&p94Ar8J%7e_;-GE_?(EML&x@mw`rG7on}b>|a*(JXX0^-|Ibj`}DK2fuV;pUbH?f4j!ltbk-KXt@!qzvb^%&-l^9v2!5v_ z(Rih??ca3qSorjkg6%m~bt{Xa;E#2Thqta$J!orR@ztRAgSNPVeS*uu*QrxrXV-FTGLjDWA8Faz+*bOFgDqX| d=Kh2I0{w5U%of}TH3N_Ebeb&nkwvR2{tfQ_MPmQ} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vampirism/textures/item/blood_infused_raw_iron.png b/src/main/resources/assets/vampirism/textures/item/blood_infused_raw_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..1b1015dceb9bb78dff0ed19f384877792017a661 GIT binary patch literal 4575 zcmeHKdsGzH8K31L6h$Egq=IE!)I!qPotb^FECkp^R$N$Rqd<rPF-m-)lGaoYzN)s;3Q8WX)n%tn?doo=sXuyf^1*8OQSc3kI`w$&+K031;;^Ou zj>ZRfH66aBUiYG{uYNrfdg*Ax{O40|eYr2|er&ov`b<>LEZb-7Z??QElMdre64%GWAEvIoW=~7Qa;_q7GLk^Essb#GT6JMuw!Npda`ofkFZ z#hmG}7Gg$zd(P`?C++x|?#Y7pq;KZUUL4wxIB{=g-K|Hbp7lO-{O!iY-P>d41)Y!{ z>&GU9_*O6KI@a0fY%dQA*}3|K12+#TR$nRjC}BEM5mMW>y8d75XWtWTp7ZYgjgp_d znH*aBO}(MFzu{!+lu4fi^_ShfcJ+>W6?8E%F3RbJ*#@y$8CFbok>mc z-an-Kf{Q>7`WZ_RS7e&6CEZR5LAkB8#P9U*2L`2O_&o$!Msu*0wlglB_+ERb7-lG) zc(KBSnmpNbDU-XxOBb%lw~#B!NDU>MrMWVlkM92jg>kOr{}t z7dyZL;6v&sJW@=8N}W#WNDr1XQ~;2HfWFs*wN!d&=|Y-ymwQRtP(i!6p6mOY%2v$b+ZA&Nw}S7a)6-CCAu?$r=?KKO<~sWFWwO2zQkA z;NAseU}Z9C^=`7956`IAiTU-ll$&HItsvs4Rc*yd4PwJd8zNWB6^KTqlp|IYB?+a9 zz%jLA1eDRma)gVdc_;ubVE_(JVYmiY$q)sh!4bJai6K@Q7-AZgjnI&U6-Vh25CvWa zWF_Gk85Ivj0Vv8wswjexAuZuQKUA!|c9vB6N z4o0|2Ff3dOEkOphz!DWSCBzA^0#jru;j+`9dJLrNpq}}jR8YtXRAwVoh=R0Yh#aMq z2%%A^5i5pitTrW1t7HL^hR|8Jjq?#+I@1n#1YCji6n>%L6ycy!N5|qTrTJ3;gdr$~ z;L7h3CLP$Yl&=|sJ5H1S7bj_g!H6OQ`~o^qyg)6K4i&=z&Op3Bkrm>3w7@pyLq-{^`Mex0IS;9rmryey?A*VKR)tqIn=xq9ds z|FoRgvk_>1OYQ>R~iT31r1`c|b5$$ zh8dY5AI{y<8&{t2@AO>-T`j?zSDrud@bP)yUES2D%r@_hu;{)|Iyw-hKAa0p&)@Q> zhJg0}vN5wQ5}vxD@2_8kb-m)q?p$m4B{hC{OMbhXbX?e*_B1~(W6jy68fj;ad*c@+ zJ9jKQcVzMTbKhRt%DvUTyZOwj$@@y;!!qVUD@{#*JlS_!O%cl0Ni=y(jvkA9vT~FNiX;*99{rH56{tb7c z51U{7tb5P431@d#meyQ;YjMiw`-9+Gc-p%4%UZuw|JEF4p82FIu?)ihytipdRbM@q uYPquP>&vO>m*k%x>XgJqoYkCu*5=;s`nWX)D%OFcfsBTH{lTnPs{aGfE;+;i literal 0 HcmV?d00001