From 2116800b6da8e43fe5f28ec5b31863e3fc1d2385 Mon Sep 17 00:00:00 2001 From: SammySemicolon <69329424+SammySemicolon@users.noreply.github.com> Date: Wed, 14 Feb 2024 02:17:16 +0100 Subject: [PATCH] I miss my boyfriend very much I wanna cuddle --- gradle.properties | 2 +- .../blockstates/budding_soulwood_leaves.json | 7 + .../hanging_mystic_soulwood_leaves.json | 7 - .../blockstates/hanging_soulwood_leaves.json | 7 + .../blockstates/mystic_soulwood_leaves.json | 7 - .../resources/assets/malum/lang/en_us.json | 8 +- ...aves.json => budding_soulwood_leaves.json} | 2 +- .../block/hanging_mystic_soulwood_leaves.json | 7 - .../models/block/hanging_soulwood_leaves.json | 7 + .../malum/models/item/altered_slate.json | 6 + .../models/item/budding_soulwood_leaves.json | 3 + .../item/hanging_mystic_soulwood_leaves.json | 3 - .../models/item/hanging_soulwood_leaves.json | 3 + .../models/item/mystic_soulwood_leaves.json | 3 - .../malum/models/item/tainted_slate.json | 6 + ...aves.json => budding_soulwood_leaves.json} | 4 +- ...aves.json => hanging_soulwood_leaves.json} | 4 +- .../spirit_infusion/altered_slate.json | 22 + .../spirit_infusion/corrupted_resonance.json | 42 -- .../necklace_of_the_hidden_blade.json | 38 ++ .../rune_of_aliment_cleansing.json | 17 + .../spirit_infusion/rune_of_bolstering.json | 17 + .../spirit_infusion/rune_of_culling.json | 17 + .../spirit_infusion/rune_of_dexterity.json | 17 + .../spirit_infusion/rune_of_haste.json | 17 + .../rune_of_idle_restoration.json | 17 + .../rune_of_igneous_solace.json | 17 + .../rune_of_reactive_shielding.json | 17 + .../rune_of_reinforcement.json | 17 + .../rune_of_sacrificial_empowerment.json | 17 + .../rune_of_spell_mastery.json | 17 + .../spirit_infusion/rune_of_the_heretic.json | 17 + .../spirit_infusion/rune_of_toughness.json | 17 + .../rune_of_twinned_duration.json | 17 + .../rune_of_unnatural_stamina.json | 17 + .../rune_of_volatile_distortion.json | 17 + .../spirit_infusion/tainted_slate.json | 33 + .../data/minecraft/tags/blocks/leaves.json | 6 +- .../minecraft/tags/blocks/mineable/hoe.json | 4 +- .../data/minecraft/tags/items/leaves.json | 6 +- .../effect/ReactiveShieldingEffect.java | 20 + .../effect/SacrificialEmpowermentEffect.java | 19 + .../malum/common/effect/SilencedEffect.java | 2 +- .../common/effect/{ => aura}/AerialAura.java | 2 +- .../common/effect/{ => aura}/AqueousAura.java | 2 +- .../{ => aura}/CorruptedAerialAura.java | 2 +- .../{ => aura}/CorruptedAqueousAura.java | 2 +- .../{ => aura}/CorruptedEarthenAura.java | 2 +- .../{ => aura}/CorruptedInfernalAura.java | 2 +- .../common/effect/{ => aura}/EarthenAura.java | 2 +- .../effect/{ => aura}/InfernalAura.java | 2 +- .../boomerang/ScytheBoomerangEntity.java | 2 +- .../runes/RuneAlimentCleansingItem.java | 25 + .../curiosities/runes/RuneDexterityItem.java | 29 +- .../runes/RuneReactiveShieldingItem.java | 11 +- .../runes/RuneVolatileDistortionItem.java | 1 - .../runes/corrupted/RuneHereticItem.java | 20 +- .../corrupted/RuneIgneousSolaceItem.java | 13 +- .../RuneSacrificialEmpowermentItem.java | 18 +- .../corrupted/RuneTwinnedDurationItem.java | 19 + .../common/worldgen/SoulwoodTreeFeature.java | 4 +- .../malum/core/events/RuntimeEvents.java | 9 + .../data/block/MalumBlockLootTables.java | 11 +- .../malum/data/block/MalumBlockStates.java | 4 +- .../sammy/malum/data/recipe/MalumRecipes.java | 11 +- .../recipe/MalumSpiritInfusionRecipes.java | 629 ------------------ .../ArtificeSpiritInfusionRecipes.java | 163 +++++ .../infusion/CurioSpiritInfusionRecipes.java | 176 +++++ .../infusion/GearSpiritInfusionRecipes.java | 187 ++++++ .../MaterialSpiritInfusionRecipes.java | 118 ++++ .../infusion/RuneSpiritInfusionRecipes.java | 77 +++ .../TotemicSpiritInfusionRecipes.java | 48 ++ .../com/sammy/malum/mixin/PlayerMixin.java | 2 +- .../registry/common/MobEffectRegistry.java | 4 + .../registry/common/block/BlockRegistry.java | 6 +- .../registry/common/item/ItemRegistry.java | 9 +- ...leaves.png => budding_soulwood_leaves.png} | Bin ...leaves.png => hanging_soulwood_leaves.png} | Bin .../malum/textures/item/altered_slate.png | Bin 0 -> 522 bytes .../malum/textures/item/tainted_slate.png | Bin 0 -> 438 bytes .../mob_effect/reactive_shielding.png | Bin 0 -> 531 bytes .../mob_effect/sacrificial_empowerment.png | Bin 0 -> 516 bytes .../textures/mob_effect/wicked_intent.png | Bin 474 -> 561 bytes 83 files changed, 1410 insertions(+), 752 deletions(-) create mode 100644 src/generated/resources/assets/malum/blockstates/budding_soulwood_leaves.json delete mode 100644 src/generated/resources/assets/malum/blockstates/hanging_mystic_soulwood_leaves.json create mode 100644 src/generated/resources/assets/malum/blockstates/hanging_soulwood_leaves.json delete mode 100644 src/generated/resources/assets/malum/blockstates/mystic_soulwood_leaves.json rename src/generated/resources/assets/malum/models/block/{mystic_soulwood_leaves.json => budding_soulwood_leaves.json} (51%) delete mode 100644 src/generated/resources/assets/malum/models/block/hanging_mystic_soulwood_leaves.json create mode 100644 src/generated/resources/assets/malum/models/block/hanging_soulwood_leaves.json create mode 100644 src/generated/resources/assets/malum/models/item/altered_slate.json create mode 100644 src/generated/resources/assets/malum/models/item/budding_soulwood_leaves.json delete mode 100644 src/generated/resources/assets/malum/models/item/hanging_mystic_soulwood_leaves.json create mode 100644 src/generated/resources/assets/malum/models/item/hanging_soulwood_leaves.json delete mode 100644 src/generated/resources/assets/malum/models/item/mystic_soulwood_leaves.json create mode 100644 src/generated/resources/assets/malum/models/item/tainted_slate.json rename src/generated/resources/data/malum/loot_tables/blocks/{mystic_soulwood_leaves.json => budding_soulwood_leaves.json} (96%) rename src/generated/resources/data/malum/loot_tables/blocks/{hanging_mystic_soulwood_leaves.json => hanging_soulwood_leaves.json} (96%) create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/altered_slate.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/corrupted_resonance.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/necklace_of_the_hidden_blade.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_aliment_cleansing.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_bolstering.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_culling.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_dexterity.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_haste.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_idle_restoration.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_igneous_solace.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reactive_shielding.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reinforcement.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_sacrificial_empowerment.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_spell_mastery.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_the_heretic.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_toughness.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_twinned_duration.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_unnatural_stamina.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_volatile_distortion.json create mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/tainted_slate.json create mode 100644 src/main/java/com/sammy/malum/common/effect/ReactiveShieldingEffect.java create mode 100644 src/main/java/com/sammy/malum/common/effect/SacrificialEmpowermentEffect.java rename src/main/java/com/sammy/malum/common/effect/{ => aura}/AerialAura.java (94%) rename src/main/java/com/sammy/malum/common/effect/{ => aura}/AqueousAura.java (96%) rename src/main/java/com/sammy/malum/common/effect/{ => aura}/CorruptedAerialAura.java (97%) rename src/main/java/com/sammy/malum/common/effect/{ => aura}/CorruptedAqueousAura.java (92%) rename src/main/java/com/sammy/malum/common/effect/{ => aura}/CorruptedEarthenAura.java (95%) rename src/main/java/com/sammy/malum/common/effect/{ => aura}/CorruptedInfernalAura.java (95%) rename src/main/java/com/sammy/malum/common/effect/{ => aura}/EarthenAura.java (95%) rename src/main/java/com/sammy/malum/common/effect/{ => aura}/InfernalAura.java (96%) delete mode 100644 src/main/java/com/sammy/malum/data/recipe/MalumSpiritInfusionRecipes.java create mode 100644 src/main/java/com/sammy/malum/data/recipe/infusion/ArtificeSpiritInfusionRecipes.java create mode 100644 src/main/java/com/sammy/malum/data/recipe/infusion/CurioSpiritInfusionRecipes.java create mode 100644 src/main/java/com/sammy/malum/data/recipe/infusion/GearSpiritInfusionRecipes.java create mode 100644 src/main/java/com/sammy/malum/data/recipe/infusion/MaterialSpiritInfusionRecipes.java create mode 100644 src/main/java/com/sammy/malum/data/recipe/infusion/RuneSpiritInfusionRecipes.java create mode 100644 src/main/java/com/sammy/malum/data/recipe/infusion/TotemicSpiritInfusionRecipes.java rename src/main/resources/assets/malum/textures/block/soulwood/{mystic_soulwood_leaves.png => budding_soulwood_leaves.png} (100%) rename src/main/resources/assets/malum/textures/block/soulwood/{hanging_mystic_soulwood_leaves.png => hanging_soulwood_leaves.png} (100%) create mode 100644 src/main/resources/assets/malum/textures/item/altered_slate.png create mode 100644 src/main/resources/assets/malum/textures/item/tainted_slate.png create mode 100644 src/main/resources/assets/malum/textures/mob_effect/reactive_shielding.png create mode 100644 src/main/resources/assets/malum/textures/mob_effect/sacrificial_empowerment.png diff --git a/gradle.properties b/gradle.properties index e46b167c8..b06690775 100644 --- a/gradle.properties +++ b/gradle.properties @@ -35,6 +35,6 @@ modAuthors=Sammy Semicolon # The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. modDescription=A dark magic mod focused on soul and spirit magic. # Mod Dependency Versions -lodestoneVersion=1.4.2.70 +lodestoneVersion=1.4.2.74 jeiVersion=15.2.0.22 curiosVersion=5.7.0+1.20.1 \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/budding_soulwood_leaves.json b/src/generated/resources/assets/malum/blockstates/budding_soulwood_leaves.json new file mode 100644 index 000000000..717ae81e2 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/budding_soulwood_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "malum:block/budding_soulwood_leaves" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/hanging_mystic_soulwood_leaves.json b/src/generated/resources/assets/malum/blockstates/hanging_mystic_soulwood_leaves.json deleted file mode 100644 index af7a60cd0..000000000 --- a/src/generated/resources/assets/malum/blockstates/hanging_mystic_soulwood_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "malum:block/hanging_mystic_soulwood_leaves" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/hanging_soulwood_leaves.json b/src/generated/resources/assets/malum/blockstates/hanging_soulwood_leaves.json new file mode 100644 index 000000000..f0047af15 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/hanging_soulwood_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "malum:block/hanging_soulwood_leaves" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/mystic_soulwood_leaves.json b/src/generated/resources/assets/malum/blockstates/mystic_soulwood_leaves.json deleted file mode 100644 index 45edcfc90..000000000 --- a/src/generated/resources/assets/malum/blockstates/mystic_soulwood_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "malum:block/mystic_soulwood_leaves" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/lang/en_us.json b/src/generated/resources/assets/malum/lang/en_us.json index 0f1557445..93e698c03 100644 --- a/src/generated/resources/assets/malum/lang/en_us.json +++ b/src/generated/resources/assets/malum/lang/en_us.json @@ -33,6 +33,7 @@ "block.malum.brilliant_obelisk": "Brilliant Obelisk", "block.malum.brilliant_obelisk_component": "Brilliant Obelisk Component", "block.malum.brilliant_stone": "Brilliant Stone", + "block.malum.budding_soulwood_leaves": "Budding Soulwood Leaves", "block.malum.calcified_blight": "Calcified Blight", "block.malum.chiseled_tainted_rock": "Chiseled Tainted Rock", "block.malum.chiseled_twisted_rock": "Chiseled Twisted Rock", @@ -50,8 +51,8 @@ "block.malum.ether_torch": "Ether Torch", "block.malum.exposed_runewood_log": "Exposed Runewood Log", "block.malum.exposed_soulwood_log": "Exposed Soulwood Log", - "block.malum.hanging_mystic_soulwood_leaves": "Hanging Mystic Soulwood Leaves", "block.malum.hanging_runewood_leaves": "Hanging Runewood Leaves", + "block.malum.hanging_soulwood_leaves": "Hanging Soulwood Leaves", "block.malum.iridescent_ether": "Iridescent Ether", "block.malum.iridescent_ether_torch": "Iridescent Ether Torch", "block.malum.mass_of_blighted_gunk": "Mass of Blighted Gunk", @@ -63,7 +64,6 @@ "block.malum.mote_of_raw_arcana": "Mote of Raw Arcana", "block.malum.mote_of_sacred_arcana": "Mote of Sacred Arcana", "block.malum.mote_of_wicked_arcana": "Mote of Wicked Arcana", - "block.malum.mystic_soulwood_leaves": "Mystic Soulwood Leaves", "block.malum.natural_quartz_cluster": "Natural Quartz Cluster", "block.malum.natural_quartz_ore": "Natural Quartz Ore", "block.malum.polished_tainted_rock": "Polished Tainted Rock", @@ -260,7 +260,9 @@ "effect.malum.miners_rage.description": "Your tools are bolstered with radiance, increasing your mining and attack speed.", "effect.malum.poseidons_grasp": "Poseidon's Grasp", "effect.malum.poseidons_grasp.description": "You reach out for further power, increasing your reach and item pickup distance.", + "effect.malum.reactive_shielding": "Reactive Shielding", "effect.malum.rejected": "Rejected", + "effect.malum.sacrificial_empowerment": "Sacrificial Empowerment", "effect.malum.silenced": "Silenced", "effect.malum.wicked_intent": "Wicked Intent", "effect.malum.zephyrs_courage": "Zephyr's Courage", @@ -287,6 +289,7 @@ "item.malum.agender_prideweave": "Agender Prideweave", "item.malum.alchemical_calx": "Alchemical Calx", "item.malum.alchemical_impetus": "Alchemical Impetus", + "item.malum.altered_slate": "Altered Slate", "item.malum.aluminum_impetus": "Aluminum Impetus", "item.malum.aluminum_node": "Aluminum Node", "item.malum.ancient_weave": "Ancient Weave", @@ -469,6 +472,7 @@ "item.malum.spirit_pouch": "Spirit Pouch", "item.malum.staff_of_the_auric_flame": "Staff of the Auric Flame", "item.malum.stellar_mechanism": "Stellar Mechanism", + "item.malum.tainted_slate": "Tainted Slate", "item.malum.tin_impetus": "Tin Impetus", "item.malum.tin_node": "Tin Node", "item.malum.token_of_gratitude": "Token of Gratitude", diff --git a/src/generated/resources/assets/malum/models/block/mystic_soulwood_leaves.json b/src/generated/resources/assets/malum/models/block/budding_soulwood_leaves.json similarity index 51% rename from src/generated/resources/assets/malum/models/block/mystic_soulwood_leaves.json rename to src/generated/resources/assets/malum/models/block/budding_soulwood_leaves.json index 4a2cdafd8..c2e3e5380 100644 --- a/src/generated/resources/assets/malum/models/block/mystic_soulwood_leaves.json +++ b/src/generated/resources/assets/malum/models/block/budding_soulwood_leaves.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/leaves", "textures": { - "all": "malum:block/soulwood/mystic_soulwood_leaves" + "all": "malum:block/soulwood/budding_soulwood_leaves" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/hanging_mystic_soulwood_leaves.json b/src/generated/resources/assets/malum/models/block/hanging_mystic_soulwood_leaves.json deleted file mode 100644 index 808d13349..000000000 --- a/src/generated/resources/assets/malum/models/block/hanging_mystic_soulwood_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "malum:block/templates/template_hanging_leaves", - "textures": { - "hanging_leaves": "malum:block/soulwood/hanging_mystic_soulwood_leaves", - "particle": "malum:block/soulwood/hanging_mystic_soulwood_leaves" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/hanging_soulwood_leaves.json b/src/generated/resources/assets/malum/models/block/hanging_soulwood_leaves.json new file mode 100644 index 000000000..d5034c65e --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/hanging_soulwood_leaves.json @@ -0,0 +1,7 @@ +{ + "parent": "malum:block/templates/template_hanging_leaves", + "textures": { + "hanging_leaves": "malum:block/soulwood/hanging_soulwood_leaves", + "particle": "malum:block/soulwood/hanging_soulwood_leaves" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/altered_slate.json b/src/generated/resources/assets/malum/models/item/altered_slate.json new file mode 100644 index 000000000..7b6a0a634 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/altered_slate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "malum:item/altered_slate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/budding_soulwood_leaves.json b/src/generated/resources/assets/malum/models/item/budding_soulwood_leaves.json new file mode 100644 index 000000000..6523e9b98 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/budding_soulwood_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/budding_soulwood_leaves" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/hanging_mystic_soulwood_leaves.json b/src/generated/resources/assets/malum/models/item/hanging_mystic_soulwood_leaves.json deleted file mode 100644 index 5d3b0cb39..000000000 --- a/src/generated/resources/assets/malum/models/item/hanging_mystic_soulwood_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "malum:block/hanging_mystic_soulwood_leaves" -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/hanging_soulwood_leaves.json b/src/generated/resources/assets/malum/models/item/hanging_soulwood_leaves.json new file mode 100644 index 000000000..11677efaa --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/hanging_soulwood_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/hanging_soulwood_leaves" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/mystic_soulwood_leaves.json b/src/generated/resources/assets/malum/models/item/mystic_soulwood_leaves.json deleted file mode 100644 index 37133b997..000000000 --- a/src/generated/resources/assets/malum/models/item/mystic_soulwood_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "malum:block/mystic_soulwood_leaves" -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/tainted_slate.json b/src/generated/resources/assets/malum/models/item/tainted_slate.json new file mode 100644 index 000000000..addc7084e --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/tainted_slate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "malum:item/tainted_slate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/mystic_soulwood_leaves.json b/src/generated/resources/data/malum/loot_tables/blocks/budding_soulwood_leaves.json similarity index 96% rename from src/generated/resources/data/malum/loot_tables/blocks/mystic_soulwood_leaves.json rename to src/generated/resources/data/malum/loot_tables/blocks/budding_soulwood_leaves.json index f83b20153..ed23d0073 100644 --- a/src/generated/resources/data/malum/loot_tables/blocks/mystic_soulwood_leaves.json +++ b/src/generated/resources/data/malum/loot_tables/blocks/budding_soulwood_leaves.json @@ -37,7 +37,7 @@ ] } ], - "name": "malum:mystic_soulwood_leaves" + "name": "malum:budding_soulwood_leaves" }, { "type": "minecraft:item", @@ -132,5 +132,5 @@ "rolls": 1.0 } ], - "random_sequence": "malum:blocks/mystic_soulwood_leaves" + "random_sequence": "malum:blocks/budding_soulwood_leaves" } \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/hanging_mystic_soulwood_leaves.json b/src/generated/resources/data/malum/loot_tables/blocks/hanging_soulwood_leaves.json similarity index 96% rename from src/generated/resources/data/malum/loot_tables/blocks/hanging_mystic_soulwood_leaves.json rename to src/generated/resources/data/malum/loot_tables/blocks/hanging_soulwood_leaves.json index 80aebb321..8c0af47c6 100644 --- a/src/generated/resources/data/malum/loot_tables/blocks/hanging_mystic_soulwood_leaves.json +++ b/src/generated/resources/data/malum/loot_tables/blocks/hanging_soulwood_leaves.json @@ -37,7 +37,7 @@ ] } ], - "name": "malum:hanging_mystic_soulwood_leaves" + "name": "malum:hanging_soulwood_leaves" }, { "type": "minecraft:item", @@ -132,5 +132,5 @@ "rolls": 1.0 } ], - "random_sequence": "malum:blocks/hanging_mystic_soulwood_leaves" + "random_sequence": "malum:blocks/hanging_soulwood_leaves" } \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/altered_slate.json b/src/generated/resources/data/malum/recipes/spirit_infusion/altered_slate.json new file mode 100644 index 000000000..0a7bf3654 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/altered_slate.json @@ -0,0 +1,22 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [ + { + "count": 4, + "item": "malum:null_slate" + } + ], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:altered_slate" + }, + "spirits": [ + { + "type": "eldritch", + "count": 8 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/corrupted_resonance.json b/src/generated/resources/data/malum/recipes/spirit_infusion/corrupted_resonance.json deleted file mode 100644 index cd7f7f7c3..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/corrupted_resonance.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "type": "malum:spirit_infusion", - "extra_items": [ - { - "count": 2, - "item": "malum:cluster_of_brilliance" - }, - { - "count": 4, - "item": "minecraft:lapis_lazuli" - }, - { - "count": 4, - "tag": "forge:gems/diamond" - }, - { - "count": 2, - "item": "malum:hex_ash" - } - ], - "input": { - "count": 16, - "item": "malum:raw_soulstone" - }, - "output": { - "item": "malum:corrupted_resonance" - }, - "spirits": [ - { - "type": "arcane", - "count": 32 - }, - { - "type": "wicked", - "count": 32 - }, - { - "type": "eldritch", - "count": 4 - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/necklace_of_the_hidden_blade.json b/src/generated/resources/data/malum/recipes/spirit_infusion/necklace_of_the_hidden_blade.json new file mode 100644 index 000000000..6b1be43e3 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/necklace_of_the_hidden_blade.json @@ -0,0 +1,38 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [ + { + "count": 16, + "item": "malum:void_salts" + }, + { + "count": 16, + "item": "malum:null_slate" + } + ], + "input": { + "count": 1, + "item": "malum:necklace_of_the_narrow_edge" + }, + "output": { + "item": "malum:necklace_of_the_hidden_blade" + }, + "spirits": [ + { + "type": "wicked", + "count": 32 + }, + { + "type": "arcane", + "count": 32 + }, + { + "type": "earthen", + "count": 32 + }, + { + "type": "eldritch", + "count": 16 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_aliment_cleansing.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_aliment_cleansing.json new file mode 100644 index 000000000..1c553df4e --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_aliment_cleansing.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_aliment_cleansing" + }, + "spirits": [ + { + "type": "aqueous", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_bolstering.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_bolstering.json new file mode 100644 index 000000000..563482b8e --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_bolstering.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_bolstering" + }, + "spirits": [ + { + "type": "sacred", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_culling.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_culling.json new file mode 100644 index 000000000..7339b7b5b --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_culling.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_culling" + }, + "spirits": [ + { + "type": "wicked", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_dexterity.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_dexterity.json new file mode 100644 index 000000000..2ba1500c0 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_dexterity.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_dexterity" + }, + "spirits": [ + { + "type": "aerial", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_haste.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_haste.json new file mode 100644 index 000000000..8b04a4245 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_haste.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_haste" + }, + "spirits": [ + { + "type": "infernal", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_idle_restoration.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_idle_restoration.json new file mode 100644 index 000000000..26604bb7f --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_idle_restoration.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_idle_restoration" + }, + "spirits": [ + { + "type": "sacred", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_igneous_solace.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_igneous_solace.json new file mode 100644 index 000000000..161189ae9 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_igneous_solace.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_igneous_solace" + }, + "spirits": [ + { + "type": "infernal", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reactive_shielding.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reactive_shielding.json new file mode 100644 index 000000000..07cbe56de --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reactive_shielding.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_reactive_shielding" + }, + "spirits": [ + { + "type": "earthen", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reinforcement.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reinforcement.json new file mode 100644 index 000000000..651f6b6b7 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reinforcement.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_reinforcement" + }, + "spirits": [ + { + "type": "arcane", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_sacrificial_empowerment.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_sacrificial_empowerment.json new file mode 100644 index 000000000..8479134b0 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_sacrificial_empowerment.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_sacrificial_empowerment" + }, + "spirits": [ + { + "type": "wicked", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_spell_mastery.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_spell_mastery.json new file mode 100644 index 000000000..bf3afae56 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_spell_mastery.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_spell_mastery" + }, + "spirits": [ + { + "type": "arcane", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_the_heretic.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_the_heretic.json new file mode 100644 index 000000000..7e5443768 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_the_heretic.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_the_heretic" + }, + "spirits": [ + { + "type": "eldritch", + "count": 8 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_toughness.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_toughness.json new file mode 100644 index 000000000..eeff383de --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_toughness.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_toughness" + }, + "spirits": [ + { + "type": "earthen", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_twinned_duration.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_twinned_duration.json new file mode 100644 index 000000000..95dc80ff9 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_twinned_duration.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_twinned_duration" + }, + "spirits": [ + { + "type": "aqueous", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_unnatural_stamina.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_unnatural_stamina.json new file mode 100644 index 000000000..46648719f --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_unnatural_stamina.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:altered_slate" + }, + "output": { + "item": "malum:rune_of_unnatural_stamina" + }, + "spirits": [ + { + "type": "aerial", + "count": 32 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_volatile_distortion.json b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_volatile_distortion.json new file mode 100644 index 000000000..9a7b777cf --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_volatile_distortion.json @@ -0,0 +1,17 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 1, + "item": "malum:tainted_slate" + }, + "output": { + "item": "malum:rune_of_volatile_distortion" + }, + "spirits": [ + { + "type": "eldritch", + "count": 8 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_infusion/tainted_slate.json b/src/generated/resources/data/malum/recipes/spirit_infusion/tainted_slate.json new file mode 100644 index 000000000..9790c4ecd --- /dev/null +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/tainted_slate.json @@ -0,0 +1,33 @@ +{ + "type": "malum:spirit_infusion", + "extra_items": [], + "input": { + "count": 4, + "item": "malum:tainted_rock" + }, + "output": { + "item": "malum:tainted_slate" + }, + "spirits": [ + { + "type": "arcane", + "count": 8 + }, + { + "type": "aerial", + "count": 4 + }, + { + "type": "aqueous", + "count": 4 + }, + { + "type": "earthen", + "count": 4 + }, + { + "type": "infernal", + "count": 4 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/leaves.json b/src/generated/resources/data/minecraft/tags/blocks/leaves.json index e9d213aac..5619b4a5d 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/leaves.json +++ b/src/generated/resources/data/minecraft/tags/blocks/leaves.json @@ -1,11 +1,11 @@ { "values": [ - "malum:mystic_soulwood_leaves", + "malum:hanging_soulwood_leaves", "malum:soulwood_leaves", "malum:hanging_runewood_leaves", "malum:hanging_runewood_leaves", + "malum:budding_soulwood_leaves", "malum:runewood_leaves", - "malum:runewood_leaves", - "malum:hanging_mystic_soulwood_leaves" + "malum:runewood_leaves" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json index c4ce6a18d..8d520eaf5 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json @@ -1,14 +1,14 @@ { "values": [ "malum:block_of_astral_weave", - "malum:mystic_soulwood_leaves", + "malum:hanging_soulwood_leaves", "malum:mass_of_blighted_gunk", "malum:blighted_earth", "malum:soulwood_leaves", "malum:hanging_runewood_leaves", "malum:blighted_soil", + "malum:budding_soulwood_leaves", "malum:runewood_leaves", - "malum:hanging_mystic_soulwood_leaves", "malum:block_of_hex_ash" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/leaves.json b/src/generated/resources/data/minecraft/tags/items/leaves.json index e9d213aac..5619b4a5d 100644 --- a/src/generated/resources/data/minecraft/tags/items/leaves.json +++ b/src/generated/resources/data/minecraft/tags/items/leaves.json @@ -1,11 +1,11 @@ { "values": [ - "malum:mystic_soulwood_leaves", + "malum:hanging_soulwood_leaves", "malum:soulwood_leaves", "malum:hanging_runewood_leaves", "malum:hanging_runewood_leaves", + "malum:budding_soulwood_leaves", "malum:runewood_leaves", - "malum:runewood_leaves", - "malum:hanging_mystic_soulwood_leaves" + "malum:runewood_leaves" ] } \ No newline at end of file diff --git a/src/main/java/com/sammy/malum/common/effect/ReactiveShieldingEffect.java b/src/main/java/com/sammy/malum/common/effect/ReactiveShieldingEffect.java new file mode 100644 index 000000000..83c369082 --- /dev/null +++ b/src/main/java/com/sammy/malum/common/effect/ReactiveShieldingEffect.java @@ -0,0 +1,20 @@ +package com.sammy.malum.common.effect; + +import com.sammy.malum.registry.common.*; +import net.minecraft.world.effect.*; +import net.minecraft.world.entity.ai.attributes.*; +import team.lodestar.lodestone.helpers.*; + +public class ReactiveShieldingEffect extends MobEffect { + public ReactiveShieldingEffect() { + super(MobEffectCategory.BENEFICIAL, ColorHelper.getColor(SpiritTypeRegistry.EARTHEN_SPIRIT.getPrimaryColor())); + addAttributeModifier(Attributes.ARMOR, "30e8d461-941b-4a0d-b105-60a73f28cf18", 0.1f, AttributeModifier.Operation.MULTIPLY_TOTAL); + addAttributeModifier(Attributes.ARMOR_TOUGHNESS, "a02a7c30-78a5-4d37-98bf-f30406de010b", 0.1f, AttributeModifier.Operation.MULTIPLY_TOTAL); + + } + + @Override + public boolean isDurationEffectTick(int pDuration, int pAmplifier) { + return false; + } +} \ No newline at end of file diff --git a/src/main/java/com/sammy/malum/common/effect/SacrificialEmpowermentEffect.java b/src/main/java/com/sammy/malum/common/effect/SacrificialEmpowermentEffect.java new file mode 100644 index 000000000..de479366f --- /dev/null +++ b/src/main/java/com/sammy/malum/common/effect/SacrificialEmpowermentEffect.java @@ -0,0 +1,19 @@ +package com.sammy.malum.common.effect; + +import com.sammy.malum.registry.common.*; +import net.minecraft.world.effect.*; +import net.minecraft.world.entity.ai.attributes.*; +import team.lodestar.lodestone.helpers.*; + +public class SacrificialEmpowermentEffect extends MobEffect { + public SacrificialEmpowermentEffect() { + super(MobEffectCategory.BENEFICIAL, ColorHelper.getColor(SpiritTypeRegistry.WICKED_SPIRIT.getPrimaryColor())); + addAttributeModifier(AttributeRegistry.SCYTHE_PROFICIENCY.get(), "5149e7f4-8f69-404e-9011-27396058db80", 4f, AttributeModifier.Operation.ADDITION); + + } + + @Override + public boolean isDurationEffectTick(int pDuration, int pAmplifier) { + return false; + } +} \ No newline at end of file diff --git a/src/main/java/com/sammy/malum/common/effect/SilencedEffect.java b/src/main/java/com/sammy/malum/common/effect/SilencedEffect.java index 3cbe3d9f0..9bdf4c6f7 100644 --- a/src/main/java/com/sammy/malum/common/effect/SilencedEffect.java +++ b/src/main/java/com/sammy/malum/common/effect/SilencedEffect.java @@ -26,7 +26,7 @@ public SilencedEffect() { @Override public void applyEffectTick(LivingEntity pLivingEntity, int pAmplifier) { TouchOfDarknessHandler handler = MalumLivingEntityDataCapability.getCapability(pLivingEntity).touchOfDarknessHandler; - handler.afflict(10); + handler.afflict(20); } @Override diff --git a/src/main/java/com/sammy/malum/common/effect/AerialAura.java b/src/main/java/com/sammy/malum/common/effect/aura/AerialAura.java similarity index 94% rename from src/main/java/com/sammy/malum/common/effect/AerialAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/AerialAura.java index eabe4597a..32a104d7c 100644 --- a/src/main/java/com/sammy/malum/common/effect/AerialAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/AerialAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.SpiritTypeRegistry; import net.minecraft.world.effect.MobEffect; diff --git a/src/main/java/com/sammy/malum/common/effect/AqueousAura.java b/src/main/java/com/sammy/malum/common/effect/aura/AqueousAura.java similarity index 96% rename from src/main/java/com/sammy/malum/common/effect/AqueousAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/AqueousAura.java index 71325cb0b..20f9f839a 100644 --- a/src/main/java/com/sammy/malum/common/effect/AqueousAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/AqueousAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.MobEffectRegistry; import com.sammy.malum.registry.common.SpiritTypeRegistry; diff --git a/src/main/java/com/sammy/malum/common/effect/CorruptedAerialAura.java b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedAerialAura.java similarity index 97% rename from src/main/java/com/sammy/malum/common/effect/CorruptedAerialAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/CorruptedAerialAura.java index 73496b707..5307cd4ed 100644 --- a/src/main/java/com/sammy/malum/common/effect/CorruptedAerialAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedAerialAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.MobEffectRegistry; import com.sammy.malum.registry.common.SpiritTypeRegistry; diff --git a/src/main/java/com/sammy/malum/common/effect/CorruptedAqueousAura.java b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedAqueousAura.java similarity index 92% rename from src/main/java/com/sammy/malum/common/effect/CorruptedAqueousAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/CorruptedAqueousAura.java index a623e25e3..bc91e11ae 100644 --- a/src/main/java/com/sammy/malum/common/effect/CorruptedAqueousAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedAqueousAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.SpiritTypeRegistry; import net.minecraft.world.effect.MobEffect; diff --git a/src/main/java/com/sammy/malum/common/effect/CorruptedEarthenAura.java b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedEarthenAura.java similarity index 95% rename from src/main/java/com/sammy/malum/common/effect/CorruptedEarthenAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/CorruptedEarthenAura.java index 42591cf4e..81fc5eb92 100644 --- a/src/main/java/com/sammy/malum/common/effect/CorruptedEarthenAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedEarthenAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.SpiritTypeRegistry; import net.minecraft.world.effect.MobEffect; diff --git a/src/main/java/com/sammy/malum/common/effect/CorruptedInfernalAura.java b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedInfernalAura.java similarity index 95% rename from src/main/java/com/sammy/malum/common/effect/CorruptedInfernalAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/CorruptedInfernalAura.java index 587797be2..62d94d6e4 100644 --- a/src/main/java/com/sammy/malum/common/effect/CorruptedInfernalAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/CorruptedInfernalAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.SpiritTypeRegistry; import net.minecraft.world.effect.MobEffect; diff --git a/src/main/java/com/sammy/malum/common/effect/EarthenAura.java b/src/main/java/com/sammy/malum/common/effect/aura/EarthenAura.java similarity index 95% rename from src/main/java/com/sammy/malum/common/effect/EarthenAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/EarthenAura.java index bb05fba0d..7630eb0be 100644 --- a/src/main/java/com/sammy/malum/common/effect/EarthenAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/EarthenAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.SpiritTypeRegistry; import net.minecraft.world.effect.MobEffect; diff --git a/src/main/java/com/sammy/malum/common/effect/InfernalAura.java b/src/main/java/com/sammy/malum/common/effect/aura/InfernalAura.java similarity index 96% rename from src/main/java/com/sammy/malum/common/effect/InfernalAura.java rename to src/main/java/com/sammy/malum/common/effect/aura/InfernalAura.java index 46945fc86..05061377f 100644 --- a/src/main/java/com/sammy/malum/common/effect/InfernalAura.java +++ b/src/main/java/com/sammy/malum/common/effect/aura/InfernalAura.java @@ -1,4 +1,4 @@ -package com.sammy.malum.common.effect; +package com.sammy.malum.common.effect.aura; import com.sammy.malum.registry.common.MobEffectRegistry; import com.sammy.malum.registry.common.SpiritTypeRegistry; diff --git a/src/main/java/com/sammy/malum/common/entity/boomerang/ScytheBoomerangEntity.java b/src/main/java/com/sammy/malum/common/entity/boomerang/ScytheBoomerangEntity.java index 9ae4b9d70..fde373181 100644 --- a/src/main/java/com/sammy/malum/common/entity/boomerang/ScytheBoomerangEntity.java +++ b/src/main/java/com/sammy/malum/common/entity/boomerang/ScytheBoomerangEntity.java @@ -120,7 +120,7 @@ protected void onHitEntity(EntityHitResult result) { livingentity.setSecondsOnFire(i * 4); } if (magicDamage > 0) { - if (livingentity.isAlive()) { + if (!livingentity.isDeadOrDying()) { livingentity.invulnerableTime = 0; livingentity.hurt(DamageTypeRegistry.create(level(), DamageTypeRegistry.VOODOO, this, scytheOwner), magicDamage); } diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneAlimentCleansingItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneAlimentCleansingItem.java index d429372cb..c5a66c86a 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneAlimentCleansingItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneAlimentCleansingItem.java @@ -1,6 +1,12 @@ package com.sammy.malum.common.item.curiosities.runes; import com.sammy.malum.registry.common.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.world.effect.*; +import net.minecraft.world.entity.*; +import net.minecraftforge.event.entity.living.*; +import net.minecraftforge.registries.*; +import team.lodestar.lodestone.helpers.*; import java.util.*; @@ -10,6 +16,25 @@ public RuneAlimentCleansingItem(Properties builder) { super(builder, SpiritTypeRegistry.AQUEOUS_SPIRIT); } + public static void onPotionApplied(MobEffectEvent.Added event) { + LivingEntity entity = event.getEntity(); + if (event.getOldEffectInstance() == null && CurioHelper.hasCurioEquipped(entity, ItemRegistry.RUNE_OF_ALIMENT_CLEANSING.get())) { + MobEffectInstance effect = event.getEffectInstance(); + MobEffect type = effect.getEffect(); + float multiplier = MobEffectRegistry.ALCHEMICAL_PROFICIENCY_MAP.getOrDefault(ForgeRegistries.MOB_EFFECTS.getKey(type), 1f); + if (type.getCategory().equals(MobEffectCategory.HARMFUL)) { + EntityHelper.shortenEffect(effect, entity, (int) (effect.getDuration() * 0.5f * multiplier)); + } + } + } + public static void onPotionExpired(MobEffectEvent.Expired event) { + LivingEntity entity = event.getEntity(); + if (event.getEffectInstance().getEffect().getCategory().equals(MobEffectCategory.HARMFUL) && CurioHelper.hasCurioEquipped(entity, ItemRegistry.RUNE_OF_ALIMENT_CLEANSING.get())) { + entity.heal(Math.max(entity.getMaxHealth()/10f, 4)); + } + } + + @Override public Optional getEffectDescriptor() { return Optional.of("aliment_cleansing"); diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneDexterityItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneDexterityItem.java index e8189d2c3..368502734 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneDexterityItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneDexterityItem.java @@ -2,6 +2,7 @@ import com.google.common.collect.*; import com.sammy.malum.registry.common.*; +import net.minecraft.world.entity.*; import net.minecraft.world.entity.ai.attributes.*; import net.minecraft.world.item.*; import top.theillusivec4.curios.api.*; @@ -17,8 +18,34 @@ public RuneDexterityItem(Properties builder) { @Override public void addAttributeModifiers(Multimap map, SlotContext slotContext, ItemStack stack) { addAttributeModifier(map, Attributes.MOVEMENT_SPEED, uuid -> new AttributeModifier(uuid, - "Curio Movement Speed", 0.2f, AttributeModifier.Operation.MULTIPLY_TOTAL)); + "Curio Movement Speed", 0.2f, AttributeModifier.Operation.MULTIPLY_TOTAL) { + @Override + public double getAmount() { + double amount = super.getAmount(); + final LivingEntity livingEntity = slotContext.entity(); + if (livingEntity != null) { + float health = livingEntity.getHealth(); + float maxHealth = livingEntity.getMaxHealth(); + float pct = health / maxHealth; + return amount * (2 - pct); + } + return amount; + } + }); } + + @Override + public void curioTick(SlotContext slotContext, ItemStack stack) { + LivingEntity livingEntity = slotContext.entity(); + if (livingEntity.level().getGameTime() % 5L == 0) { + AttributeInstance attribute = livingEntity.getAttribute(Attributes.MOVEMENT_SPEED); + if (attribute != null) { + attribute.setDirty(); + } + } + } + + @Override public Optional getEffectDescriptor() { return Optional.of("dexterity"); diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneReactiveShieldingItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneReactiveShieldingItem.java index aba42e2f5..4e5a1d974 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneReactiveShieldingItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneReactiveShieldingItem.java @@ -1,9 +1,11 @@ package com.sammy.malum.common.item.curiosities.runes; import com.sammy.malum.registry.common.*; +import net.minecraft.world.effect.*; import net.minecraft.world.entity.*; import net.minecraft.world.item.*; import net.minecraftforge.event.entity.living.*; +import team.lodestar.lodestone.helpers.*; import team.lodestar.lodestone.systems.item.*; import java.util.*; @@ -16,7 +18,14 @@ public RuneReactiveShieldingItem(Properties builder) { @Override public void takeDamageEvent(LivingHurtEvent event, LivingEntity attacker, LivingEntity attacked, ItemStack stack) { - + MobEffect shielding = MobEffectRegistry.REACTIVE_SHIELDING.get(); + MobEffectInstance effect = attacked.getEffect(shielding); + if (effect == null) { + attacked.addEffect(new MobEffectInstance(shielding, 100, 0, true, true, true)); + } else { + EntityHelper.amplifyEffect(effect, attacked, 1, 3); + EntityHelper.extendEffect(effect, attacked, 20, 100); + } } @Override diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneVolatileDistortionItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneVolatileDistortionItem.java index c5c42026e..fb471d708 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneVolatileDistortionItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/RuneVolatileDistortionItem.java @@ -15,7 +15,6 @@ public RuneVolatileDistortionItem(Properties builder) { super(builder, SpiritTypeRegistry.ELDRITCH_SPIRIT); } - @Override public void hurtEvent(LivingHurtEvent event, LivingEntity attacker, LivingEntity target, ItemStack stack) { final RandomSource random = attacker.getRandom(); diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneHereticItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneHereticItem.java index 430716dad..7dd434bda 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneHereticItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneHereticItem.java @@ -2,15 +2,33 @@ import com.sammy.malum.common.item.curiosities.runes.*; import com.sammy.malum.registry.common.*; +import net.minecraft.world.effect.*; +import net.minecraft.world.entity.*; +import net.minecraft.world.item.*; +import team.lodestar.lodestone.helpers.*; +import team.lodestar.lodestone.systems.item.*; import java.util.*; -public class RuneHereticItem extends MalumRuneCurioItem { +public class RuneHereticItem extends MalumRuneCurioItem implements IEventResponderItem { public RuneHereticItem(Properties builder) { super(builder, SpiritTypeRegistry.ELDRITCH_SPIRIT); } + @Override + public void takeDamageEvent(LivingEntity attacker, LivingEntity attacked, ItemStack stack) { + MobEffect silenced = MobEffectRegistry.SILENCED.get(); + MobEffectInstance effect = attacker.getEffect(silenced); + if (effect == null) { + attacker.addEffect(new MobEffectInstance(silenced, 300, 0, true, true, true)); + } else { + EntityHelper.amplifyEffect(effect, attacker, 1, 9); + EntityHelper.extendEffect(effect, attacker, 60, 600); + } + attacked.level().playSound(null, attacked.getX(), attacked.getY(), attacked.getZ(), SoundRegistry.DRAINING_MOTIF.get(), attacked.getSoundSource(), 1f, 1.5f); + } + @Override public Optional getEffectDescriptor() { return Optional.of("heretic"); diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneIgneousSolaceItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneIgneousSolaceItem.java index c5c8631a2..b8c6c6825 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneIgneousSolaceItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneIgneousSolaceItem.java @@ -2,15 +2,26 @@ import com.sammy.malum.common.item.curiosities.runes.*; import com.sammy.malum.registry.common.*; +import net.minecraft.world.entity.*; +import net.minecraft.world.item.*; +import net.minecraftforge.event.entity.living.*; +import team.lodestar.lodestone.systems.item.*; import java.util.*; -public class RuneIgneousSolaceItem extends MalumRuneCurioItem { +public class RuneIgneousSolaceItem extends MalumRuneCurioItem implements IEventResponderItem { public RuneIgneousSolaceItem(Properties builder) { super(builder, SpiritTypeRegistry.INFERNAL_SPIRIT); } + @Override + public void takeDamageEvent(LivingHurtEvent event, LivingEntity attacker, LivingEntity attacked, ItemStack stack) { + if (attacked.isOnFire()) { + event.setAmount(event.getAmount()*0.75f); + } + } + @Override public Optional getEffectDescriptor() { return Optional.of("igneous_solace"); diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneSacrificialEmpowermentItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneSacrificialEmpowermentItem.java index 83bed3f34..fbdb1a76a 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneSacrificialEmpowermentItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneSacrificialEmpowermentItem.java @@ -2,15 +2,31 @@ import com.sammy.malum.common.item.curiosities.runes.*; import com.sammy.malum.registry.common.*; +import net.minecraft.world.effect.*; +import net.minecraft.world.entity.*; +import net.minecraft.world.item.*; +import team.lodestar.lodestone.helpers.*; +import team.lodestar.lodestone.systems.item.*; import java.util.*; -public class RuneSacrificialEmpowermentItem extends MalumRuneCurioItem { +public class RuneSacrificialEmpowermentItem extends MalumRuneCurioItem implements IEventResponderItem { public RuneSacrificialEmpowermentItem(Properties builder) { super(builder, SpiritTypeRegistry.WICKED_SPIRIT); } + @Override + public void killEvent(LivingEntity attacker, LivingEntity target, ItemStack stack) { + MobEffect sacrificialEmpowerment = MobEffectRegistry.SACRIFICIAL_EMPOWERMENT.get(); + MobEffectInstance effect = attacker.getEffect(sacrificialEmpowerment); + if (effect == null) { + attacker.addEffect(new MobEffectInstance(sacrificialEmpowerment, 300, 0, true, true, true)); + } else { + EntityHelper.amplifyEffect(effect, attacker, 1, 3); + } + } + @Override public Optional getEffectDescriptor() { return Optional.of("sacrificial_empowerment"); diff --git a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneTwinnedDurationItem.java b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneTwinnedDurationItem.java index 85c369089..2eda6175b 100644 --- a/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneTwinnedDurationItem.java +++ b/src/main/java/com/sammy/malum/common/item/curiosities/runes/corrupted/RuneTwinnedDurationItem.java @@ -2,6 +2,12 @@ import com.sammy.malum.common.item.curiosities.runes.*; import com.sammy.malum.registry.common.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.world.effect.*; +import net.minecraft.world.entity.*; +import net.minecraftforge.event.entity.living.*; +import net.minecraftforge.registries.*; +import team.lodestar.lodestone.helpers.*; import java.util.*; @@ -11,6 +17,19 @@ public RuneTwinnedDurationItem(Properties builder) { super(builder, SpiritTypeRegistry.AQUEOUS_SPIRIT); } + public static void onPotionApplied(MobEffectEvent.Added event) { + LivingEntity entity = event.getEntity(); + if (event.getOldEffectInstance() == null && CurioHelper.hasCurioEquipped(entity, ItemRegistry.RUNE_OF_TWINNED_DURATION.get())) { + MobEffectInstance effect = event.getEffectInstance(); + MobEffect type = effect.getEffect(); + float multiplier = MobEffectRegistry.ALCHEMICAL_PROFICIENCY_MAP.getOrDefault(ForgeRegistries.MOB_EFFECTS.getKey(type), 1f); + if (type.isBeneficial()) { + EntityHelper.extendEffect(effect, entity, (int) (effect.getDuration() * multiplier)); + } + } + } + + @Override public Optional getEffectDescriptor() { return Optional.of("twinned_duration"); diff --git a/src/main/java/com/sammy/malum/common/worldgen/SoulwoodTreeFeature.java b/src/main/java/com/sammy/malum/common/worldgen/SoulwoodTreeFeature.java index 745fb2556..ec59afd7d 100644 --- a/src/main/java/com/sammy/malum/common/worldgen/SoulwoodTreeFeature.java +++ b/src/main/java/com/sammy/malum/common/worldgen/SoulwoodTreeFeature.java @@ -93,7 +93,7 @@ public void fill(LevelAccessor level) { if (blightFiller.getEntries().containsKey(pos) || blightFiller.getEntries().containsKey(pos.above())) { return; } - if (state.getBlock().equals(BlockRegistry.MYSTIC_SOULWOOD_LEAVES.get()) && level.getBlockState(pos).getBlock() instanceof MalumLeavesBlock) { + if (state.getBlock().equals(BlockRegistry.BUDDING_SOULWOOD_LEAVES.get()) && level.getBlockState(pos).getBlock() instanceof MalumLeavesBlock) { entry.place(level, pos); } else if (!isCareful() || entry.canPlace(level, pos)) { entry.place(level, pos); @@ -320,7 +320,7 @@ public static void makeLeafSlice(LodestoneBlockFiller filler, LodestoneBlockFill final int gradient = Mth.clamp(leavesColor + 1 + i, 0, 4); BlockPos vinePos = hangingLeavesPos.move(Direction.DOWN).immutable(); final boolean hanging = i == length; - BlockState state = (hanging ? BlockRegistry.HANGING_MYSTIC_SOULWOOD_LEAVES : BlockRegistry.MYSTIC_SOULWOOD_LEAVES).get().defaultBlockState().setValue(MalumLeavesBlock.COLOR, gradient); + BlockState state = (hanging ? BlockRegistry.HANGING_SOULWOOD_LEAVES : BlockRegistry.BUDDING_SOULWOOD_LEAVES).get().defaultBlockState().setValue(MalumLeavesBlock.COLOR, gradient); hangingLeavesFiller.getEntries().put(vinePos, new BlockStateEntry(state)); if (hanging) { hangingLeavesCoverage.add(column); diff --git a/src/main/java/com/sammy/malum/core/events/RuntimeEvents.java b/src/main/java/com/sammy/malum/core/events/RuntimeEvents.java index 25ed2d576..4f45394bc 100644 --- a/src/main/java/com/sammy/malum/core/events/RuntimeEvents.java +++ b/src/main/java/com/sammy/malum/core/events/RuntimeEvents.java @@ -3,6 +3,7 @@ import com.sammy.malum.common.block.storage.jar.*; import com.sammy.malum.common.capability.*; import com.sammy.malum.common.effect.*; +import com.sammy.malum.common.effect.aura.*; import com.sammy.malum.common.enchantment.*; import com.sammy.malum.common.entity.nitrate.*; import com.sammy.malum.common.item.cosmetic.curios.*; @@ -12,6 +13,8 @@ import com.sammy.malum.common.item.curiosities.curios.prospector.*; import com.sammy.malum.common.item.curiosities.curios.rotten.*; import com.sammy.malum.common.item.curiosities.curios.weeping.*; +import com.sammy.malum.common.item.curiosities.runes.*; +import com.sammy.malum.common.item.curiosities.runes.corrupted.*; import com.sammy.malum.core.handlers.*; import com.sammy.malum.core.listeners.*; import net.minecraft.core.*; @@ -156,6 +159,12 @@ public static void isPotionApplicable(MobEffectEvent.Applicable event) { @SubscribeEvent public static void onPotionApplied(MobEffectEvent.Added event) { CurioAlchemicalRing.onPotionApplied(event); + RuneTwinnedDurationItem.onPotionApplied(event); + RuneAlimentCleansingItem.onPotionApplied(event); + } + @SubscribeEvent + public static void onPotionExpired(MobEffectEvent.Expired event) { + RuneAlimentCleansingItem.onPotionExpired(event); } @SubscribeEvent diff --git a/src/main/java/com/sammy/malum/data/block/MalumBlockLootTables.java b/src/main/java/com/sammy/malum/data/block/MalumBlockLootTables.java index 7e78fcea3..23d249606 100644 --- a/src/main/java/com/sammy/malum/data/block/MalumBlockLootTables.java +++ b/src/main/java/com/sammy/malum/data/block/MalumBlockLootTables.java @@ -9,34 +9,26 @@ import net.minecraft.advancements.critereon.EnchantmentPredicate; import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.advancements.critereon.MinMaxBounds; -import net.minecraft.advancements.critereon.StatePropertiesPredicate; import net.minecraft.data.PackOutput; import net.minecraft.data.loot.BlockLootSubProvider; import net.minecraft.data.loot.LootTableProvider; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.StringRepresentable; import net.minecraft.world.flag.FeatureFlags; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.*; -import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; -import net.minecraft.world.level.block.state.properties.Property; -import net.minecraft.world.level.block.state.properties.SlabType; import net.minecraft.world.level.storage.loot.LootPool; import net.minecraft.world.level.storage.loot.LootTable; import net.minecraft.world.level.storage.loot.entries.LootItem; -import net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer; import net.minecraft.world.level.storage.loot.functions.*; import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet; import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; import net.minecraft.world.level.storage.loot.predicates.*; import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; -import net.minecraft.world.level.storage.loot.providers.number.NumberProvider; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; -import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; import team.lodestar.lodestone.systems.block.LodestoneBlockProperties; @@ -46,7 +38,6 @@ import java.util.Set; import java.util.function.BiConsumer; import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -91,7 +82,7 @@ protected void generate() { takeAll(blocks, b -> b.get().properties instanceof LodestoneBlockProperties && ((LodestoneBlockProperties) b.get().properties).getDatagenData().hasInheritedLootTable); takeAll(blocks, BlockRegistry.RUNEWOOD_LEAVES, BlockRegistry.HANGING_RUNEWOOD_LEAVES).forEach((b) -> add(b.get(), createLeavesDrops(b.get(), BlockRegistry.RUNEWOOD_SAPLING.get(), MAGIC_SAPLING_DROP_CHANCE))); - takeAll(blocks, BlockRegistry.SOULWOOD_LEAVES, BlockRegistry.MYSTIC_SOULWOOD_LEAVES, BlockRegistry.HANGING_MYSTIC_SOULWOOD_LEAVES).forEach((b) -> add(b.get(), createLeavesDrops(b.get(), BlockRegistry.SOULWOOD_GROWTH.get(), MAGIC_SAPLING_DROP_CHANCE))); + takeAll(blocks, BlockRegistry.SOULWOOD_LEAVES, BlockRegistry.BUDDING_SOULWOOD_LEAVES, BlockRegistry.HANGING_SOULWOOD_LEAVES).forEach((b) -> add(b.get(), createLeavesDrops(b.get(), BlockRegistry.SOULWOOD_GROWTH.get(), MAGIC_SAPLING_DROP_CHANCE))); add(take(blocks, BlockRegistry.BLIGHTED_SOULWOOD).get(), createSingleItemTableWithSilkTouch(BlockRegistry.BLIGHTED_SOULWOOD.get(), ItemRegistry.SOULWOOD_LOG.get())); add(take(blocks, BlockRegistry.BLIGHTED_SOIL).get(), createBlightedDrop(BlockRegistry.BLIGHTED_SOIL.get(), 4)); diff --git a/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java b/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java index e3f676f27..6a9aaff15 100644 --- a/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java +++ b/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java @@ -135,8 +135,8 @@ protected void registerStatesAndModels() { BlockStateSmithTypes.LOG_BLOCK.act(data, SOULWOOD_BEAM, SOULWOOD_LOG, STRIPPED_SOULWOOD_LOG, EXPOSED_SOULWOOD_LOG, REVEALED_SOULWOOD_LOG); BlockStateSmithTypes.WOOD_BLOCK.act(data, SOULWOOD, STRIPPED_SOULWOOD); - BlockStateSmithTypes.LEAVES_BLOCK.act(data, SOULWOOD_LEAVES, MYSTIC_SOULWOOD_LEAVES); - BlockStateSmithTypes.CUSTOM_MODEL.act(data, ItemModelSmithTypes.BLOCK_MODEL_ITEM, this::simpleBlock, this::hangingLeavesModel, HANGING_MYSTIC_SOULWOOD_LEAVES); + BlockStateSmithTypes.LEAVES_BLOCK.act(data, SOULWOOD_LEAVES, BUDDING_SOULWOOD_LEAVES); + BlockStateSmithTypes.CUSTOM_MODEL.act(data, ItemModelSmithTypes.BLOCK_MODEL_ITEM, this::simpleBlock, this::hangingLeavesModel, HANGING_SOULWOOD_LEAVES); BlockStateSmithTypes.CROSS_MODEL_BLOCK.act(data, SOULWOOD_GROWTH); BlockStateSmithTypes.BUTTON_BLOCK.act(data, SOULWOOD_BUTTON); diff --git a/src/main/java/com/sammy/malum/data/recipe/MalumRecipes.java b/src/main/java/com/sammy/malum/data/recipe/MalumRecipes.java index 578ab2af5..c1a93af5a 100644 --- a/src/main/java/com/sammy/malum/data/recipe/MalumRecipes.java +++ b/src/main/java/com/sammy/malum/data/recipe/MalumRecipes.java @@ -1,10 +1,10 @@ package com.sammy.malum.data.recipe; +import com.sammy.malum.data.recipe.infusion.*; import net.minecraft.data.*; import net.minecraft.data.recipes.*; import net.minecraft.data.recipes.packs.*; -import java.util.*; import java.util.function.*; public class MalumRecipes extends VanillaRecipeProvider { @@ -24,7 +24,14 @@ protected void buildRecipes(Consumer consumer) { vanillaRecipeReplacements.buildRecipes(consumer); MalumVanillaRecipes.buildRecipes(consumer); MalumVoidFavorRecipes.buildRecipes(consumer); - MalumSpiritInfusionRecipes.buildRecipes(consumer); + + ArtificeSpiritInfusionRecipes.buildRecipes(consumer); + CurioSpiritInfusionRecipes.buildRecipes(consumer); + GearSpiritInfusionRecipes.buildRecipes(consumer); + MaterialSpiritInfusionRecipes.buildRecipes(consumer); + RuneSpiritInfusionRecipes.buildRecipes(consumer); + TotemicSpiritInfusionRecipes.buildRecipes(consumer); + MalumSpiritTransmutationRecipes.buildRecipes(consumer); MalumSpiritFocusingRecipes.buildRecipes(consumer); } diff --git a/src/main/java/com/sammy/malum/data/recipe/MalumSpiritInfusionRecipes.java b/src/main/java/com/sammy/malum/data/recipe/MalumSpiritInfusionRecipes.java deleted file mode 100644 index 618aa55fe..000000000 --- a/src/main/java/com/sammy/malum/data/recipe/MalumSpiritInfusionRecipes.java +++ /dev/null @@ -1,629 +0,0 @@ -package com.sammy.malum.data.recipe; - -import com.sammy.malum.MalumMod; -import com.sammy.malum.common.item.impetus.ImpetusItem; -import com.sammy.malum.data.recipe.builder.SpiritInfusionRecipeBuilder; -import com.sammy.malum.registry.common.item.ItemRegistry; -import net.minecraft.data.recipes.FinishedRecipe; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.common.Tags; -import net.minecraftforge.common.crafting.ConditionalRecipe; -import net.minecraftforge.common.crafting.conditions.*; -import net.minecraftforge.registries.RegistryObject; - -import java.util.function.Consumer; - -import static com.sammy.malum.registry.common.SpiritTypeRegistry.*; -import static team.lodestar.lodestone.registry.common.tag.LodestoneItemTags.*; - -public class MalumSpiritInfusionRecipes { - - protected static void buildRecipes(Consumer consumer) { - new SpiritInfusionRecipeBuilder(Items.GUNPOWDER, 1, ItemRegistry.HEX_ASH.get(), 1) - .addSpirit(ARCANE_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.ROTTEN_FLESH, 4, ItemRegistry.LIVING_FLESH.get(), 2) - .addSpirit(SACRED_SPIRIT, 2) - .addSpirit(WICKED_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.CLAY_BALL, 4, ItemRegistry.ALCHEMICAL_CALX.get(), 4) - .addSpirit(ARCANE_SPIRIT, 2) - .addSpirit(EARTHEN_SPIRIT, 2) - .addSpirit(AQUEOUS_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.STONE_TOOL_MATERIALS), 16, ItemRegistry.TAINTED_ROCK.get(), 16) - .addSpirit(SACRED_SPIRIT, 1) - .addSpirit(ARCANE_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.STONE_TOOL_MATERIALS), 16, ItemRegistry.TWISTED_ROCK.get(), 16) - .addSpirit(WICKED_SPIRIT, 1) - .addSpirit(ARCANE_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.GLOWSTONE_DUST, 4, ItemRegistry.ETHER.get(), 2) - .addSpirit(INFERNAL_SPIRIT, 2) - .addSpirit(ARCANE_SPIRIT, 1) - .addExtraItem(ItemRegistry.BLAZING_QUARTZ.get(), 1) - .addExtraItem(Items.BLAZE_POWDER, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ETHER.get(), 1, ItemRegistry.IRIDESCENT_ETHER.get(), 1) - .addSpirit(AQUEOUS_SPIRIT, 2) - .addExtraItem(Items.PRISMARINE_CRYSTALS, 1) - .addExtraItem(ItemRegistry.ARCANE_CHARCOAL.get(), 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.GOLD_INGOT, 1, ItemRegistry.HALLOWED_GOLD_INGOT.get(), 1) - .addExtraItem(Ingredient.of(Tags.Items.GEMS_QUARTZ), 4) - .addSpirit(SACRED_SPIRIT, 2) - .addSpirit(ARCANE_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.RUNEWOOD_PLANKS.get(), 2, ItemRegistry.RUNEWOOD_OBELISK.get(), 1) - .addExtraItem(ItemRegistry.HALLOWED_GOLD_INGOT.get(), 2) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(SACRED_SPIRIT, 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.RUNEWOOD_PLANKS.get(), 2, ItemRegistry.BRILLIANT_OBELISK.get(), 1) - .addExtraItem(ItemRegistry.CLUSTER_OF_BRILLIANCE.get(), 2) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(AQUEOUS_SPIRIT, 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.RUNEWOOD_LOG.get(), 4, ItemRegistry.RUNEWOOD_TOTEM_BASE.get(), 4) - .addExtraItem(ItemRegistry.RUNEWOOD_PLANKS.get(), 6) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .addSpirit(AERIAL_SPIRIT, 2) - .addSpirit(AQUEOUS_SPIRIT, 2) - .addSpirit(EARTHEN_SPIRIT, 2) - .addSpirit(INFERNAL_SPIRIT, 2) - .addSpirit(ELDRITCH_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.SOULWOOD_LOG.get(), 4, ItemRegistry.SOULWOOD_TOTEM_BASE.get(), 4) - .addExtraItem(ItemRegistry.SOULWOOD_PLANKS.get(), 6) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .addSpirit(AERIAL_SPIRIT, 2) - .addSpirit(AQUEOUS_SPIRIT, 2) - .addSpirit(EARTHEN_SPIRIT, 2) - .addSpirit(INFERNAL_SPIRIT, 2) - .addSpirit(ELDRITCH_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_INGOT, 1, ItemRegistry.SOUL_STAINED_STEEL_INGOT.get(), 1) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addSpirit(WICKED_SPIRIT, 3) - .addSpirit(EARTHEN_SPIRIT, 1) - .addSpirit(ARCANE_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.CRUDE_SCYTHE.get(), 1, ItemRegistry.SOUL_STAINED_STEEL_SCYTHE.get(), 1) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_INGOT.get(), 4) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(WICKED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_HELMET, 1, ItemRegistry.SOUL_STAINED_STEEL_HELMET.get(), 1) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(WICKED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_CHESTPLATE, 1, ItemRegistry.SOUL_STAINED_STEEL_CHESTPLATE.get(), 1) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(WICKED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_LEGGINGS, 1, ItemRegistry.SOUL_STAINED_STEEL_LEGGINGS.get(), 1) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(WICKED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_BOOTS, 1, ItemRegistry.SOUL_STAINED_STEEL_BOOTS.get(), 1) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(WICKED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.WOOL), 2, ItemRegistry.SPIRIT_FABRIC.get(), 4) - .addExtraItem(Ingredient.of(Tags.Items.STRING), 2) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) - .addSpirit(WICKED_SPIRIT, 2) - .addSpirit(EARTHEN_SPIRIT, 1) - .addSpirit(AERIAL_SPIRIT, 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.LEATHER_HELMET, 1, ItemRegistry.SOUL_HUNTER_CLOAK.get(), 1) - .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(EARTHEN_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.LEATHER_CHESTPLATE, 1, ItemRegistry.SOUL_HUNTER_ROBE.get(), 1) - .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(EARTHEN_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.LEATHER_LEGGINGS, 1, ItemRegistry.SOUL_HUNTER_LEGGINGS.get(), 1) - .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(EARTHEN_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.LEATHER_BOOTS, 1, ItemRegistry.SOUL_HUNTER_BOOTS.get(), 1) - .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) - .addExtraItem(Ingredient.of(Tags.Items.FEATHERS), 2) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(EARTHEN_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_RING.get(), 1, ItemRegistry.RING_OF_ESOTERIC_SPOILS.get(), 1) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 8) - .addSpirit(WICKED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .addSpirit(ELDRITCH_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_ARCANE_PROWESS.get(), 1) - .addExtraItem(ItemRegistry.CLUSTER_OF_BRILLIANCE.get(), 4) - .addExtraItem(ItemRegistry.ALCHEMICAL_CALX.get(), 4) - .addSpirit(ARCANE_SPIRIT, 32) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_CURATIVE_TALENT.get(), 1) - .addExtraItem(ItemRegistry.LIVING_FLESH.get(), 4) - .addExtraItem(ItemRegistry.ALCHEMICAL_CALX.get(), 4) - .addExtraItem(Items.GHAST_TEAR, 1) - .addSpirit(SACRED_SPIRIT, 16) - .addSpirit(ARCANE_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_ALCHEMICAL_MASTERY.get(), 1) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .addExtraItem(Items.NETHER_WART, 4) - .addExtraItem(Items.FERMENTED_SPIDER_EYE, 1) - .addExtraItem(ItemRegistry.ALCHEMICAL_CALX.get(), 4) - .addSpirit(ARCANE_SPIRIT, 16) - .addSpirit(AQUEOUS_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_TIDAL_AFFINITY.get(), 1) - .addExtraItem(ItemRegistry.GOLD_NODE.get(), 6) - .addExtraItem(Items.HEART_OF_THE_SEA, 1) - .addExtraItem(Items.NAUTILUS_SHELL, 2) - .addSpirit(AQUEOUS_SPIRIT, 16) - .addSpirit(SACRED_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_BLISSFUL_HARMONY.get(), 1) - .addExtraItem(Ingredient.of(Tags.Items.INGOTS_IRON), 6) - .addExtraItem(Items.PHANTOM_MEMBRANE, 4) - .addExtraItem(ItemRegistry.ASTRAL_WEAVE.get(), 2) - .addExtraItem(Items.DIAMOND, 2) - .addSpirit(AERIAL_SPIRIT, 16) - .addSpirit(AQUEOUS_SPIRIT, 16) - .addSpirit(SACRED_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_RING.get(), 1, ItemRegistry.RING_OF_THE_DEMOLITIONIST.get(), 1) - .addExtraItem(ItemRegistry.COPPER_NODE.get(), 6) - .addExtraItem(Items.GUNPOWDER, 4) - .addExtraItem(ItemRegistry.CURSED_GRIT.get(), 4) - .addSpirit(INFERNAL_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_THE_NARROW_EDGE.get(), 1) - .addExtraItem(Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), 1) - .addExtraItem(Ingredient.of(Tags.Items.INGOTS_IRON), 2) - .addSpirit(WICKED_SPIRIT, 16) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_THE_MYSTIC_MIRROR.get(), 1) - .addExtraItem(ItemRegistry.RUNEWOOD_PLANKS.get(), 8) - .addExtraItem(ItemRegistry.SPECTRAL_OPTIC.get(), 1) - .addExtraItem(Items.ENDER_EYE, 1) - .addSpirit(SACRED_SPIRIT, 24) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_RING.get(), 1, ItemRegistry.RING_OF_DESPERATE_VORACITY.get(), 1) - .addExtraItem(Items.BONE, 2) - .addExtraItem(ItemRegistry.GRIM_TALC.get(), 2) - .addExtraItem(Items.ROTTEN_FLESH, 8) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .addSpirit(WICKED_SPIRIT, 16) - .addSpirit(SACRED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_BELT.get(), 1, ItemRegistry.BELT_OF_THE_STARVED.get(), 1) - .addExtraItem(Items.BONE, 2) - .addExtraItem(ItemRegistry.GRIM_TALC.get(), 4) - .addExtraItem(ItemRegistry.ROTTING_ESSENCE.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(AQUEOUS_SPIRIT, 16) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_THE_HOARDER.get(), 1) - .addExtraItem(Items.ENDER_PEARL, 2) - .addExtraItem(ItemRegistry.WARP_FLUX.get(), 4) - .addExtraItem(Ingredient.of(Tags.Items.INGOTS_IRON), 4) - .addExtraItem(Items.GUNPOWDER, 8) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(SACRED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_BELT.get(), 1, ItemRegistry.BELT_OF_THE_PROSPECTOR.get(), 1) - .addExtraItem(ItemRegistry.CTHONIC_GOLD.get(), 1) - .addExtraItem(Items.RAW_GOLD, 4) - .addExtraItem(Items.RAW_IRON, 4) - .addExtraItem(Items.RAW_COPPER, 4) - .addSpirit(EARTHEN_SPIRIT, 32) - .addSpirit(INFERNAL_SPIRIT, 32) - .addSpirit(ARCANE_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.HAY_BLOCK, 1, ItemRegistry.POPPET.get(), 2) - .addSpirit(WICKED_SPIRIT, 4) - .addSpirit(EARTHEN_SPIRIT, 4) - .addExtraItem(Items.WHEAT, 2) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.FURNACE, 1, ItemRegistry.SPIRIT_CRUCIBLE.get(), 1) - .addSpirit(INFERNAL_SPIRIT, 12) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .addExtraItem(ItemRegistry.TAINTED_ROCK.get(), 8) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 8, ItemRegistry.ALCHEMICAL_IMPETUS.get(), 1) - .addSpirit(ARCANE_SPIRIT, 4) - .addSpirit(EARTHEN_SPIRIT, 4) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 3) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Ingredient.of(Tags.Items.INGOTS_IRON), 2, ItemRegistry.TUNING_FORK.get(), 1) - .addSpirit(ARCANE_SPIRIT, 8) - .addSpirit(AQUEOUS_SPIRIT, 8) - .addExtraItem(ItemRegistry.RUNEWOOD_PLANKS.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 1) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.MENDING_DIFFUSER.get(), 1) - .addSpirit(SACRED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(ItemRegistry.LIVING_FLESH.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.IMPURITY_STABILIZER.get(), 1) - .addSpirit(WICKED_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.SHIELDING_APPARATUS.get(), 1) - .addSpirit(ARCANE_SPIRIT, 8) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.WARPING_ENGINE.get(), 1) - .addSpirit(ELDRITCH_SPIRIT, 2) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(ItemRegistry.WARP_FLUX.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.ACCELERATING_INLAY.get(), 1) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(ItemRegistry.ASTRAL_WEAVE.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.PRISMATIC_FOCUS_LENS.get(), 1) - .addSpirit(AQUEOUS_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(Ingredient.of(Tags.Items.GEMS_PRISMARINE), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.BLAZING_DIODE.get(), 1) - .addSpirit(INFERNAL_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(ItemRegistry.BLAZING_QUARTZ.get(), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.INTRICATE_ASSEMBLY.get(), 1) - .addSpirit(EARTHEN_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(Ingredient.of(Tags.Items.GEMS_EMERALD), 2) - .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.TWISTED_ROCK_ITEM_PEDESTAL.get(), 1, ItemRegistry.SPIRIT_CATALYZER.get(), 1) - .addSpirit(INFERNAL_SPIRIT, 8) - .addSpirit(AERIAL_SPIRIT, 8) - .addExtraItem(ItemRegistry.TAINTED_ROCK.get(), 4) - .addExtraItem(ItemRegistry.ETHER.get(), 1) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_ROCK_ITEM_PEDESTAL.get(), 1, ItemRegistry.REPAIR_PYLON.get(), 1) - .addSpirit(SACRED_SPIRIT, 16) - .addSpirit(AERIAL_SPIRIT, 16) - .addSpirit(AQUEOUS_SPIRIT, 16) - .addSpirit(INFERNAL_SPIRIT, 16) - .addExtraItem(ItemRegistry.TAINTED_ROCK.get(), 8) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.COALS), 4, ItemRegistry.ARCANE_CHARCOAL.get(), 4) - .addSpirit(ARCANE_SPIRIT, 1) - .addSpirit(INFERNAL_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.GLOWSTONE_DUST, 4, ItemRegistry.CURSED_GRIT.get(), 4) - .addSpirit(INFERNAL_SPIRIT, 4) - .addSpirit(WICKED_SPIRIT, 2) - .addSpirit(ARCANE_SPIRIT, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ETHER.get(), 1, ItemRegistry.ETHERIC_NITRATE.get(), 4) - .addSpirit(INFERNAL_SPIRIT, 8) - .addSpirit(AERIAL_SPIRIT, 8) - .addSpirit(ARCANE_SPIRIT, 8) - .addExtraItem(Items.TNT, 1) - .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) - .addExtraItem(Items.BLAZE_POWDER, 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ETHERIC_NITRATE.get(), 4, ItemRegistry.VIVID_NITRATE.get(), 4) - .addSpirit(AERIAL_SPIRIT, 4) - .addSpirit(AQUEOUS_SPIRIT, 4) - .addSpirit(INFERNAL_SPIRIT, 4) - .addSpirit(EARTHEN_SPIRIT, 4) - .addSpirit(ELDRITCH_SPIRIT, 1) - .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) - .addExtraItem(Ingredient.of(Tags.Items.GEMS_PRISMARINE), 2) - .addExtraItem(ItemRegistry.ARCANE_CHARCOAL.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.RAW_SOULSTONE.get(), 16, ItemRegistry.CORRUPTED_RESONANCE.get(), 1) - .addSpirit(ARCANE_SPIRIT, 32) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 4) - .addExtraItem(ItemRegistry.CLUSTER_OF_BRILLIANCE.get(), 2) - .addExtraItem(Items.LAPIS_LAZULI, 4) - .addExtraItem(Ingredient.of(Tags.Items.GEMS_DIAMOND), 4) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.SOUL_STAINED_STEEL_SWORD.get(), 1, ItemRegistry.TYRVING.get(), 1) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ARCANE_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 8) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 16) - .addExtraItem(ItemRegistry.SOULWOOD_PLANKS.get(), 8) - .addExtraItem(Ingredient.of(Tags.Items.OBSIDIAN), 4) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_BELT.get(), 1, ItemRegistry.BELT_OF_THE_MAGEBANE.get(), 1) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ARCANE_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 8) - .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 16) - .addExtraItem(ItemRegistry.SOULWOOD_PLANKS.get(), 8) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Ingredient.of(Tags.Items.INGOTS_IRON), 4, ItemRegistry.ESOTERIC_SPOOL.get(), 4) - .addSpirit(ARCANE_SPIRIT, 4) - .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ANOMALOUS_DESIGN.get(), 1, ItemRegistry.COMPLETE_DESIGN.get(), 1) - .addSpirit(SACRED_SPIRIT, 4) - .addSpirit(WICKED_SPIRIT, 4) - .addSpirit(ARCANE_SPIRIT, 4) - .addSpirit(ELDRITCH_SPIRIT, 4) - .addSpirit(AERIAL_SPIRIT, 4) - .addSpirit(AQUEOUS_SPIRIT, 4) - .addSpirit(EARTHEN_SPIRIT, 4) - .addSpirit(INFERNAL_SPIRIT, 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Ingredient.of(Tags.Items.INGOTS_IRON), 4, ItemRegistry.MALIGNANT_ALLOY_INGOT.get(), 1) - .addExtraItem(ItemRegistry.MALIGNANT_LEAD.get(), 2) - .addExtraItem(Items.NETHERITE_SCRAP, 3) - .addSpirit(EARTHEN_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.MNEMONIC_HEX_STAFF.get(), 1, ItemRegistry.MALIGNANT_SCEPTER.get(), 1) - .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_INGOT.get(), 2) - .addExtraItem(ItemRegistry.VOID_SALTS.get(), 8) - .addSpirit(AQUEOUS_SPIRIT, 32) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_AXE, 1, ItemRegistry.WEIGHT_OF_WORLDS.get(), 1) - .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_INGOT.get(), 2) - .addSpirit(EARTHEN_SPIRIT, 32) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_HELMET, 1, ItemRegistry.MALIGNANT_STRONGHOLD_HELMET.get(), 1) - .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) - .addSpirit(EARTHEN_SPIRIT, 32) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_CHESTPLATE, 1, ItemRegistry.MALIGNANT_STRONGHOLD_CHESTPLATE.get(), 1) - .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) - .addSpirit(EARTHEN_SPIRIT, 32) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_LEGGINGS, 1, ItemRegistry.MALIGNANT_STRONGHOLD_LEGGINGS.get(), 1) - .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) - .addSpirit(EARTHEN_SPIRIT, 32) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(Items.IRON_BOOTS, 1, ItemRegistry.MALIGNANT_STRONGHOLD_BOOTS.get(), 1) - .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) - .addSpirit(EARTHEN_SPIRIT, 32) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.SOULWOOD_PLANKS.get(), 2, ItemRegistry.MNEMONIC_HEX_STAFF.get(), 1) - .addExtraItem(ItemRegistry.MNEMONIC_FRAGMENT.get(), 8) - .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_INGOT.get(), 4) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(AERIAL_SPIRIT, 16) - .addSpirit(AQUEOUS_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.RING_OF_ESOTERIC_SPOILS.get(), 1, ItemRegistry.RING_OF_THE_PLENTIFUL.get(), 1) - .addExtraItem(ItemRegistry.NULL_SLATE.get(), 8) - .addExtraItem(ItemRegistry.MNEMONIC_FRAGMENT.get(), 8) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ARCANE_SPIRIT, 16) - .addSpirit(AQUEOUS_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 8) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.RING_OF_CURATIVE_TALENT.get(), 1, ItemRegistry.RING_OF_GROWING_FLESH.get(), 1) - .addExtraItem(ItemRegistry.VOID_SALTS.get(), 16) - .addExtraItem(ItemRegistry.NULL_SLATE.get(), 8) - .addSpirit(SACRED_SPIRIT, 16) - .addSpirit(WICKED_SPIRIT, 16) - .addSpirit(ARCANE_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.BELT_OF_THE_MAGEBANE.get(), 1, ItemRegistry.BELT_OF_THE_LIMITLESS.get(), 1) - .addExtraItem(ItemRegistry.FUSED_CONSCIOUSNESS.get(), 1) - .addExtraItem(ItemRegistry.VOID_SALTS.get(), 16) - .addExtraItem(ItemRegistry.NULL_SLATE.get(), 8) - .addExtraItem(ItemRegistry.MNEMONIC_FRAGMENT.get(), 4) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ARCANE_SPIRIT, 32) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.STELLAR_MECHANISM.get(), 1) - .addExtraItem(ItemRegistry.FUSED_CONSCIOUSNESS.get(), 1) - .addExtraItem(ItemRegistry.NULL_SLATE.get(), 2) - .addSpirit(AERIAL_SPIRIT, 4) - .addSpirit(AQUEOUS_SPIRIT, 4) - .addSpirit(EARTHEN_SPIRIT, 4) - .addSpirit(INFERNAL_SPIRIT, 4) - .addSpirit(ELDRITCH_SPIRIT, 4) - .build(consumer); - - new SpiritInfusionRecipeBuilder(ItemRegistry.MNEMONIC_HEX_STAFF.get(), 1, ItemRegistry.STAFF_OF_THE_AURIC_FLAME.get(), 1) - .addExtraItem(ItemRegistry.FUSED_CONSCIOUSNESS.get(), 1) - .addExtraItem(ItemRegistry.AURIC_EMBERS.get(), 8) - .addExtraItem(ItemRegistry.VOID_SALTS.get(), 8) - .addSpirit(WICKED_SPIRIT, 32) - .addSpirit(ARCANE_SPIRIT, 16) - .addSpirit(INFERNAL_SPIRIT, 16) - .addSpirit(ELDRITCH_SPIRIT, 16) - .build(consumer); - - metalImpetusRecipe(consumer, ItemRegistry.IRON_IMPETUS, Items.IRON_INGOT); - metalImpetusRecipe(consumer, ItemRegistry.COPPER_IMPETUS, Items.COPPER_INGOT); - metalImpetusRecipe(consumer, ItemRegistry.GOLD_IMPETUS, Items.GOLD_INGOT); - metalImpetusRecipe(consumer, ItemRegistry.LEAD_IMPETUS, INGOTS_LEAD); - metalImpetusRecipe(consumer, ItemRegistry.SILVER_IMPETUS, INGOTS_SILVER); - metalImpetusRecipe(consumer, ItemRegistry.ALUMINUM_IMPETUS, INGOTS_ALUMINUM); - metalImpetusRecipe(consumer, ItemRegistry.NICKEL_IMPETUS, INGOTS_NICKEL); - metalImpetusRecipe(consumer, ItemRegistry.URANIUM_IMPETUS, INGOTS_URANIUM); - metalImpetusRecipe(consumer, ItemRegistry.OSMIUM_IMPETUS, INGOTS_OSMIUM); - metalImpetusRecipe(consumer, ItemRegistry.ZINC_IMPETUS, INGOTS_ZINC); - metalImpetusRecipe(consumer, ItemRegistry.TIN_IMPETUS, INGOTS_TIN); - } - - public static void metalImpetusRecipe(Consumer consumer, RegistryObject output, TagKey ingot) { - ConditionalRecipe.builder().addCondition(new NotCondition(new TagEmptyCondition(ingot.location().toString()))).addRecipe( - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_IMPETUS.get(), 1, output.get(), 1) - .addSpirit(EARTHEN_SPIRIT, 8) - .addSpirit(INFERNAL_SPIRIT, 8) - .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) - .addExtraItem(Ingredient.of(ItemRegistry.CTHONIC_GOLD.get()), 1) - .addExtraItem(Ingredient.of(ingot), 6) - ::build) - .generateAdvancement() - .build(consumer, MalumMod.malumPath("impetus_creation_" + ingot.location().getPath().replace("ingots/", ""))); - } - - public static void metalImpetusRecipe(Consumer consumer, RegistryObject output, Item ingot) { - new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_IMPETUS.get(), 1, output.get(), 1) - .addSpirit(EARTHEN_SPIRIT, 8) - .addSpirit(INFERNAL_SPIRIT, 8) - .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) - .addExtraItem(Ingredient.of(ItemRegistry.CTHONIC_GOLD.get()), 1) - .addExtraItem(Ingredient.of(ingot), 6) - .build(consumer); - } -} \ No newline at end of file diff --git a/src/main/java/com/sammy/malum/data/recipe/infusion/ArtificeSpiritInfusionRecipes.java b/src/main/java/com/sammy/malum/data/recipe/infusion/ArtificeSpiritInfusionRecipes.java new file mode 100644 index 000000000..76a13253d --- /dev/null +++ b/src/main/java/com/sammy/malum/data/recipe/infusion/ArtificeSpiritInfusionRecipes.java @@ -0,0 +1,163 @@ +package com.sammy.malum.data.recipe.infusion; + +import com.sammy.malum.*; +import com.sammy.malum.common.item.impetus.*; +import com.sammy.malum.data.recipe.builder.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.data.recipes.*; +import net.minecraft.tags.*; +import net.minecraft.world.item.*; +import net.minecraft.world.item.crafting.*; +import net.minecraftforge.common.*; +import net.minecraftforge.common.crafting.*; +import net.minecraftforge.common.crafting.conditions.*; +import net.minecraftforge.registries.*; + +import java.util.function.*; + +import static com.sammy.malum.registry.common.SpiritTypeRegistry.*; +import static team.lodestar.lodestone.registry.common.tag.LodestoneItemTags.*; + +public class ArtificeSpiritInfusionRecipes { + + public static void buildRecipes(Consumer consumer) { + new SpiritInfusionRecipeBuilder(Items.FURNACE, 1, ItemRegistry.SPIRIT_CRUCIBLE.get(), 1) + .addSpirit(INFERNAL_SPIRIT, 12) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .addExtraItem(ItemRegistry.TAINTED_ROCK.get(), 8) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 8, ItemRegistry.ALCHEMICAL_IMPETUS.get(), 1) + .addSpirit(ARCANE_SPIRIT, 4) + .addSpirit(EARTHEN_SPIRIT, 4) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 3) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Ingredient.of(Tags.Items.INGOTS_IRON), 2, ItemRegistry.TUNING_FORK.get(), 1) + .addSpirit(ARCANE_SPIRIT, 8) + .addSpirit(AQUEOUS_SPIRIT, 8) + .addExtraItem(ItemRegistry.RUNEWOOD_PLANKS.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.MENDING_DIFFUSER.get(), 1) + .addSpirit(SACRED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(ItemRegistry.LIVING_FLESH.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.IMPURITY_STABILIZER.get(), 1) + .addSpirit(WICKED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.SHIELDING_APPARATUS.get(), 1) + .addSpirit(ARCANE_SPIRIT, 8) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.WARPING_ENGINE.get(), 1) + .addSpirit(ELDRITCH_SPIRIT, 2) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(ItemRegistry.WARP_FLUX.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.ACCELERATING_INLAY.get(), 1) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(ItemRegistry.ASTRAL_WEAVE.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.PRISMATIC_FOCUS_LENS.get(), 1) + .addSpirit(AQUEOUS_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(Ingredient.of(Tags.Items.GEMS_PRISMARINE), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.BLAZING_DIODE.get(), 1) + .addSpirit(INFERNAL_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(ItemRegistry.BLAZING_QUARTZ.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.INTRICATE_ASSEMBLY.get(), 1) + .addSpirit(EARTHEN_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(Ingredient.of(Tags.Items.GEMS_EMERALD), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.TWISTED_ROCK_ITEM_PEDESTAL.get(), 1, ItemRegistry.SPIRIT_CATALYZER.get(), 1) + .addSpirit(INFERNAL_SPIRIT, 8) + .addSpirit(AERIAL_SPIRIT, 8) + .addExtraItem(ItemRegistry.TAINTED_ROCK.get(), 4) + .addExtraItem(ItemRegistry.ETHER.get(), 1) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_ROCK_ITEM_PEDESTAL.get(), 1, ItemRegistry.REPAIR_PYLON.get(), 1) + .addSpirit(SACRED_SPIRIT, 16) + .addSpirit(AERIAL_SPIRIT, 16) + .addSpirit(AQUEOUS_SPIRIT, 16) + .addSpirit(INFERNAL_SPIRIT, 16) + .addExtraItem(ItemRegistry.TAINTED_ROCK.get(), 8) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_CALX.get(), 4, ItemRegistry.STELLAR_MECHANISM.get(), 1) + .addExtraItem(ItemRegistry.FUSED_CONSCIOUSNESS.get(), 1) + .addExtraItem(ItemRegistry.NULL_SLATE.get(), 2) + .addSpirit(AERIAL_SPIRIT, 4) + .addSpirit(AQUEOUS_SPIRIT, 4) + .addSpirit(EARTHEN_SPIRIT, 4) + .addSpirit(INFERNAL_SPIRIT, 4) + .addSpirit(ELDRITCH_SPIRIT, 4) + .build(consumer); + + metalImpetusRecipe(consumer, ItemRegistry.IRON_IMPETUS, Items.IRON_INGOT); + metalImpetusRecipe(consumer, ItemRegistry.COPPER_IMPETUS, Items.COPPER_INGOT); + metalImpetusRecipe(consumer, ItemRegistry.GOLD_IMPETUS, Items.GOLD_INGOT); + metalImpetusRecipe(consumer, ItemRegistry.LEAD_IMPETUS, INGOTS_LEAD); + metalImpetusRecipe(consumer, ItemRegistry.SILVER_IMPETUS, INGOTS_SILVER); + metalImpetusRecipe(consumer, ItemRegistry.ALUMINUM_IMPETUS, INGOTS_ALUMINUM); + metalImpetusRecipe(consumer, ItemRegistry.NICKEL_IMPETUS, INGOTS_NICKEL); + metalImpetusRecipe(consumer, ItemRegistry.URANIUM_IMPETUS, INGOTS_URANIUM); + metalImpetusRecipe(consumer, ItemRegistry.OSMIUM_IMPETUS, INGOTS_OSMIUM); + metalImpetusRecipe(consumer, ItemRegistry.ZINC_IMPETUS, INGOTS_ZINC); + metalImpetusRecipe(consumer, ItemRegistry.TIN_IMPETUS, INGOTS_TIN); + } + + public static void metalImpetusRecipe(Consumer consumer, RegistryObject output, TagKey ingot) { + ConditionalRecipe.builder().addCondition(new NotCondition(new TagEmptyCondition(ingot.location().toString()))).addRecipe( + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_IMPETUS.get(), 1, output.get(), 1) + .addSpirit(EARTHEN_SPIRIT, 8) + .addSpirit(INFERNAL_SPIRIT, 8) + .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) + .addExtraItem(Ingredient.of(ItemRegistry.CTHONIC_GOLD.get()), 1) + .addExtraItem(Ingredient.of(ingot), 6) + ::build) + .generateAdvancement() + .build(consumer, MalumMod.malumPath("impetus_creation_" + ingot.location().getPath().replace("ingots/", ""))); + } + + public static void metalImpetusRecipe(Consumer consumer, RegistryObject output, Item ingot) { + new SpiritInfusionRecipeBuilder(ItemRegistry.ALCHEMICAL_IMPETUS.get(), 1, output.get(), 1) + .addSpirit(EARTHEN_SPIRIT, 8) + .addSpirit(INFERNAL_SPIRIT, 8) + .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) + .addExtraItem(Ingredient.of(ItemRegistry.CTHONIC_GOLD.get()), 1) + .addExtraItem(Ingredient.of(ingot), 6) + .build(consumer); + } +} diff --git a/src/main/java/com/sammy/malum/data/recipe/infusion/CurioSpiritInfusionRecipes.java b/src/main/java/com/sammy/malum/data/recipe/infusion/CurioSpiritInfusionRecipes.java new file mode 100644 index 000000000..c45b317b8 --- /dev/null +++ b/src/main/java/com/sammy/malum/data/recipe/infusion/CurioSpiritInfusionRecipes.java @@ -0,0 +1,176 @@ +package com.sammy.malum.data.recipe.infusion; + +import com.sammy.malum.data.recipe.builder.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.data.recipes.*; +import net.minecraft.world.item.*; +import net.minecraft.world.item.crafting.*; +import net.minecraftforge.common.*; + +import java.util.function.*; + +import static com.sammy.malum.registry.common.SpiritTypeRegistry.*; + +public class CurioSpiritInfusionRecipes { + + public static void buildRecipes(Consumer consumer) { + new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_RING.get(), 1, ItemRegistry.RING_OF_ESOTERIC_SPOILS.get(), 1) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 8) + .addSpirit(WICKED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .addSpirit(ELDRITCH_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_ARCANE_PROWESS.get(), 1) + .addExtraItem(ItemRegistry.CLUSTER_OF_BRILLIANCE.get(), 4) + .addExtraItem(ItemRegistry.ALCHEMICAL_CALX.get(), 4) + .addSpirit(ARCANE_SPIRIT, 32) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_CURATIVE_TALENT.get(), 1) + .addExtraItem(ItemRegistry.LIVING_FLESH.get(), 4) + .addExtraItem(ItemRegistry.ALCHEMICAL_CALX.get(), 4) + .addExtraItem(Items.GHAST_TEAR, 1) + .addSpirit(SACRED_SPIRIT, 16) + .addSpirit(ARCANE_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_ALCHEMICAL_MASTERY.get(), 1) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .addExtraItem(Items.NETHER_WART, 4) + .addExtraItem(Items.FERMENTED_SPIDER_EYE, 1) + .addExtraItem(ItemRegistry.ALCHEMICAL_CALX.get(), 4) + .addSpirit(ARCANE_SPIRIT, 16) + .addSpirit(AQUEOUS_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_TIDAL_AFFINITY.get(), 1) + .addExtraItem(ItemRegistry.GOLD_NODE.get(), 6) + .addExtraItem(Items.HEART_OF_THE_SEA, 1) + .addExtraItem(Items.NAUTILUS_SHELL, 2) + .addSpirit(AQUEOUS_SPIRIT, 16) + .addSpirit(SACRED_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_BLISSFUL_HARMONY.get(), 1) + .addExtraItem(Ingredient.of(Tags.Items.INGOTS_IRON), 6) + .addExtraItem(Items.PHANTOM_MEMBRANE, 4) + .addExtraItem(ItemRegistry.ASTRAL_WEAVE.get(), 2) + .addExtraItem(Items.DIAMOND, 2) + .addSpirit(AERIAL_SPIRIT, 16) + .addSpirit(AQUEOUS_SPIRIT, 16) + .addSpirit(SACRED_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_RING.get(), 1, ItemRegistry.RING_OF_THE_DEMOLITIONIST.get(), 1) + .addExtraItem(ItemRegistry.COPPER_NODE.get(), 6) + .addExtraItem(Items.GUNPOWDER, 4) + .addExtraItem(ItemRegistry.CURSED_GRIT.get(), 4) + .addSpirit(INFERNAL_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_THE_NARROW_EDGE.get(), 1) + .addExtraItem(Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), 1) + .addExtraItem(Ingredient.of(Tags.Items.INGOTS_IRON), 2) + .addSpirit(WICKED_SPIRIT, 16) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_NECKLACE.get(), 1, ItemRegistry.NECKLACE_OF_THE_MYSTIC_MIRROR.get(), 1) + .addExtraItem(ItemRegistry.RUNEWOOD_PLANKS.get(), 8) + .addExtraItem(ItemRegistry.SPECTRAL_OPTIC.get(), 1) + .addExtraItem(Items.ENDER_EYE, 1) + .addSpirit(SACRED_SPIRIT, 24) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ORNATE_RING.get(), 1, ItemRegistry.RING_OF_DESPERATE_VORACITY.get(), 1) + .addExtraItem(Items.BONE, 2) + .addExtraItem(ItemRegistry.GRIM_TALC.get(), 2) + .addExtraItem(Items.ROTTEN_FLESH, 8) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .addSpirit(WICKED_SPIRIT, 16) + .addSpirit(SACRED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_BELT.get(), 1, ItemRegistry.BELT_OF_THE_STARVED.get(), 1) + .addExtraItem(Items.BONE, 2) + .addExtraItem(ItemRegistry.GRIM_TALC.get(), 4) + .addExtraItem(ItemRegistry.ROTTING_ESSENCE.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(AQUEOUS_SPIRIT, 16) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_RING.get(), 1, ItemRegistry.RING_OF_THE_HOARDER.get(), 1) + .addExtraItem(Items.ENDER_PEARL, 2) + .addExtraItem(ItemRegistry.WARP_FLUX.get(), 4) + .addExtraItem(Ingredient.of(Tags.Items.INGOTS_IRON), 4) + .addExtraItem(Items.GUNPOWDER, 8) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(SACRED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_BELT.get(), 1, ItemRegistry.BELT_OF_THE_PROSPECTOR.get(), 1) + .addExtraItem(ItemRegistry.CTHONIC_GOLD.get(), 1) + .addExtraItem(Items.RAW_GOLD, 4) + .addExtraItem(Items.RAW_IRON, 4) + .addExtraItem(Items.RAW_COPPER, 4) + .addSpirit(EARTHEN_SPIRIT, 32) + .addSpirit(INFERNAL_SPIRIT, 32) + .addSpirit(ARCANE_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.GILDED_BELT.get(), 1, ItemRegistry.BELT_OF_THE_MAGEBANE.get(), 1) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ARCANE_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 8) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 16) + .addExtraItem(ItemRegistry.SOULWOOD_PLANKS.get(), 8) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.RING_OF_ESOTERIC_SPOILS.get(), 1, ItemRegistry.RING_OF_THE_PLENTIFUL.get(), 1) + .addExtraItem(ItemRegistry.NULL_SLATE.get(), 8) + .addExtraItem(ItemRegistry.MNEMONIC_FRAGMENT.get(), 8) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ARCANE_SPIRIT, 16) + .addSpirit(AQUEOUS_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.RING_OF_CURATIVE_TALENT.get(), 1, ItemRegistry.RING_OF_GROWING_FLESH.get(), 1) + .addExtraItem(ItemRegistry.VOID_SALTS.get(), 16) + .addExtraItem(ItemRegistry.NULL_SLATE.get(), 8) + .addSpirit(SACRED_SPIRIT, 16) + .addSpirit(WICKED_SPIRIT, 16) + .addSpirit(ARCANE_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.NECKLACE_OF_THE_NARROW_EDGE.get(), 1, ItemRegistry.NECKLACE_OF_THE_HIDDEN_BLADE.get(), 1) + .addExtraItem(ItemRegistry.VOID_SALTS.get(), 16) + .addExtraItem(ItemRegistry.NULL_SLATE.get(), 16) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ARCANE_SPIRIT, 32) + .addSpirit(EARTHEN_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.BELT_OF_THE_MAGEBANE.get(), 1, ItemRegistry.BELT_OF_THE_LIMITLESS.get(), 1) + .addExtraItem(ItemRegistry.FUSED_CONSCIOUSNESS.get(), 1) + .addExtraItem(ItemRegistry.VOID_SALTS.get(), 16) + .addExtraItem(ItemRegistry.NULL_SLATE.get(), 8) + .addExtraItem(ItemRegistry.MNEMONIC_FRAGMENT.get(), 4) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ARCANE_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + } +} diff --git a/src/main/java/com/sammy/malum/data/recipe/infusion/GearSpiritInfusionRecipes.java b/src/main/java/com/sammy/malum/data/recipe/infusion/GearSpiritInfusionRecipes.java new file mode 100644 index 000000000..1a324f113 --- /dev/null +++ b/src/main/java/com/sammy/malum/data/recipe/infusion/GearSpiritInfusionRecipes.java @@ -0,0 +1,187 @@ +package com.sammy.malum.data.recipe.infusion; + +import com.sammy.malum.data.recipe.builder.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.data.recipes.*; +import net.minecraft.world.item.*; +import net.minecraft.world.item.crafting.*; +import net.minecraftforge.common.*; + +import java.util.function.*; + +import static com.sammy.malum.registry.common.SpiritTypeRegistry.*; + +public class GearSpiritInfusionRecipes { + + public static void buildRecipes(Consumer consumer) { + new SpiritInfusionRecipeBuilder(ItemRegistry.ETHER.get(), 1, ItemRegistry.ETHERIC_NITRATE.get(), 4) + .addSpirit(INFERNAL_SPIRIT, 8) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .addExtraItem(Items.TNT, 1) + .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) + .addExtraItem(Items.BLAZE_POWDER, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ETHERIC_NITRATE.get(), 4, ItemRegistry.VIVID_NITRATE.get(), 4) + .addSpirit(AERIAL_SPIRIT, 4) + .addSpirit(AQUEOUS_SPIRIT, 4) + .addSpirit(INFERNAL_SPIRIT, 4) + .addSpirit(EARTHEN_SPIRIT, 4) + .addSpirit(ELDRITCH_SPIRIT, 1) + .addExtraItem(Ingredient.of(Tags.Items.GUNPOWDER), 4) + .addExtraItem(Ingredient.of(Tags.Items.GEMS_PRISMARINE), 2) + .addExtraItem(ItemRegistry.ARCANE_CHARCOAL.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.SOUL_STAINED_STEEL_SWORD.get(), 1, ItemRegistry.TYRVING.get(), 1) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ARCANE_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 8) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 16) + .addExtraItem(ItemRegistry.SOULWOOD_PLANKS.get(), 8) + .addExtraItem(Ingredient.of(Tags.Items.OBSIDIAN), 4) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_AXE, 1, ItemRegistry.WEIGHT_OF_WORLDS.get(), 1) + .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_INGOT.get(), 2) + .addSpirit(EARTHEN_SPIRIT, 32) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.SOULWOOD_PLANKS.get(), 2, ItemRegistry.MNEMONIC_HEX_STAFF.get(), 1) + .addExtraItem(ItemRegistry.MNEMONIC_FRAGMENT.get(), 8) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_INGOT.get(), 4) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(AERIAL_SPIRIT, 16) + .addSpirit(AQUEOUS_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.MNEMONIC_HEX_STAFF.get(), 1, ItemRegistry.MALIGNANT_SCEPTER.get(), 1) + .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_INGOT.get(), 2) + .addExtraItem(ItemRegistry.VOID_SALTS.get(), 8) + .addSpirit(AQUEOUS_SPIRIT, 32) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.MNEMONIC_HEX_STAFF.get(), 1, ItemRegistry.STAFF_OF_THE_AURIC_FLAME.get(), 1) + .addExtraItem(ItemRegistry.FUSED_CONSCIOUSNESS.get(), 1) + .addExtraItem(ItemRegistry.AURIC_EMBERS.get(), 8) + .addExtraItem(ItemRegistry.VOID_SALTS.get(), 8) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ARCANE_SPIRIT, 16) + .addSpirit(INFERNAL_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.CRUDE_SCYTHE.get(), 1, ItemRegistry.SOUL_STAINED_STEEL_SCYTHE.get(), 1) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_INGOT.get(), 4) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(WICKED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_HELMET, 1, ItemRegistry.SOUL_STAINED_STEEL_HELMET.get(), 1) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(WICKED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_CHESTPLATE, 1, ItemRegistry.SOUL_STAINED_STEEL_CHESTPLATE.get(), 1) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(WICKED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_LEGGINGS, 1, ItemRegistry.SOUL_STAINED_STEEL_LEGGINGS.get(), 1) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(WICKED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_BOOTS, 1, ItemRegistry.SOUL_STAINED_STEEL_BOOTS.get(), 1) + .addExtraItem(ItemRegistry.SOUL_STAINED_STEEL_PLATING.get(), 6) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(ItemRegistry.TWISTED_ROCK.get(), 8) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(WICKED_SPIRIT, 8) + .addSpirit(ARCANE_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.LEATHER_HELMET, 1, ItemRegistry.SOUL_HUNTER_CLOAK.get(), 1) + .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(EARTHEN_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.LEATHER_CHESTPLATE, 1, ItemRegistry.SOUL_HUNTER_ROBE.get(), 1) + .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(EARTHEN_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.LEATHER_LEGGINGS, 1, ItemRegistry.SOUL_HUNTER_LEGGINGS.get(), 1) + .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(EARTHEN_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.LEATHER_BOOTS, 1, ItemRegistry.SOUL_HUNTER_BOOTS.get(), 1) + .addExtraItem(ItemRegistry.SPIRIT_FABRIC.get(), 4) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addExtraItem(Ingredient.of(Tags.Items.LEATHER), 2) + .addExtraItem(Ingredient.of(Tags.Items.FEATHERS), 2) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(EARTHEN_SPIRIT, 8) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_HELMET, 1, ItemRegistry.MALIGNANT_STRONGHOLD_HELMET.get(), 1) + .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) + .addSpirit(EARTHEN_SPIRIT, 32) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_CHESTPLATE, 1, ItemRegistry.MALIGNANT_STRONGHOLD_CHESTPLATE.get(), 1) + .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) + .addSpirit(EARTHEN_SPIRIT, 32) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_LEGGINGS, 1, ItemRegistry.MALIGNANT_STRONGHOLD_LEGGINGS.get(), 1) + .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) + .addSpirit(EARTHEN_SPIRIT, 32) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_BOOTS, 1, ItemRegistry.MALIGNANT_STRONGHOLD_BOOTS.get(), 1) + .addExtraItem(ItemRegistry.MALIGNANT_ALLOY_PLATING.get(), 3) + .addSpirit(EARTHEN_SPIRIT, 32) + .addSpirit(WICKED_SPIRIT, 32) + .addSpirit(ELDRITCH_SPIRIT, 16) + .build(consumer); + } +} diff --git a/src/main/java/com/sammy/malum/data/recipe/infusion/MaterialSpiritInfusionRecipes.java b/src/main/java/com/sammy/malum/data/recipe/infusion/MaterialSpiritInfusionRecipes.java new file mode 100644 index 000000000..164fe39c4 --- /dev/null +++ b/src/main/java/com/sammy/malum/data/recipe/infusion/MaterialSpiritInfusionRecipes.java @@ -0,0 +1,118 @@ +package com.sammy.malum.data.recipe.infusion; + +import com.sammy.malum.data.recipe.builder.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.data.recipes.*; +import net.minecraft.tags.*; +import net.minecraft.world.item.*; +import net.minecraft.world.item.crafting.*; +import net.minecraftforge.common.*; + +import java.util.function.*; + +import static com.sammy.malum.registry.common.SpiritTypeRegistry.*; + +public class MaterialSpiritInfusionRecipes { + + public static void buildRecipes(Consumer consumer) { + new SpiritInfusionRecipeBuilder(Items.GUNPOWDER, 1, ItemRegistry.HEX_ASH.get(), 1) + .addSpirit(ARCANE_SPIRIT, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.ROTTEN_FLESH, 4, ItemRegistry.LIVING_FLESH.get(), 2) + .addSpirit(SACRED_SPIRIT, 2) + .addSpirit(WICKED_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.CLAY_BALL, 4, ItemRegistry.ALCHEMICAL_CALX.get(), 4) + .addSpirit(ARCANE_SPIRIT, 2) + .addSpirit(EARTHEN_SPIRIT, 2) + .addSpirit(AQUEOUS_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.GLOWSTONE_DUST, 4, ItemRegistry.CURSED_GRIT.get(), 4) + .addSpirit(INFERNAL_SPIRIT, 4) + .addSpirit(WICKED_SPIRIT, 2) + .addSpirit(ARCANE_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.COALS), 4, ItemRegistry.ARCANE_CHARCOAL.get(), 4) + .addSpirit(ARCANE_SPIRIT, 1) + .addSpirit(INFERNAL_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.STONE_TOOL_MATERIALS), 16, ItemRegistry.TAINTED_ROCK.get(), 16) + .addSpirit(SACRED_SPIRIT, 1) + .addSpirit(ARCANE_SPIRIT, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.STONE_TOOL_MATERIALS), 16, ItemRegistry.TWISTED_ROCK.get(), 16) + .addSpirit(WICKED_SPIRIT, 1) + .addSpirit(ARCANE_SPIRIT, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.GLOWSTONE_DUST, 4, ItemRegistry.ETHER.get(), 2) + .addSpirit(INFERNAL_SPIRIT, 2) + .addSpirit(ARCANE_SPIRIT, 1) + .addExtraItem(ItemRegistry.BLAZING_QUARTZ.get(), 1) + .addExtraItem(Items.BLAZE_POWDER, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ETHER.get(), 1, ItemRegistry.IRIDESCENT_ETHER.get(), 1) + .addSpirit(AQUEOUS_SPIRIT, 2) + .addExtraItem(Items.PRISMARINE_CRYSTALS, 1) + .addExtraItem(ItemRegistry.ARCANE_CHARCOAL.get(), 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.GOLD_INGOT, 1, ItemRegistry.HALLOWED_GOLD_INGOT.get(), 1) + .addExtraItem(Ingredient.of(Tags.Items.GEMS_QUARTZ), 4) + .addSpirit(SACRED_SPIRIT, 2) + .addSpirit(ARCANE_SPIRIT, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.IRON_INGOT, 1, ItemRegistry.SOUL_STAINED_STEEL_INGOT.get(), 1) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 4) + .addSpirit(WICKED_SPIRIT, 3) + .addSpirit(EARTHEN_SPIRIT, 1) + .addSpirit(ARCANE_SPIRIT, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Ingredient.of(ItemTags.WOOL), 2, ItemRegistry.SPIRIT_FABRIC.get(), 4) + .addExtraItem(Ingredient.of(Tags.Items.STRING), 2) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) + .addSpirit(WICKED_SPIRIT, 2) + .addSpirit(EARTHEN_SPIRIT, 1) + .addSpirit(AERIAL_SPIRIT, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Items.HAY_BLOCK, 1, ItemRegistry.POPPET.get(), 2) + .addSpirit(WICKED_SPIRIT, 4) + .addSpirit(EARTHEN_SPIRIT, 4) + .addExtraItem(Items.WHEAT, 2) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Ingredient.of(Tags.Items.INGOTS_IRON), 4, ItemRegistry.ESOTERIC_SPOOL.get(), 4) + .addSpirit(ARCANE_SPIRIT, 4) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ANOMALOUS_DESIGN.get(), 1, ItemRegistry.COMPLETE_DESIGN.get(), 1) + .addSpirit(SACRED_SPIRIT, 4) + .addSpirit(WICKED_SPIRIT, 4) + .addSpirit(ARCANE_SPIRIT, 4) + .addSpirit(ELDRITCH_SPIRIT, 4) + .addSpirit(AERIAL_SPIRIT, 4) + .addSpirit(AQUEOUS_SPIRIT, 4) + .addSpirit(EARTHEN_SPIRIT, 4) + .addSpirit(INFERNAL_SPIRIT, 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(Ingredient.of(Tags.Items.INGOTS_IRON), 4, ItemRegistry.MALIGNANT_ALLOY_INGOT.get(), 1) + .addExtraItem(ItemRegistry.MALIGNANT_LEAD.get(), 2) + .addExtraItem(Items.NETHERITE_SCRAP, 3) + .addSpirit(EARTHEN_SPIRIT, 16) + .addSpirit(ELDRITCH_SPIRIT, 4) + .build(consumer); + } +} diff --git a/src/main/java/com/sammy/malum/data/recipe/infusion/RuneSpiritInfusionRecipes.java b/src/main/java/com/sammy/malum/data/recipe/infusion/RuneSpiritInfusionRecipes.java new file mode 100644 index 000000000..3dd60bd18 --- /dev/null +++ b/src/main/java/com/sammy/malum/data/recipe/infusion/RuneSpiritInfusionRecipes.java @@ -0,0 +1,77 @@ +package com.sammy.malum.data.recipe.infusion; + +import com.sammy.malum.data.recipe.builder.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.data.recipes.*; + +import java.util.function.*; + +import static com.sammy.malum.registry.common.SpiritTypeRegistry.*; + +public class RuneSpiritInfusionRecipes { + + public static void buildRecipes(Consumer consumer) { + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_ROCK.get(), 4, ItemRegistry.TAINTED_SLATE.get(), 1) + .addSpirit(ARCANE_SPIRIT, 8) + .addSpirit(AERIAL_SPIRIT, 4) + .addSpirit(AQUEOUS_SPIRIT, 4) + .addSpirit(EARTHEN_SPIRIT, 4) + .addSpirit(INFERNAL_SPIRIT, 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.ALTERED_SLATE.get(), 1) + .addSpirit(ELDRITCH_SPIRIT, 8) + .addExtraItem(ItemRegistry.NULL_SLATE.get(), 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_IDLE_RESTORATION.get(), 1) + .addSpirit(SACRED_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_CULLING.get(), 1) + .addSpirit(WICKED_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_REINFORCEMENT.get(), 1) + .addSpirit(ARCANE_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_VOLATILE_DISTORTION.get(), 1) + .addSpirit(ELDRITCH_SPIRIT, 8) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_DEXTERITY.get(), 1) + .addSpirit(AERIAL_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_ALIMENT_CLEANSING.get(), 1) + .addSpirit(AQUEOUS_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_REACTIVE_SHIELDING.get(), 1) + .addSpirit(EARTHEN_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1, ItemRegistry.RUNE_OF_HASTE.get(), 1) + .addSpirit(INFERNAL_SPIRIT, 32) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_BOLSTERING.get(), 1) + .addSpirit(SACRED_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_SACRIFICIAL_EMPOWERMENT.get(), 1) + .addSpirit(WICKED_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_SPELL_MASTERY.get(), 1) + .addSpirit(ARCANE_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_THE_HERETIC.get(), 1) + .addSpirit(ELDRITCH_SPIRIT, 8) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_UNNATURAL_STAMINA.get(), 1) + .addSpirit(AERIAL_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_TWINNED_DURATION.get(), 1) + .addSpirit(AQUEOUS_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_TOUGHNESS.get(), 1) + .addSpirit(EARTHEN_SPIRIT, 32) + .build(consumer); + new SpiritInfusionRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1, ItemRegistry.RUNE_OF_IGNEOUS_SOLACE.get(), 1) + .addSpirit(INFERNAL_SPIRIT, 32) + .build(consumer); + } +} diff --git a/src/main/java/com/sammy/malum/data/recipe/infusion/TotemicSpiritInfusionRecipes.java b/src/main/java/com/sammy/malum/data/recipe/infusion/TotemicSpiritInfusionRecipes.java new file mode 100644 index 000000000..00fb49838 --- /dev/null +++ b/src/main/java/com/sammy/malum/data/recipe/infusion/TotemicSpiritInfusionRecipes.java @@ -0,0 +1,48 @@ +package com.sammy.malum.data.recipe.infusion; + +import com.sammy.malum.data.recipe.builder.*; +import com.sammy.malum.registry.common.item.*; +import net.minecraft.data.recipes.*; + +import java.util.function.*; + +import static com.sammy.malum.registry.common.SpiritTypeRegistry.*; + +public class TotemicSpiritInfusionRecipes { + + public static void buildRecipes(Consumer consumer) { + new SpiritInfusionRecipeBuilder(ItemRegistry.RUNEWOOD_PLANKS.get(), 2, ItemRegistry.RUNEWOOD_OBELISK.get(), 1) + .addExtraItem(ItemRegistry.HALLOWED_GOLD_INGOT.get(), 2) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(SACRED_SPIRIT, 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.RUNEWOOD_PLANKS.get(), 2, ItemRegistry.BRILLIANT_OBELISK.get(), 1) + .addExtraItem(ItemRegistry.CLUSTER_OF_BRILLIANCE.get(), 2) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 1) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(AQUEOUS_SPIRIT, 4) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.RUNEWOOD_LOG.get(), 4, ItemRegistry.RUNEWOOD_TOTEM_BASE.get(), 4) + .addExtraItem(ItemRegistry.RUNEWOOD_PLANKS.get(), 6) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .addSpirit(AERIAL_SPIRIT, 2) + .addSpirit(AQUEOUS_SPIRIT, 2) + .addSpirit(EARTHEN_SPIRIT, 2) + .addSpirit(INFERNAL_SPIRIT, 2) + .addSpirit(ELDRITCH_SPIRIT, 1) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.SOULWOOD_LOG.get(), 4, ItemRegistry.SOULWOOD_TOTEM_BASE.get(), 4) + .addExtraItem(ItemRegistry.SOULWOOD_PLANKS.get(), 6) + .addExtraItem(ItemRegistry.HEX_ASH.get(), 2) + .addSpirit(AERIAL_SPIRIT, 2) + .addSpirit(AQUEOUS_SPIRIT, 2) + .addSpirit(EARTHEN_SPIRIT, 2) + .addSpirit(INFERNAL_SPIRIT, 2) + .addSpirit(ELDRITCH_SPIRIT, 1) + .build(consumer); + } +} diff --git a/src/main/java/com/sammy/malum/mixin/PlayerMixin.java b/src/main/java/com/sammy/malum/mixin/PlayerMixin.java index 966929fa2..7b4456322 100644 --- a/src/main/java/com/sammy/malum/mixin/PlayerMixin.java +++ b/src/main/java/com/sammy/malum/mixin/PlayerMixin.java @@ -1,6 +1,6 @@ package com.sammy.malum.mixin; -import com.sammy.malum.common.effect.AqueousAura; +import com.sammy.malum.common.effect.aura.AqueousAura; import net.minecraft.world.entity.player.Player; import net.minecraft.world.phys.AABB; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/com/sammy/malum/registry/common/MobEffectRegistry.java b/src/main/java/com/sammy/malum/registry/common/MobEffectRegistry.java index ebdbf3f7c..3829887da 100644 --- a/src/main/java/com/sammy/malum/registry/common/MobEffectRegistry.java +++ b/src/main/java/com/sammy/malum/registry/common/MobEffectRegistry.java @@ -2,6 +2,7 @@ import com.sammy.malum.MalumMod; import com.sammy.malum.common.effect.*; +import com.sammy.malum.common.effect.aura.*; import com.sammy.malum.registry.common.item.ItemRegistry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.effect.MobEffect; @@ -34,6 +35,9 @@ public class MobEffectRegistry { public static final RegistryObject POSEIDONS_GRASP = EFFECTS.register("poseidons_grasp", AqueousAura::new); public static final RegistryObject ANGLERS_LURE = EFFECTS.register("anglers_lure", CorruptedAqueousAura::new); + public static final RegistryObject REACTIVE_SHIELDING = EFFECTS.register("reactive_shielding", ReactiveShieldingEffect::new); + public static final RegistryObject SACRIFICIAL_EMPOWERMENT = EFFECTS.register("sacrificial_empowerment", SacrificialEmpowermentEffect::new); + public static final RegistryObject GLUTTONY = attachAlchemicalProficiency(EFFECTS.register("gluttony", GluttonyEffect::new), 0.5f); public static final RegistryObject CANCEROUS_GROWTH = EFFECTS.register("cancerous_growth", GrowingFleshEffect::new); public static final RegistryObject WICKED_INTENT = attachAlchemicalProficiency(EFFECTS.register("wicked_intent", WickedIntentEffect::new), 0.2f); diff --git a/src/main/java/com/sammy/malum/registry/common/block/BlockRegistry.java b/src/main/java/com/sammy/malum/registry/common/block/BlockRegistry.java index 05f2e59c2..63dbcc338 100644 --- a/src/main/java/com/sammy/malum/registry/common/block/BlockRegistry.java +++ b/src/main/java/com/sammy/malum/registry/common/block/BlockRegistry.java @@ -243,8 +243,8 @@ public class BlockRegistry { //region soulwood public static final RegistryObject SOULWOOD_GROWTH = BLOCKS.register("soulwood_growth", () -> new SoulwoodGrowthBlock(MalumBlockProperties.BLIGHTED_PLANTS().setCutoutRenderType().randomTicks(), FeatureRegistry.SOULWOOD_TREE)); public static final RegistryObject SOULWOOD_LEAVES = BLOCKS.register("soulwood_leaves", () -> new MalumLeavesBlock(MalumBlockProperties.SOULWOOD_LEAVES().setCutoutRenderType(), new Color(213, 8, 63), new Color(255, 61, 243))); - public static final RegistryObject MYSTIC_SOULWOOD_LEAVES = BLOCKS.register("mystic_soulwood_leaves", () -> new MalumLeavesBlock(MalumBlockProperties.SOULWOOD_LEAVES().setCutoutRenderType(), new Color(213, 8, 63), new Color(255, 61, 243))); - public static final RegistryObject HANGING_MYSTIC_SOULWOOD_LEAVES = BLOCKS.register("hanging_mystic_soulwood_leaves", () -> new MalumHangingLeavesBlock(MalumBlockProperties.SOULWOOD_LEAVES().setCutoutRenderType().noOcclusion().noCollission(), new Color(213, 8, 63), new Color(255, 61, 243))); + public static final RegistryObject BUDDING_SOULWOOD_LEAVES = BLOCKS.register("budding_soulwood_leaves", () -> new MalumLeavesBlock(MalumBlockProperties.SOULWOOD_LEAVES().setCutoutRenderType(), new Color(213, 8, 63), new Color(255, 61, 243))); + public static final RegistryObject HANGING_SOULWOOD_LEAVES = BLOCKS.register("hanging_soulwood_leaves", () -> new MalumHangingLeavesBlock(MalumBlockProperties.SOULWOOD_LEAVES().setCutoutRenderType().noOcclusion().noCollission(), new Color(213, 8, 63), new Color(255, 61, 243))); public static final RegistryObject STRIPPED_SOULWOOD_LOG = BLOCKS.register("stripped_soulwood_log", () -> new RotatedPillarBlock(MalumBlockProperties.SOULWOOD().addTags(LOGS, STRIPPED_LOGS, SOULWOOD_LOGS))); public static final RegistryObject SOULWOOD_LOG = BLOCKS.register("soulwood_log", () -> new SoulwoodLogBlock(MalumBlockProperties.SOULWOOD().addTags(LOGS, SOULWOOD_LOGS), STRIPPED_SOULWOOD_LOG, true)); @@ -406,7 +406,7 @@ public static void setBlockColors(RegisterColorHandlersEvent.Block event) { int green = (int) Mth.lerp(value, malumLeavesBlock.minColor.getGreen(), malumLeavesBlock.maxColor.getGreen()); int blue = (int) Mth.lerp(value, malumLeavesBlock.minColor.getBlue(), malumLeavesBlock.maxColor.getBlue()); return red << 16 | green << 8 | blue; - }, SOULWOOD_LEAVES.get(), MYSTIC_SOULWOOD_LEAVES.get(), HANGING_MYSTIC_SOULWOOD_LEAVES.get()); + }, SOULWOOD_LEAVES.get(), BUDDING_SOULWOOD_LEAVES.get(), HANGING_SOULWOOD_LEAVES.get()); } } } \ No newline at end of file diff --git a/src/main/java/com/sammy/malum/registry/common/item/ItemRegistry.java b/src/main/java/com/sammy/malum/registry/common/item/ItemRegistry.java index 6d0410e5f..926573152 100644 --- a/src/main/java/com/sammy/malum/registry/common/item/ItemRegistry.java +++ b/src/main/java/com/sammy/malum/registry/common/item/ItemRegistry.java @@ -316,8 +316,8 @@ public static RegistryObject register(String name, Item.Prop public static final RegistryObject CURSED_SAP_BLOCK = register("cursed_sap_block", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.CURSED_SAP_BLOCK.get(), p)); public static final RegistryObject SOULWOOD_LEAVES = register("soulwood_leaves", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.SOULWOOD_LEAVES.get(), p)); - public static final RegistryObject MYSTIC_SOULWOOD_LEAVES = register("mystic_soulwood_leaves", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.MYSTIC_SOULWOOD_LEAVES.get(), p)); - public static final RegistryObject HANGING_MYSTIC_SOULWOOD_LEAVES = register("hanging_mystic_soulwood_leaves", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.HANGING_MYSTIC_SOULWOOD_LEAVES.get(), p)); + public static final RegistryObject BUDDING_SOULWOOD_LEAVES = register("budding_soulwood_leaves", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.BUDDING_SOULWOOD_LEAVES.get(), p)); + public static final RegistryObject HANGING_SOULWOOD_LEAVES = register("hanging_soulwood_leaves", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.HANGING_SOULWOOD_LEAVES.get(), p)); public static final RegistryObject SOULWOOD_GROWTH = register("soulwood_growth", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.SOULWOOD_GROWTH.get(), p)); public static final RegistryObject BLIGHTED_SOULWOOD = register("blighted_soulwood", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.BLIGHTED_SOULWOOD.get(), p)); @@ -445,6 +445,8 @@ public static RegistryObject register(String name, Item.Prop public static final RegistryObject SPECTRAL_LENS = register("spectral_lens", DEFAULT_PROPERTIES(), Item::new); public static final RegistryObject SPECTRAL_OPTIC = register("spectral_optic", DEFAULT_PROPERTIES(), Item::new); public static final RegistryObject POPPET = register("poppet", DEFAULT_PROPERTIES(), Item::new); + public static final RegistryObject TAINTED_SLATE = register("tainted_slate", DEFAULT_PROPERTIES(), Item::new); + public static final RegistryObject ALTERED_SLATE = register("altered_slate", DEFAULT_PROPERTIES(), Item::new); public static final RegistryObject CORRUPTED_RESONANCE = register("corrupted_resonance", DEFAULT_PROPERTIES(), Item::new); public static final RegistryObject ANOMALOUS_DESIGN = register("anomalous_design", DEFAULT_PROPERTIES(), Item::new); public static final RegistryObject COMPLETE_DESIGN = register("complete_design", DEFAULT_PROPERTIES(), SimpleFoiledItem::new); @@ -657,7 +659,10 @@ public static class Common { @SubscribeEvent public static void registerCompost(FMLCommonSetupEvent event) { registerCompostable(RUNEWOOD_LEAVES, 0.3f); + registerCompostable(HANGING_RUNEWOOD_LEAVES, 0.3f); registerCompostable(SOULWOOD_LEAVES, 0.3f); + registerCompostable(BUDDING_SOULWOOD_LEAVES, 0.3f); + registerCompostable(HANGING_SOULWOOD_LEAVES, 0.3f); registerCompostable(RUNEWOOD_SAPLING, 0.3f); registerCompostable(SOULWOOD_GROWTH, 0.3f); } diff --git a/src/main/resources/assets/malum/textures/block/soulwood/mystic_soulwood_leaves.png b/src/main/resources/assets/malum/textures/block/soulwood/budding_soulwood_leaves.png similarity index 100% rename from src/main/resources/assets/malum/textures/block/soulwood/mystic_soulwood_leaves.png rename to src/main/resources/assets/malum/textures/block/soulwood/budding_soulwood_leaves.png diff --git a/src/main/resources/assets/malum/textures/block/soulwood/hanging_mystic_soulwood_leaves.png b/src/main/resources/assets/malum/textures/block/soulwood/hanging_soulwood_leaves.png similarity index 100% rename from src/main/resources/assets/malum/textures/block/soulwood/hanging_mystic_soulwood_leaves.png rename to src/main/resources/assets/malum/textures/block/soulwood/hanging_soulwood_leaves.png diff --git a/src/main/resources/assets/malum/textures/item/altered_slate.png b/src/main/resources/assets/malum/textures/item/altered_slate.png new file mode 100644 index 0000000000000000000000000000000000000000..02b9f99ccfa918aad6577a94711e93c60058b779 GIT binary patch literal 522 zcmV+l0`>igP)n<#8Bo!<~ zf=F170_-8CnuPW^G?$I`) zY-%jSN6}CR;h5NLyoT{)kc7QoDY$h6Av0u#&XWMmF;HzAT)X5`dE-lg1S4_I3JDJAe`7xTUP<^rD0(Gqvd>#1Hr10b><>DxmgduozTUgG7q2J6|`F1 zv^x{e9IVj$;oJ^ofM7XqR$Y)41oS{V*bNOo) zM2lGt-u)%2qfJgg7!C$e!(d@%%N25hF7Q5}7>{*lAq1ANA1by0#QLoDfZ8lPz1t@WrTlTFloy$Jn&iBnXGvCuNA`bQs2jchf$&sc?RbC2UCY5$D#nJ;*Boe{K`rcr1 zA&$-LHbTK^2DjQ@=yaPHNkBkKCNNcvN0%gU&$iLC`)D-kLn^dbY;BNE&N5&=k-%yy zE451117?`-u5K>J6IfFbPWJ0M1Kq8ZUrQ)H-s9}z)M=d+L@f)!kPngY4E(0SD%_Rn zOl?r)Z}Tz%T?!I02h|Ws4H4xEIoSPQhlHiL2}sHA){fIRfhgQ_s5d`l0+kBdh5&iz z@KP;1Dx6_>Rb-Y|keo{m`JwVwL9g3~P$3z~I}6K-z^@y;5el~-#uA9F@JdYsy3b@1 zG82K@tsh($&b6Vp;B7@WCNQZ782oK_@bTW_GlA**F99i_Aa77SJy#{5u&eSlk_ySs g0BW^6W$quhq{k8I3e-pd0000XP)`ah^4(8vJ!S*Slc zKcVlhpCU*Y4iF9z_RTyc7HTM&O7gqSYEyG~7q#M2R7HcXK{ioz**JC5;%JOsvd;`^ zHMNn*3H7ic5{(oUb=jN>3IT&B7nflQ-FS3Cp571*4Y=7eK+xzu87p`sKrkEyJNrQf zEloeL2MDNG-|HlRX1zXc2%|M1*>LO$I`wZGC>qXd%yzkJ=xR=3<=8V}G``ntFO)$x zb^}F#y{~kzqNdeHhCmr^4dY`Zu@hw=$cE{N-NSv2*)x+~&ckGkUlAny!d0UyJir(T zj0+E;7Aqk`%0?41{YjOUIGVbpJVW!C#+$0T7%G VB3O<+7ytkO07*qoM6N<$f&h}--pT*~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/textures/mob_effect/sacrificial_empowerment.png b/src/main/resources/assets/malum/textures/mob_effect/sacrificial_empowerment.png new file mode 100644 index 0000000000000000000000000000000000000000..8371cf4203f196c4f0fb1c5e51045b836bbe5252 GIT binary patch literal 516 zcmV+f0{i`mP)eG zmCed!{)A?fP?~;^p7p+LGk%w+_j#Y^)9?4)I~f2R;m}9xZHUF8RKmm(hY6%=v6NzC>x^|xn0VBn;n7776G)iL<%DgdlVMcW zu6DN0o-ZOK#Jl5T4_Zgza5zv>n2yP5J8*o2efKSvF74q%7jiAu^?8UEB2i?nMOKap zdprA>pPRvII34xL-97@Sv~mT6DB$GI15<*XIf$$5W}7`O>+_(~=>kK%3p$vnP_Qxh zMUM5pYFPs`HsAAq*?fb#5NAOMzZmL2#2|4Ogm`=}EQfFrGW^hRLIqOPN+hY(EL6(n z-;hcnKq-rc)BBZ6I3r0i;=!$Ha{V#<8~Xk${G}VZ`w728%K3D;YNr4I002ovPDHLk GV1fWj)$LdS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/textures/mob_effect/wicked_intent.png b/src/main/resources/assets/malum/textures/mob_effect/wicked_intent.png index 2a6a1671e9be8b3078047276996eca4e1499d7f6..e4a4589f25a761ce905b310722a23dbce031fff0 100644 GIT binary patch delta 536 zcmV+z0_XkO1F-~)@PA45$C+nN2`3#7iR> z%r8wh1JmcXbAf4)f#`;zmq!DH? z$UvB3RWA7qyYHU>8{D@u0ZgCZnZtnBAeif5-bOa8ZO=r84G|7PGf2xLgAdJH_+q&fH)*x48uUi|#V z;Azmz;3DS$4u313qkgyz0;MgBFDVQl%|bkE3{w3349`A(WVrkJ1K3~*-arOWa)AXp z)-VDYa``L=1IRVHA|l{$fB{v0L9oG>-@IW^5(xzhgJKWEAY|_-@$oTSdHtTD;=wY8 zI~>wrO=~3V!88{;Geh3Z#c&JYDH|pN$|^5DuV)Zsc6dw1%nWqD1-EW8L+yij8EX|-~D>caQMjyoCc!U05S~OCRuSA1_f3b2A5(d24M+7 zhU14$GCbP+1Z*I>>u@?1WFX97kb%6++zeGy5*aEpr-0elo`2m$F$}LkFxP<$6cZ3; z5aAMGSg@m(!N)G2ft{U`;oZB7U?nGS-ee@oAeieK`>Pmk-MYo#>1x7Il+?|j#QBcl zO;^$|0_VFXbz3)N{uisr~_|GK9uw-2a zaR$K*Iq@8lDj5I00@I){frT3nH!p4%!Mq|Qq|fl=`8l{oe7OlDj6hMX#`~Lrg;xh7 ztq^4pEUyXj@Pkt`w$w|sL2~?33=Zs0;5@eR-e$a+lsRCgefjY)!>!M(BpCvZ2xOB% q;RA{V5CEkOQi>{)6yq}(05=+-6M1{@@Bjb+07*qoM6N<$f&c(R|InKN