From 094a26a9c889a820335394963489cf9a6df44836 Mon Sep 17 00:00:00 2001 From: SammySemicolon <69329424+SammySemicolon@users.noreply.github.com> Date: Wed, 13 Mar 2024 20:04:40 +0100 Subject: [PATCH] I missss my boyfriend I wanna cuddle so badly agh --- .../blockstates/runewood_panel_slab.json | 13 - .../blockstates/rustic_runewood_planks.json | 7 + .../rustic_runewood_planks_slab.json | 13 + .../rustic_runewood_planks_stairs.json | 209 +++++++++++++ .../blockstates/rustic_runewood_tiles.json | 7 + .../rustic_runewood_tiles_slab.json | 13 + ...json => rustic_runewood_tiles_stairs.json} | 80 ++--- .../vertical_rustic_runewood_planks.json | 7 + .../vertical_rustic_runewood_planks_slab.json | 13 + ...ertical_rustic_runewood_planks_stairs.json | 209 +++++++++++++ .../resources/assets/malum/lang/en_us.json | 34 ++- .../models/block/runewood_panel_slab.json | 8 - .../models/block/runewood_panel_slab_top.json | 8 - .../models/block/runewood_panel_stairs.json | 8 - .../block/runewood_panel_stairs_inner.json | 8 - .../block/runewood_panel_stairs_outer.json | 8 - .../models/block/rustic_runewood_planks.json | 6 + .../block/rustic_runewood_planks_slab.json | 8 + .../rustic_runewood_planks_slab_top.json | 8 + .../block/rustic_runewood_planks_stairs.json | 8 + .../rustic_runewood_planks_stairs_inner.json | 8 + .../rustic_runewood_planks_stairs_outer.json | 8 + .../models/block/rustic_runewood_tiles.json | 6 + .../block/rustic_runewood_tiles_slab.json | 8 + .../block/rustic_runewood_tiles_slab_top.json | 8 + .../block/rustic_runewood_tiles_stairs.json | 8 + .../rustic_runewood_tiles_stairs_inner.json | 8 + .../rustic_runewood_tiles_stairs_outer.json | 8 + .../vertical_rustic_runewood_planks.json | 6 + .../vertical_rustic_runewood_planks_slab.json | 8 + ...tical_rustic_runewood_planks_slab_top.json | 8 + ...ertical_rustic_runewood_planks_stairs.json | 8 + ...l_rustic_runewood_planks_stairs_inner.json | 8 + ...l_rustic_runewood_planks_stairs_outer.json | 8 + .../item/rune_of_aliment_cleansing.json | 3 +- .../malum/models/item/rune_of_bolstering.json | 3 +- .../malum/models/item/rune_of_culling.json | 3 +- .../malum/models/item/rune_of_dexterity.json | 3 +- .../malum/models/item/rune_of_haste.json | 3 +- .../models/item/rune_of_idle_restoration.json | 3 +- .../models/item/rune_of_igneous_solace.json | 3 +- .../item/rune_of_reactive_shielding.json | 3 +- .../models/item/rune_of_reinforcement.json | 3 +- .../item/rune_of_sacrificial_empowerment.json | 3 +- .../models/item/rune_of_spell_mastery.json | 3 +- .../models/item/rune_of_the_heretic.json | 3 +- .../malum/models/item/rune_of_toughness.json | 3 +- .../models/item/rune_of_twinned_duration.json | 3 +- .../item/rune_of_unnatural_stamina.json | 3 +- .../item/rune_of_volatile_distortion.json | 3 +- .../models/item/runewood_panel_slab.json | 3 - .../models/item/runewood_panel_stairs.json | 3 - .../models/item/rustic_runewood_planks.json | 3 + .../item/rustic_runewood_planks_slab.json | 3 + .../item/rustic_runewood_planks_stairs.json | 3 + .../models/item/rustic_runewood_tiles.json | 3 + .../item/rustic_runewood_tiles_slab.json | 3 + .../item/rustic_runewood_tiles_stairs.json | 3 + ...ed_slate.json => tainted_rock_tablet.json} | 2 +- .../item/vertical_rustic_runewood_planks.json | 3 + .../vertical_rustic_runewood_planks_slab.json | 3 + ...ertical_rustic_runewood_planks_stairs.json | 3 + .../{altered_slate.json => void_tablet.json} | 2 +- .../recipes/misc/cut_runewood_planks.json | 8 +- .../recipes/misc/runewood_beam.json | 8 +- .../recipes/misc/runewood_boat.json | 8 +- .../recipes/misc/runewood_door.json | 4 +- .../recipes/misc/runewood_item_pedestal.json | 8 +- .../recipes/misc/runewood_item_stand.json | 8 +- ...n => runewood_open_trapdoor_exchange.json} | 4 +- .../recipes/misc/runewood_panel.json | 8 +- .../recipes/misc/runewood_planks_button.json | 4 +- ...oor.json => runewood_planks_exchange.json} | 4 +- .../recipes/misc/runewood_planks_fence.json | 4 +- .../misc/runewood_planks_fence_gate.json | 4 +- .../misc/runewood_planks_pressure_plate.json | 4 +- .../misc/runewood_rustic_planks_exchange.json | 35 +++ .../misc/runewood_rustic_tiles_exchange.json | 35 +++ .../recipes/misc/runewood_sign.json | 8 +- .../runewood_solid_trapdoor_exchange.json | 35 +++ .../recipes/misc/runewood_tiles.json | 35 --- ...slab.json => runewood_tiles_exchange.json} | 6 +- .../runewood_vertical_planks_exchange.json | 35 +++ ...ewood_vertical_rustic_planks_exchange.json | 35 +++ .../misc/rustic_runewood_planks_slab.json | 35 +++ .../misc/rustic_runewood_planks_stairs.json | 35 +++ ...s.json => rustic_runewood_tiles_slab.json} | 6 +- .../misc/rustic_runewood_tiles_stairs.json | 35 +++ .../recipes/misc/solid_runewood_trapdoor.json | 4 +- .../misc/vertical_runewood_planks.json | 35 --- .../vertical_rustic_runewood_planks_slab.json | 35 +++ ...ertical_rustic_runewood_planks_stairs.json | 35 +++ .../blocks/rustic_runewood_planks.json | 21 ++ .../blocks/rustic_runewood_planks_slab.json | 35 +++ .../blocks/rustic_runewood_planks_stairs.json | 21 ++ ...stairs.json => rustic_runewood_tiles.json} | 4 +- ...b.json => rustic_runewood_tiles_slab.json} | 6 +- .../blocks/rustic_runewood_tiles_stairs.json | 21 ++ .../vertical_rustic_runewood_planks.json | 21 ++ .../vertical_rustic_runewood_planks_slab.json | 35 +++ ...ertical_rustic_runewood_planks_stairs.json | 21 ++ .../malum/recipes/cut_runewood_planks.json | 10 +- .../data/malum/recipes/runewood_beam.json | 2 +- .../data/malum/recipes/runewood_boat.json | 2 +- .../data/malum/recipes/runewood_door.json | 2 +- .../malum/recipes/runewood_item_pedestal.json | 4 +- .../malum/recipes/runewood_item_stand.json | 4 +- ...n => runewood_open_trapdoor_exchange.json} | 0 .../data/malum/recipes/runewood_panel.json | 6 +- .../malum/recipes/runewood_planks_button.json | 2 +- ...les.json => runewood_planks_exchange.json} | 2 +- .../malum/recipes/runewood_planks_fence.json | 2 +- .../recipes/runewood_planks_fence_gate.json | 2 +- .../runewood_planks_pressure_plate.json | 2 +- .../runewood_rustic_planks_exchange.json | 19 ++ .../runewood_rustic_tiles_exchange.json | 19 ++ .../data/malum/recipes/runewood_sign.json | 2 +- .../runewood_solid_trapdoor_exchange.json | 12 + ...anks.json => runewood_tiles_exchange.json} | 10 +- .../runewood_vertical_planks_exchange.json | 19 ++ ...ewood_vertical_rustic_planks_exchange.json | 19 ++ .../rune_of_aliment_cleansing.json | 14 + .../runeworking/rune_of_bolstering.json | 14 + .../recipes/runeworking/rune_of_culling.json | 14 + .../runeworking/rune_of_dexterity.json | 14 + .../recipes/runeworking/rune_of_haste.json | 14 + .../runeworking/rune_of_idle_restoration.json | 14 + .../runeworking/rune_of_igneous_solace.json | 14 + .../rune_of_reactive_shielding.json | 14 + .../runeworking/rune_of_reinforcement.json | 14 + .../rune_of_sacrificial_empowerment.json | 14 + .../runeworking/rune_of_spell_mastery.json | 14 + .../runeworking/rune_of_the_heretic.json | 14 + .../runeworking/rune_of_toughness.json | 14 + .../runeworking/rune_of_twinned_duration.json | 14 + .../rune_of_unnatural_stamina.json | 14 + .../rune_of_volatile_distortion.json | 14 + ....json => rustic_runewood_planks_slab.json} | 7 +- .../rustic_runewood_planks_stairs.json | 19 ++ ...b.json => rustic_runewood_tiles_slab.json} | 4 +- ...json => rustic_runewood_tiles_stairs.json} | 4 +- .../recipes/solid_runewood_trapdoor.json | 16 +- .../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 -- ...ed_slate.json => tainted_rock_tablet.json} | 25 +- .../{altered_slate.json => void_tablet.json} | 14 +- .../soulwood/panel_slab.json | 10 - .../soulwood/panel_stairs.json | 10 - .../vertical_rustic_runewood_planks_slab.json | 17 ++ ...ertical_rustic_runewood_planks_stairs.json | 19 ++ .../malum/tags/items/runewood_planks.json | 10 + .../malum/tags/items/soulwood_planks.json | 3 + .../minecraft/tags/blocks/mineable/axe.json | 11 +- .../data/minecraft/tags/blocks/planks.json | 2 + .../data/minecraft/tags/blocks/slabs.json | 4 +- .../data/minecraft/tags/blocks/stairs.json | 4 +- .../minecraft/tags/blocks/wooden_slabs.json | 4 +- .../minecraft/tags/blocks/wooden_stairs.json | 4 +- .../data/minecraft/tags/items/planks.json | 2 + .../data/minecraft/tags/items/slabs.json | 4 +- .../data/minecraft/tags/items/stairs.json | 4 +- .../minecraft/tags/items/wooden_slabs.json | 4 +- .../minecraft/tags/items/wooden_stairs.json | 4 +- .../RunicWorkbenchBlockEntity.java | 57 +++- .../totem/TotemBaseBlockEntity.java | 19 +- .../malum/common/sound/BlightedSoundType.java | 10 +- .../malum/data/block/MalumBlockStates.java | 13 +- .../malum/data/item/MalumItemModels.java | 2 +- .../sammy/malum/data/item/MalumItemTags.java | 7 +- .../sammy/malum/data/recipe/MalumRecipes.java | 3 +- .../data/recipe/MalumRuneworkingRecipes.java | 75 ++--- .../MalumSpiritTransmutationRecipes.java | 21 +- .../data/recipe/MalumVanillaRecipes.java | 43 +-- .../recipe/crafting/MalumWoodenRecipes.java | 288 ++++++++++++++++++ .../MaterialSpiritInfusionRecipes.java | 15 + .../infusion/RuneSpiritInfusionRecipes.java | 77 ----- .../malum/registry/common/SoundRegistry.java | 33 +- .../common/block/BlockEntityRegistry.java | 1 + .../registry/common/block/BlockRegistry.java | 15 +- .../common/block/MalumBlockProperties.java | 2 +- .../common/block/MalumBlockSetTypes.java | 18 +- .../common/block/WoodTypeRegistry.java | 11 +- .../registry/common/item/ItemRegistry.java | 26 +- .../registry/common/item/ItemTagRegistry.java | 9 + .../visual_effects/ScreenParticleEffects.java | 12 +- src/main/resources/assets/malum/sounds.json | 24 ++ .../malum/sounds/blocks/runewood/break1.ogg | Bin 0 -> 16808 bytes .../malum/sounds/blocks/runewood/break2.ogg | Bin 0 -> 16814 bytes .../malum/sounds/blocks/runewood/break3.ogg | Bin 0 -> 11400 bytes .../malum/sounds/blocks/runewood/break4.ogg | Bin 0 -> 12827 bytes .../malum/sounds/blocks/runewood/break5.ogg | Bin 0 -> 12814 bytes .../malum/sounds/blocks/runewood/break6.ogg | Bin 0 -> 10670 bytes .../runewood/button/runewood_button.ogg | Bin 0 -> 7374 bytes .../sounds/blocks/runewood/door/toggle1.ogg | Bin 0 -> 18712 bytes .../sounds/blocks/runewood/door/toggle2.ogg | Bin 0 -> 11945 bytes .../sounds/blocks/runewood/door/toggle3.ogg | Bin 0 -> 17547 bytes .../blocks/runewood/fence_gate/toggle1.ogg | Bin 0 -> 13719 bytes .../blocks/runewood/fence_gate/toggle2.ogg | Bin 0 -> 14804 bytes .../blocks/runewood/fence_gate/toggle3.ogg | Bin 0 -> 17117 bytes .../blocks/runewood/hanging_sign/break1.ogg | Bin 0 -> 17641 bytes .../blocks/runewood/hanging_sign/break2.ogg | Bin 0 -> 18558 bytes .../blocks/runewood/hanging_sign/break3.ogg | Bin 0 -> 12749 bytes .../blocks/runewood/hanging_sign/break4.ogg | Bin 0 -> 14938 bytes .../blocks/runewood/hanging_sign/step1.ogg | Bin 0 -> 19601 bytes .../blocks/runewood/hanging_sign/step2.ogg | Bin 0 -> 13361 bytes .../blocks/runewood/hanging_sign/step3.ogg | Bin 0 -> 12743 bytes .../blocks/runewood/hanging_sign/step4.ogg | Bin 0 -> 13431 bytes .../malum/sounds/blocks/runewood/hit1.ogg | Bin 0 -> 18430 bytes .../malum/sounds/blocks/runewood/hit2.ogg | Bin 0 -> 10034 bytes .../malum/sounds/blocks/runewood/hit3.ogg | Bin 0 -> 9895 bytes .../malum/sounds/blocks/runewood/hit4.ogg | Bin 0 -> 9605 bytes .../malum/sounds/blocks/runewood/hit5.ogg | Bin 0 -> 10809 bytes .../malum/sounds/blocks/runewood/hit6.ogg | Bin 0 -> 11299 bytes .../blocks/runewood/trapdoor/toggle1.ogg | Bin 0 -> 12817 bytes .../blocks/runewood/trapdoor/toggle2.ogg | Bin 0 -> 10577 bytes .../blocks/runewood/trapdoor/toggle3.ogg | Bin 0 -> 13464 bytes .../malum/sounds/runic_workbench/craft1.ogg | Bin 0 -> 52789 bytes .../malum/sounds/runic_workbench/craft2.ogg | Bin 0 -> 63680 bytes .../tainted/chiseled_tainted_rock.png | Bin 447 -> 513 bytes .../tainted/tainted_rock_column.png | Bin 330 -> 363 bytes .../tainted/tainted_rock_column_cap.png | Bin 513 -> 522 bytes .../twisted/chiseled_twisted_rock.png | Bin 426 -> 492 bytes .../twisted/twisted_rock_column.png | Bin 321 -> 354 bytes .../twisted/twisted_rock_column_cap.png | Bin 489 -> 498 bytes .../block/runewood/cut_runewood_planks.png | Bin 309 -> 384 bytes .../block/runewood/exposed_runewood_log.png | Bin 651 -> 675 bytes .../runewood/exposed_runewood_log_top.png | Bin 438 -> 459 bytes .../block/runewood/revealed_runewood_log.png | Bin 507 -> 477 bytes .../runewood/revealed_runewood_log_top.png | Bin 408 -> 315 bytes .../textures/block/runewood/runewood_beam.png | Bin 396 -> 372 bytes .../block/runewood/runewood_beam_top.png | Bin 381 -> 327 bytes .../block/runewood/runewood_door_bottom.png | Bin 387 -> 501 bytes .../block/runewood/runewood_door_top.png | Bin 375 -> 426 bytes .../textures/block/runewood/runewood_log.png | Bin 417 -> 465 bytes .../block/runewood/runewood_log_top.png | Bin 399 -> 459 bytes .../block/runewood/runewood_panel.png | Bin 285 -> 357 bytes .../block/runewood/runewood_planks.png | Bin 285 -> 345 bytes .../block/runewood/runewood_tiles.png | Bin 393 -> 387 bytes .../block/runewood/runewood_trapdoor.png | Bin 378 -> 414 bytes .../block/runewood/rustic_runewood_planks.png | Bin 0 -> 393 bytes .../block/runewood/rustic_runewood_tiles.png | Bin 0 -> 387 bytes .../runewood/solid_runewood_trapdoor.png | Bin 375 -> 435 bytes .../block/runewood/stripped_runewood_log.png | Bin 318 -> 324 bytes .../runewood/stripped_runewood_log_top.png | Bin 360 -> 315 bytes .../runewood/vertical_runewood_planks.png | Bin 303 -> 402 bytes .../vertical_rustic_runewood_planks.png | Bin 0 -> 429 bytes .../malum/textures/item/altered_slate.png | Bin 516 -> 0 bytes .../item/runes/rune_of_bolstering.png | Bin 519 -> 510 bytes .../item/runes/rune_of_igneous_solace.png | Bin 519 -> 519 bytes .../runes/rune_of_sacrificial_empowerment.png | Bin 543 -> 504 bytes .../item/runes/rune_of_spell_mastery.png | Bin 522 -> 510 bytes .../item/runes/rune_of_the_heretic.png | Bin 531 -> 516 bytes .../textures/item/runes/rune_of_toughness.png | Bin 543 -> 510 bytes .../item/runes/rune_of_twinned_duration.png | Bin 537 -> 507 bytes .../item/runes/rune_of_unnatural_stamina.png | Bin 525 -> 501 bytes ...nted_slate.png => tainted_rock_tablet.png} | Bin .../malum/textures/item/void_tablet.png | Bin 0 -> 480 bytes 271 files changed, 2340 insertions(+), 855 deletions(-) delete mode 100644 src/generated/resources/assets/malum/blockstates/runewood_panel_slab.json create mode 100644 src/generated/resources/assets/malum/blockstates/rustic_runewood_planks.json create mode 100644 src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_stairs.json create mode 100644 src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles.json create mode 100644 src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles_slab.json rename src/generated/resources/assets/malum/blockstates/{runewood_panel_stairs.json => rustic_runewood_tiles_stairs.json} (59%) create mode 100644 src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks.json create mode 100644 src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_stairs.json delete mode 100644 src/generated/resources/assets/malum/models/block/runewood_panel_slab.json delete mode 100644 src/generated/resources/assets/malum/models/block/runewood_panel_slab_top.json delete mode 100644 src/generated/resources/assets/malum/models/block/runewood_panel_stairs.json delete mode 100644 src/generated/resources/assets/malum/models/block/runewood_panel_stairs_inner.json delete mode 100644 src/generated/resources/assets/malum/models/block/runewood_panel_stairs_outer.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_planks.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab_top.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_inner.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_outer.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_tiles.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab_top.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_inner.json create mode 100644 src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_outer.json create mode 100644 src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks.json create mode 100644 src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab_top.json create mode 100644 src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs.json create mode 100644 src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_inner.json create mode 100644 src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_outer.json delete mode 100644 src/generated/resources/assets/malum/models/item/runewood_panel_slab.json delete mode 100644 src/generated/resources/assets/malum/models/item/runewood_panel_stairs.json create mode 100644 src/generated/resources/assets/malum/models/item/rustic_runewood_planks.json create mode 100644 src/generated/resources/assets/malum/models/item/rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/assets/malum/models/item/rustic_runewood_planks_stairs.json create mode 100644 src/generated/resources/assets/malum/models/item/rustic_runewood_tiles.json create mode 100644 src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_slab.json create mode 100644 src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_stairs.json rename src/generated/resources/assets/malum/models/item/{tainted_slate.json => tainted_rock_tablet.json} (57%) create mode 100644 src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks.json create mode 100644 src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_stairs.json rename src/generated/resources/assets/malum/models/item/{altered_slate.json => void_tablet.json} (60%) rename src/generated/resources/data/malum/advancements/recipes/misc/{runewood_trapdoor_from_solid.json => runewood_open_trapdoor_exchange.json} (84%) rename src/generated/resources/data/malum/advancements/recipes/misc/{runewood_trapdoor.json => runewood_planks_exchange.json} (86%) create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_planks_exchange.json create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_tiles_exchange.json create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/runewood_solid_trapdoor_exchange.json delete mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/runewood_tiles.json rename src/generated/resources/data/malum/advancements/recipes/misc/{runewood_panel_slab.json => runewood_tiles_exchange.json} (80%) create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_planks_exchange.json create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_rustic_planks_exchange.json create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_stairs.json rename src/generated/resources/data/malum/advancements/recipes/misc/{runewood_panel_stairs.json => rustic_runewood_tiles_slab.json} (78%) create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_tiles_stairs.json delete mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/vertical_runewood_planks.json create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_stairs.json create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks.json create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_stairs.json rename src/generated/resources/data/malum/loot_tables/blocks/{runewood_panel_stairs.json => rustic_runewood_tiles.json} (73%) rename src/generated/resources/data/malum/loot_tables/blocks/{runewood_panel_slab.json => rustic_runewood_tiles_slab.json} (79%) create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles_stairs.json create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks.json create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_stairs.json rename src/generated/resources/data/malum/recipes/{runewood_trapdoor_from_solid.json => runewood_open_trapdoor_exchange.json} (100%) rename src/generated/resources/data/malum/recipes/{runewood_tiles.json => runewood_planks_exchange.json} (86%) create mode 100644 src/generated/resources/data/malum/recipes/runewood_rustic_planks_exchange.json create mode 100644 src/generated/resources/data/malum/recipes/runewood_rustic_tiles_exchange.json create mode 100644 src/generated/resources/data/malum/recipes/runewood_solid_trapdoor_exchange.json rename src/generated/resources/data/malum/recipes/{vertical_runewood_planks.json => runewood_tiles_exchange.json} (71%) create mode 100644 src/generated/resources/data/malum/recipes/runewood_vertical_planks_exchange.json create mode 100644 src/generated/resources/data/malum/recipes/runewood_vertical_rustic_planks_exchange.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_aliment_cleansing.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_bolstering.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_culling.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_dexterity.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_haste.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_idle_restoration.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_igneous_solace.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_reactive_shielding.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_reinforcement.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_sacrificial_empowerment.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_spell_mastery.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_the_heretic.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_toughness.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_twinned_duration.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_unnatural_stamina.json create mode 100644 src/generated/resources/data/malum/recipes/runeworking/rune_of_volatile_distortion.json rename src/generated/resources/data/malum/recipes/{runewood_trapdoor.json => rustic_runewood_planks_slab.json} (61%) create mode 100644 src/generated/resources/data/malum/recipes/rustic_runewood_planks_stairs.json rename src/generated/resources/data/malum/recipes/{runewood_panel_slab.json => rustic_runewood_tiles_slab.json} (67%) rename src/generated/resources/data/malum/recipes/{runewood_panel_stairs.json => rustic_runewood_tiles_stairs.json} (69%) delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_aliment_cleansing.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_bolstering.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_culling.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_dexterity.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_haste.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_idle_restoration.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_igneous_solace.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reactive_shielding.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reinforcement.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_sacrificial_empowerment.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_spell_mastery.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_the_heretic.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_toughness.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_twinned_duration.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_unnatural_stamina.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_volatile_distortion.json rename src/generated/resources/data/malum/recipes/spirit_infusion/{tainted_slate.json => tainted_rock_tablet.json} (58%) rename src/generated/resources/data/malum/recipes/spirit_infusion/{altered_slate.json => void_tablet.json} (51%) delete mode 100644 src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_slab.json delete mode 100644 src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_stairs.json create mode 100644 src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_slab.json create mode 100644 src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_stairs.json create mode 100644 src/generated/resources/data/malum/tags/items/runewood_planks.json create mode 100644 src/generated/resources/data/malum/tags/items/soulwood_planks.json create mode 100644 src/main/java/com/sammy/malum/data/recipe/crafting/MalumWoodenRecipes.java delete mode 100644 src/main/java/com/sammy/malum/data/recipe/infusion/RuneSpiritInfusionRecipes.java create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/break1.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/break2.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/break3.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/break4.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/break5.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/break6.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/button/runewood_button.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/door/toggle1.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/door/toggle2.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/door/toggle3.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/fence_gate/toggle1.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/fence_gate/toggle2.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/fence_gate/toggle3.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/break1.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/break2.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/break3.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/break4.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/step1.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/step2.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/step3.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/step4.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hit1.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hit2.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hit3.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hit4.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hit5.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/hit6.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/trapdoor/toggle1.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/trapdoor/toggle2.ogg create mode 100644 src/main/resources/assets/malum/sounds/blocks/runewood/trapdoor/toggle3.ogg create mode 100644 src/main/resources/assets/malum/sounds/runic_workbench/craft1.ogg create mode 100644 src/main/resources/assets/malum/sounds/runic_workbench/craft2.ogg create mode 100644 src/main/resources/assets/malum/textures/block/runewood/rustic_runewood_planks.png create mode 100644 src/main/resources/assets/malum/textures/block/runewood/rustic_runewood_tiles.png create mode 100644 src/main/resources/assets/malum/textures/block/runewood/vertical_rustic_runewood_planks.png delete mode 100644 src/main/resources/assets/malum/textures/item/altered_slate.png rename src/main/resources/assets/malum/textures/item/{tainted_slate.png => tainted_rock_tablet.png} (100%) create mode 100644 src/main/resources/assets/malum/textures/item/void_tablet.png diff --git a/src/generated/resources/assets/malum/blockstates/runewood_panel_slab.json b/src/generated/resources/assets/malum/blockstates/runewood_panel_slab.json deleted file mode 100644 index 3788ffa19..000000000 --- a/src/generated/resources/assets/malum/blockstates/runewood_panel_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "malum:block/runewood_panel_slab" - }, - "type=double": { - "model": "malum:block/runewood_panel" - }, - "type=top": { - "model": "malum:block/runewood_panel_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks.json b/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks.json new file mode 100644 index 000000000..687f681cf --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "malum:block/rustic_runewood_planks" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_slab.json b/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_slab.json new file mode 100644 index 000000000..63743aa59 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "malum:block/rustic_runewood_planks_slab" + }, + "type=double": { + "model": "malum:block/rustic_runewood_planks" + }, + "type=top": { + "model": "malum:block/rustic_runewood_planks_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_stairs.json b/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..8632e1369 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/rustic_runewood_planks_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "malum:block/rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "malum:block/rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "malum:block/rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles.json b/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles.json new file mode 100644 index 000000000..04db75f87 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "malum:block/rustic_runewood_tiles" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles_slab.json b/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles_slab.json new file mode 100644 index 000000000..25cd6543e --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "malum:block/rustic_runewood_tiles_slab" + }, + "type=double": { + "model": "malum:block/rustic_runewood_tiles" + }, + "type=top": { + "model": "malum:block/rustic_runewood_tiles_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/runewood_panel_stairs.json b/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles_stairs.json similarity index 59% rename from src/generated/resources/assets/malum/blockstates/runewood_panel_stairs.json rename to src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles_stairs.json index 32be3c57f..0d20b78c2 100644 --- a/src/generated/resources/assets/malum/blockstates/runewood_panel_stairs.json +++ b/src/generated/resources/assets/malum/blockstates/rustic_runewood_tiles_stairs.json @@ -1,206 +1,206 @@ { "variants": { "facing=east,half=bottom,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "y": 270 }, "facing=east,half=bottom,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner" + "model": "malum:block/rustic_runewood_tiles_stairs_inner" }, "facing=east,half=bottom,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "y": 270 }, "facing=east,half=bottom,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer" + "model": "malum:block/rustic_runewood_tiles_stairs_outer" }, "facing=east,half=bottom,shape=straight": { - "model": "malum:block/runewood_panel_stairs" + "model": "malum:block/rustic_runewood_tiles_stairs" }, "facing=east,half=top,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180 }, "facing=east,half=top,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180, "y": 90 }, "facing=east,half=top,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180 }, "facing=east,half=top,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180, "y": 90 }, "facing=east,half=top,shape=straight": { - "model": "malum:block/runewood_panel_stairs", + "model": "malum:block/rustic_runewood_tiles_stairs", "uvlock": true, "x": 180 }, "facing=north,half=bottom,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "y": 180 }, "facing=north,half=bottom,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "y": 270 }, "facing=north,half=bottom,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "y": 180 }, "facing=north,half=bottom,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "y": 270 }, "facing=north,half=bottom,shape=straight": { - "model": "malum:block/runewood_panel_stairs", + "model": "malum:block/rustic_runewood_tiles_stairs", "uvlock": true, "y": 270 }, "facing=north,half=top,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180, "y": 270 }, "facing=north,half=top,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180 }, "facing=north,half=top,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180, "y": 270 }, "facing=north,half=top,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180 }, "facing=north,half=top,shape=straight": { - "model": "malum:block/runewood_panel_stairs", + "model": "malum:block/rustic_runewood_tiles_stairs", "uvlock": true, "x": 180, "y": 270 }, "facing=south,half=bottom,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner" + "model": "malum:block/rustic_runewood_tiles_stairs_inner" }, "facing=south,half=bottom,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "y": 90 }, "facing=south,half=bottom,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer" + "model": "malum:block/rustic_runewood_tiles_stairs_outer" }, "facing=south,half=bottom,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "y": 90 }, "facing=south,half=bottom,shape=straight": { - "model": "malum:block/runewood_panel_stairs", + "model": "malum:block/rustic_runewood_tiles_stairs", "uvlock": true, "y": 90 }, "facing=south,half=top,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180, "y": 90 }, "facing=south,half=top,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180, "y": 180 }, "facing=south,half=top,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180, "y": 90 }, "facing=south,half=top,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180, "y": 180 }, "facing=south,half=top,shape=straight": { - "model": "malum:block/runewood_panel_stairs", + "model": "malum:block/rustic_runewood_tiles_stairs", "uvlock": true, "x": 180, "y": 90 }, "facing=west,half=bottom,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "y": 90 }, "facing=west,half=bottom,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "y": 180 }, "facing=west,half=bottom,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "y": 90 }, "facing=west,half=bottom,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "y": 180 }, "facing=west,half=bottom,shape=straight": { - "model": "malum:block/runewood_panel_stairs", + "model": "malum:block/rustic_runewood_tiles_stairs", "uvlock": true, "y": 180 }, "facing=west,half=top,shape=inner_left": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180, "y": 180 }, "facing=west,half=top,shape=inner_right": { - "model": "malum:block/runewood_panel_stairs_inner", + "model": "malum:block/rustic_runewood_tiles_stairs_inner", "uvlock": true, "x": 180, "y": 270 }, "facing=west,half=top,shape=outer_left": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180, "y": 180 }, "facing=west,half=top,shape=outer_right": { - "model": "malum:block/runewood_panel_stairs_outer", + "model": "malum:block/rustic_runewood_tiles_stairs_outer", "uvlock": true, "x": 180, "y": 270 }, "facing=west,half=top,shape=straight": { - "model": "malum:block/runewood_panel_stairs", + "model": "malum:block/rustic_runewood_tiles_stairs", "uvlock": true, "x": 180, "y": 180 diff --git a/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks.json b/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks.json new file mode 100644 index 000000000..60e846ff4 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "malum:block/vertical_rustic_runewood_planks" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_slab.json b/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_slab.json new file mode 100644 index 000000000..a8a734e67 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "malum:block/vertical_rustic_runewood_planks_slab" + }, + "type=double": { + "model": "malum:block/vertical_rustic_runewood_planks" + }, + "type=top": { + "model": "malum:block/vertical_rustic_runewood_planks_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_stairs.json b/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..c79ce9a90 --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/vertical_rustic_runewood_planks_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "malum:block/vertical_rustic_runewood_planks_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ 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 29142647d..32fcbb2ad 100644 --- a/src/generated/resources/assets/malum/lang/en_us.json +++ b/src/generated/resources/assets/malum/lang/en_us.json @@ -88,8 +88,6 @@ "block.malum.runewood_obelisk": "Runewood Obelisk", "block.malum.runewood_obelisk_component": "Runewood Obelisk Component", "block.malum.runewood_panel": "Runewood Panel", - "block.malum.runewood_panel_slab": "Runewood Panel Slab", - "block.malum.runewood_panel_stairs": "Runewood Panel Stairs", "block.malum.runewood_planks": "Runewood Planks", "block.malum.runewood_planks_button": "Runewood Button", "block.malum.runewood_planks_fence": "Runewood Fence", @@ -131,6 +129,12 @@ "block.malum.runic_twisted_rock_tiles_stairs": "Runic Twisted Rock Tiles Stairs", "block.malum.runic_twisted_rock_tiles_wall": "Runic Twisted Rock Tiles Wall", "block.malum.runic_workbench": "Runic Workbench", + "block.malum.rustic_runewood_planks": "Rustic Runewood Planks", + "block.malum.rustic_runewood_planks_slab": "Rustic Runewood Planks Slab", + "block.malum.rustic_runewood_planks_stairs": "Rustic Runewood Planks Stairs", + "block.malum.rustic_runewood_tiles": "Rustic Runewood Tiles", + "block.malum.rustic_runewood_tiles_slab": "Rustic Runewood Tiles Slab", + "block.malum.rustic_runewood_tiles_stairs": "Rustic Runewood Tiles Stairs", "block.malum.small_tainted_rock_bricks": "Small Tainted Rock Bricks", "block.malum.small_tainted_rock_bricks_slab": "Small Tainted Rock Brick Slab", "block.malum.small_tainted_rock_bricks_stairs": "Small Tainted Rock Brick Stairs", @@ -229,6 +233,9 @@ "block.malum.vertical_runewood_planks": "Vertical Runewood Planks", "block.malum.vertical_runewood_planks_slab": "Vertical Runewood Planks Slab", "block.malum.vertical_runewood_planks_stairs": "Vertical Runewood Planks Stairs", + "block.malum.vertical_rustic_runewood_planks": "Vertical Rustic Runewood Planks", + "block.malum.vertical_rustic_runewood_planks_slab": "Vertical Rustic Runewood Planks Slab", + "block.malum.vertical_rustic_runewood_planks_stairs": "Vertical Rustic Runewood Planks Stairs", "block.malum.vertical_soulwood_planks": "Vertical Soulwood Planks", "block.malum.vertical_soulwood_planks_slab": "Vertical Soulwood Planks Slab", "block.malum.vertical_soulwood_planks_stairs": "Vertical Soulwood Planks Stairs", @@ -292,7 +299,6 @@ "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", @@ -479,7 +485,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.tainted_rock_tablet": "Tainted Rock Tablet", "item.malum.tin_impetus": "Tin Impetus", "item.malum.tin_node": "Tin Node", "item.malum.token_of_gratitude": "Token of Gratitude", @@ -492,6 +498,7 @@ "item.malum.uranium_node": "Uranium Node", "item.malum.vivid_nitrate": "Vivid Nitrate", "item.malum.void_salts": "Void Salts", + "item.malum.void_tablet": "Void Tablet", "item.malum.warp_flux": "Warp Flux", "item.malum.warping_engine": "Warping Engine", "item.malum.weight_of_worlds": "Weight of Worlds", @@ -1201,10 +1208,29 @@ "malum.subtitle.ritual_evolves": "Ritual evolves", "malum.subtitle.ritual_forms": "Ritual forms", "malum.subtitle.rotten_trinket_equipped": "Rotten trinket equipped", + "malum.subtitle.runewood_break": "Block broken", + "malum.subtitle.runewood_button_click_off": "Runewood button click off", + "malum.subtitle.runewood_button_click_on": "Runewood button click on", + "malum.subtitle.runewood_door_close": "Runewood door close", + "malum.subtitle.runewood_door_open": "Runewood door open", + "malum.subtitle.runewood_fence_gate_close": "Runewood fence gate close", + "malum.subtitle.runewood_fence_gate_open": "Runewood fence gate open", + "malum.subtitle.runewood_hanging_sign_break": "Block broken", + "malum.subtitle.runewood_hanging_sign_hit": "Block breaking", + "malum.subtitle.runewood_hanging_sign_place": "Block placed", + "malum.subtitle.runewood_hanging_sign_step": "Footsteps", + "malum.subtitle.runewood_hit": "Block breaking", "malum.subtitle.runewood_leaves_break": "Block broken", "malum.subtitle.runewood_leaves_hit": "Block breaking", "malum.subtitle.runewood_leaves_place": "Block placed", "malum.subtitle.runewood_leaves_step": "Footsteps", + "malum.subtitle.runewood_place": "Block placed", + "malum.subtitle.runewood_pressure_plate_click_off": "Runewood pressure plate click off", + "malum.subtitle.runewood_pressure_plate_click_on": "Runewood pressure plate click on", + "malum.subtitle.runewood_step": "Footsteps", + "malum.subtitle.runewood_trapdoor_close": "Runewood trapdoor close", + "malum.subtitle.runewood_trapdoor_open": "Runewood trapdoor open", + "malum.subtitle.runic_workbench_crafts": "Runic workbench crafts", "malum.subtitle.scythe_cuts": "Scythe cuts", "malum.subtitle.shielding_apparatus_shields": "Shielding apparatus shields", "malum.subtitle.song_of_the_void": "Song of the void", diff --git a/src/generated/resources/assets/malum/models/block/runewood_panel_slab.json b/src/generated/resources/assets/malum/models/block/runewood_panel_slab.json deleted file mode 100644 index 4fa15f3b1..000000000 --- a/src/generated/resources/assets/malum/models/block/runewood_panel_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "malum:block/runewood/runewood_panel", - "side": "malum:block/runewood/runewood_panel", - "top": "malum:block/runewood/runewood_panel" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/runewood_panel_slab_top.json b/src/generated/resources/assets/malum/models/block/runewood_panel_slab_top.json deleted file mode 100644 index 79033ea90..000000000 --- a/src/generated/resources/assets/malum/models/block/runewood_panel_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "malum:block/runewood/runewood_panel", - "side": "malum:block/runewood/runewood_panel", - "top": "malum:block/runewood/runewood_panel" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/runewood_panel_stairs.json b/src/generated/resources/assets/malum/models/block/runewood_panel_stairs.json deleted file mode 100644 index dd286211f..000000000 --- a/src/generated/resources/assets/malum/models/block/runewood_panel_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "malum:block/runewood/runewood_panel", - "side": "malum:block/runewood/runewood_panel", - "top": "malum:block/runewood/runewood_panel" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/runewood_panel_stairs_inner.json b/src/generated/resources/assets/malum/models/block/runewood_panel_stairs_inner.json deleted file mode 100644 index 7df291ea7..000000000 --- a/src/generated/resources/assets/malum/models/block/runewood_panel_stairs_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "malum:block/runewood/runewood_panel", - "side": "malum:block/runewood/runewood_panel", - "top": "malum:block/runewood/runewood_panel" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/runewood_panel_stairs_outer.json b/src/generated/resources/assets/malum/models/block/runewood_panel_stairs_outer.json deleted file mode 100644 index 5d5f7905f..000000000 --- a/src/generated/resources/assets/malum/models/block/runewood_panel_stairs_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "malum:block/runewood/runewood_panel", - "side": "malum:block/runewood/runewood_panel", - "top": "malum:block/runewood/runewood_panel" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_planks.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks.json new file mode 100644 index 000000000..e163ee85d --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "malum:block/runewood/rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab.json new file mode 100644 index 000000000..bcd1b55cc --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_planks", + "side": "malum:block/runewood/rustic_runewood_planks", + "top": "malum:block/runewood/rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab_top.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab_top.json new file mode 100644 index 000000000..b8eccee68 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_planks", + "side": "malum:block/runewood/rustic_runewood_planks", + "top": "malum:block/runewood/rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..699c4956f --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_planks", + "side": "malum:block/runewood/rustic_runewood_planks", + "top": "malum:block/runewood/rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_inner.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_inner.json new file mode 100644 index 000000000..a5c260899 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_planks", + "side": "malum:block/runewood/rustic_runewood_planks", + "top": "malum:block/runewood/rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_outer.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_outer.json new file mode 100644 index 000000000..6302ed036 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_planks_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_planks", + "side": "malum:block/runewood/rustic_runewood_planks", + "top": "malum:block/runewood/rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles.json new file mode 100644 index 000000000..35bfd981e --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "malum:block/runewood/rustic_runewood_tiles" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab.json new file mode 100644 index 000000000..0167b7f70 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_tiles", + "side": "malum:block/runewood/rustic_runewood_tiles", + "top": "malum:block/runewood/rustic_runewood_tiles" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab_top.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab_top.json new file mode 100644 index 000000000..e8bbd0462 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_tiles", + "side": "malum:block/runewood/rustic_runewood_tiles", + "top": "malum:block/runewood/rustic_runewood_tiles" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs.json new file mode 100644 index 000000000..6649c995e --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_tiles", + "side": "malum:block/runewood/rustic_runewood_tiles", + "top": "malum:block/runewood/rustic_runewood_tiles" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_inner.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_inner.json new file mode 100644 index 000000000..d81f8e56e --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_tiles", + "side": "malum:block/runewood/rustic_runewood_tiles", + "top": "malum:block/runewood/rustic_runewood_tiles" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_outer.json b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_outer.json new file mode 100644 index 000000000..02109e0ed --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/rustic_runewood_tiles_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "malum:block/runewood/rustic_runewood_tiles", + "side": "malum:block/runewood/rustic_runewood_tiles", + "top": "malum:block/runewood/rustic_runewood_tiles" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks.json b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks.json new file mode 100644 index 000000000..01a50d2fa --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "malum:block/runewood/vertical_rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab.json b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab.json new file mode 100644 index 000000000..39926e0a7 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "malum:block/runewood/vertical_rustic_runewood_planks", + "side": "malum:block/runewood/vertical_rustic_runewood_planks", + "top": "malum:block/runewood/vertical_rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab_top.json b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab_top.json new file mode 100644 index 000000000..754d5a7dd --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "malum:block/runewood/vertical_rustic_runewood_planks", + "side": "malum:block/runewood/vertical_rustic_runewood_planks", + "top": "malum:block/runewood/vertical_rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs.json b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..6588bd44c --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "malum:block/runewood/vertical_rustic_runewood_planks", + "side": "malum:block/runewood/vertical_rustic_runewood_planks", + "top": "malum:block/runewood/vertical_rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_inner.json b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_inner.json new file mode 100644 index 000000000..0d18fb894 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "malum:block/runewood/vertical_rustic_runewood_planks", + "side": "malum:block/runewood/vertical_rustic_runewood_planks", + "top": "malum:block/runewood/vertical_rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_outer.json b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_outer.json new file mode 100644 index 000000000..5f7d89193 --- /dev/null +++ b/src/generated/resources/assets/malum/models/block/vertical_rustic_runewood_planks_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "malum:block/runewood/vertical_rustic_runewood_planks", + "side": "malum:block/runewood/vertical_rustic_runewood_planks", + "top": "malum:block/runewood/vertical_rustic_runewood_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_aliment_cleansing.json b/src/generated/resources/assets/malum/models/item/rune_of_aliment_cleansing.json index 76719cf9f..271c9d62b 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_aliment_cleansing.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_aliment_cleansing.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_aliment_cleansing", - "layer1": "malum:item/runes/rune_of_aliment_cleansing_overlay" + "layer0": "malum:item/runes/rune_of_aliment_cleansing" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_bolstering.json b/src/generated/resources/assets/malum/models/item/rune_of_bolstering.json index fd901357c..e590fae25 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_bolstering.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_bolstering.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_bolstering", - "layer1": "malum:item/runes/rune_of_bolstering_overlay" + "layer0": "malum:item/runes/rune_of_bolstering" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_culling.json b/src/generated/resources/assets/malum/models/item/rune_of_culling.json index 8a00ca517..b58257c23 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_culling.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_culling.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_culling", - "layer1": "malum:item/runes/rune_of_culling_overlay" + "layer0": "malum:item/runes/rune_of_culling" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_dexterity.json b/src/generated/resources/assets/malum/models/item/rune_of_dexterity.json index 6ac4182de..bf6278231 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_dexterity.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_dexterity.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_dexterity", - "layer1": "malum:item/runes/rune_of_dexterity_overlay" + "layer0": "malum:item/runes/rune_of_dexterity" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_haste.json b/src/generated/resources/assets/malum/models/item/rune_of_haste.json index 3c09630dd..d5c49e114 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_haste.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_haste.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_haste", - "layer1": "malum:item/runes/rune_of_haste_overlay" + "layer0": "malum:item/runes/rune_of_haste" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_idle_restoration.json b/src/generated/resources/assets/malum/models/item/rune_of_idle_restoration.json index 825047685..208793014 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_idle_restoration.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_idle_restoration.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_idle_restoration", - "layer1": "malum:item/runes/rune_of_idle_restoration_overlay" + "layer0": "malum:item/runes/rune_of_idle_restoration" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_igneous_solace.json b/src/generated/resources/assets/malum/models/item/rune_of_igneous_solace.json index 5e59d5983..b92bd869d 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_igneous_solace.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_igneous_solace.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_igneous_solace", - "layer1": "malum:item/runes/rune_of_igneous_solace_overlay" + "layer0": "malum:item/runes/rune_of_igneous_solace" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_reactive_shielding.json b/src/generated/resources/assets/malum/models/item/rune_of_reactive_shielding.json index 6ef2a2d69..e930c0306 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_reactive_shielding.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_reactive_shielding.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_reactive_shielding", - "layer1": "malum:item/runes/rune_of_reactive_shielding_overlay" + "layer0": "malum:item/runes/rune_of_reactive_shielding" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_reinforcement.json b/src/generated/resources/assets/malum/models/item/rune_of_reinforcement.json index 25285f0e1..42581f21f 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_reinforcement.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_reinforcement.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_reinforcement", - "layer1": "malum:item/runes/rune_of_reinforcement_overlay" + "layer0": "malum:item/runes/rune_of_reinforcement" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_sacrificial_empowerment.json b/src/generated/resources/assets/malum/models/item/rune_of_sacrificial_empowerment.json index ddeee7d16..ea21dc0c4 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_sacrificial_empowerment.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_sacrificial_empowerment.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_sacrificial_empowerment", - "layer1": "malum:item/runes/rune_of_sacrificial_empowerment_overlay" + "layer0": "malum:item/runes/rune_of_sacrificial_empowerment" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_spell_mastery.json b/src/generated/resources/assets/malum/models/item/rune_of_spell_mastery.json index ce84ef55d..c03486cba 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_spell_mastery.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_spell_mastery.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_spell_mastery", - "layer1": "malum:item/runes/rune_of_spell_mastery_overlay" + "layer0": "malum:item/runes/rune_of_spell_mastery" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_the_heretic.json b/src/generated/resources/assets/malum/models/item/rune_of_the_heretic.json index 7ea6f1b86..b8a47ccf9 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_the_heretic.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_the_heretic.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_the_heretic", - "layer1": "malum:item/runes/rune_of_the_heretic_overlay" + "layer0": "malum:item/runes/rune_of_the_heretic" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_toughness.json b/src/generated/resources/assets/malum/models/item/rune_of_toughness.json index 71776a1cb..4ffbe95c2 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_toughness.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_toughness.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_toughness", - "layer1": "malum:item/runes/rune_of_toughness_overlay" + "layer0": "malum:item/runes/rune_of_toughness" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_twinned_duration.json b/src/generated/resources/assets/malum/models/item/rune_of_twinned_duration.json index a83198b0e..f23753be9 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_twinned_duration.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_twinned_duration.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_twinned_duration", - "layer1": "malum:item/runes/rune_of_twinned_duration_overlay" + "layer0": "malum:item/runes/rune_of_twinned_duration" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_unnatural_stamina.json b/src/generated/resources/assets/malum/models/item/rune_of_unnatural_stamina.json index 13ecff262..be6de7b21 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_unnatural_stamina.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_unnatural_stamina.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_unnatural_stamina", - "layer1": "malum:item/runes/rune_of_unnatural_stamina_overlay" + "layer0": "malum:item/runes/rune_of_unnatural_stamina" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rune_of_volatile_distortion.json b/src/generated/resources/assets/malum/models/item/rune_of_volatile_distortion.json index 2132ecfa8..9349fec40 100644 --- a/src/generated/resources/assets/malum/models/item/rune_of_volatile_distortion.json +++ b/src/generated/resources/assets/malum/models/item/rune_of_volatile_distortion.json @@ -1,7 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/runes/rune_of_volatile_distortion", - "layer1": "malum:item/runes/rune_of_volatile_distortion_overlay" + "layer0": "malum:item/runes/rune_of_volatile_distortion" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/runewood_panel_slab.json b/src/generated/resources/assets/malum/models/item/runewood_panel_slab.json deleted file mode 100644 index 9899390db..000000000 --- a/src/generated/resources/assets/malum/models/item/runewood_panel_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "malum:block/runewood_panel_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/runewood_panel_stairs.json b/src/generated/resources/assets/malum/models/item/runewood_panel_stairs.json deleted file mode 100644 index dc19951b2..000000000 --- a/src/generated/resources/assets/malum/models/item/runewood_panel_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "malum:block/runewood_panel_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rustic_runewood_planks.json b/src/generated/resources/assets/malum/models/item/rustic_runewood_planks.json new file mode 100644 index 000000000..2fec2c074 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/rustic_runewood_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/rustic_runewood_planks" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rustic_runewood_planks_slab.json b/src/generated/resources/assets/malum/models/item/rustic_runewood_planks_slab.json new file mode 100644 index 000000000..abedd0c52 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/rustic_runewood_planks_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/rustic_runewood_planks_slab" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rustic_runewood_planks_stairs.json b/src/generated/resources/assets/malum/models/item/rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..d191f1ddd --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/rustic_runewood_planks_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/rustic_runewood_planks_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles.json b/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles.json new file mode 100644 index 000000000..3e475f958 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/rustic_runewood_tiles" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_slab.json b/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_slab.json new file mode 100644 index 000000000..a29f8e8f0 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/rustic_runewood_tiles_slab" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_stairs.json b/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_stairs.json new file mode 100644 index 000000000..2555a9ce0 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/rustic_runewood_tiles_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/rustic_runewood_tiles_stairs" +} \ 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_rock_tablet.json similarity index 57% rename from src/generated/resources/assets/malum/models/item/tainted_slate.json rename to src/generated/resources/assets/malum/models/item/tainted_rock_tablet.json index addc7084e..cf95d9b35 100644 --- a/src/generated/resources/assets/malum/models/item/tainted_slate.json +++ b/src/generated/resources/assets/malum/models/item/tainted_rock_tablet.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/tainted_slate" + "layer0": "malum:item/tainted_rock_tablet" } } \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks.json b/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks.json new file mode 100644 index 000000000..e6a81ca23 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/vertical_rustic_runewood_planks" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_slab.json b/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_slab.json new file mode 100644 index 000000000..cb0107787 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/vertical_rustic_runewood_planks_slab" +} \ No newline at end of file diff --git a/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_stairs.json b/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..dcd482408 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/vertical_rustic_runewood_planks_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/vertical_rustic_runewood_planks_stairs" +} \ 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/void_tablet.json similarity index 60% rename from src/generated/resources/assets/malum/models/item/altered_slate.json rename to src/generated/resources/assets/malum/models/item/void_tablet.json index 7b6a0a634..00bd39785 100644 --- a/src/generated/resources/assets/malum/models/item/altered_slate.json +++ b/src/generated/resources/assets/malum/models/item/void_tablet.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "malum:item/altered_slate" + "layer0": "malum:item/void_tablet" } } \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/cut_runewood_planks.json b/src/generated/resources/data/malum/advancements/recipes/misc/cut_runewood_planks.json index 3b5f018a6..4e1028b9d 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/cut_runewood_planks.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/cut_runewood_planks.json @@ -1,13 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_runewood_planks": { + "has_input": { "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, @@ -22,7 +20,7 @@ }, "requirements": [ [ - "has_runewood_planks", + "has_input", "has_the_recipe" ] ], diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_beam.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_beam.json index 564484368..64f141d73 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_beam.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_beam.json @@ -1,13 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_runewood_planks": { + "has_input": { "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, @@ -22,7 +20,7 @@ }, "requirements": [ [ - "has_runewood_planks", + "has_input", "has_the_recipe" ] ], diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_boat.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_boat.json index e8431fe87..5302b97c6 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_boat.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_boat.json @@ -1,13 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_runewood_planks": { + "has_input": { "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, @@ -22,7 +20,7 @@ }, "requirements": [ [ - "has_runewood_planks", + "has_input", "has_the_recipe" ] ], diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_door.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_door.json index 254764ca0..2325467bc 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_door.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_door.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_pedestal.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_pedestal.json index f18c4bfb1..374d24793 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_pedestal.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_pedestal.json @@ -1,13 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_runewood_planks": { + "has_input": { "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, @@ -22,7 +20,7 @@ }, "requirements": [ [ - "has_runewood_planks", + "has_input", "has_the_recipe" ] ], diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_stand.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_stand.json index 0b820930c..a78be538f 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_stand.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_item_stand.json @@ -1,13 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_runewood_planks": { + "has_input": { "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, @@ -22,7 +20,7 @@ }, "requirements": [ [ - "has_runewood_planks", + "has_input", "has_the_recipe" ] ], diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_trapdoor_from_solid.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_open_trapdoor_exchange.json similarity index 84% rename from src/generated/resources/data/malum/advancements/recipes/misc/runewood_trapdoor_from_solid.json rename to src/generated/resources/data/malum/advancements/recipes/misc/runewood_open_trapdoor_exchange.json index f0a6ae39e..67681d35d 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_trapdoor_from_solid.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_open_trapdoor_exchange.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "malum:runewood_trapdoor_from_solid" + "recipe": "malum:runewood_open_trapdoor_exchange" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "malum:runewood_trapdoor_from_solid" + "malum:runewood_open_trapdoor_exchange" ] }, "sends_telemetry_event": false diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel.json index 2d95b8c99..ee894cfb4 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel.json @@ -1,13 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_runewood_planks": { + "has_input": { "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, @@ -22,7 +20,7 @@ }, "requirements": [ [ - "has_runewood_planks", + "has_input", "has_the_recipe" ] ], diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_button.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_button.json index 8f1be398f..03b07cc9e 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_button.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_button.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_trapdoor.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_exchange.json similarity index 86% rename from src/generated/resources/data/malum/advancements/recipes/misc/runewood_trapdoor.json rename to src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_exchange.json index 16ddcfcc3..caf323ea1 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_trapdoor.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_exchange.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "malum:runewood_trapdoor" + "recipe": "malum:runewood_planks_exchange" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "malum:runewood_trapdoor" + "malum:runewood_planks_exchange" ] }, "sends_telemetry_event": false diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence.json index 671f5d40b..2fb64e8d5 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence_gate.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence_gate.json index 8a8d9fb7e..b17fbed7f 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence_gate.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_fence_gate.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_pressure_plate.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_pressure_plate.json index 285868930..39255bbc0 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_pressure_plate.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_planks_pressure_plate.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_planks_exchange.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_planks_exchange.json new file mode 100644 index 000000000..ca2398f1f --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_planks_exchange.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:rustic_runewood_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:runewood_rustic_planks_exchange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:runewood_rustic_planks_exchange" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_tiles_exchange.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_tiles_exchange.json new file mode 100644 index 000000000..07d53302a --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_rustic_tiles_exchange.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:rustic_runewood_tiles" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:runewood_rustic_tiles_exchange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:runewood_rustic_tiles_exchange" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_sign.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_sign.json index b84d4e12d..abbc1b0de 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_sign.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_sign.json @@ -1,13 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_runewood_planks": { + "has_input": { "conditions": { "items": [ { - "items": [ - "malum:runewood_planks" - ] + "tag": "malum:runewood_planks" } ] }, @@ -22,7 +20,7 @@ }, "requirements": [ [ - "has_runewood_planks", + "has_input", "has_the_recipe" ] ], diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_solid_trapdoor_exchange.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_solid_trapdoor_exchange.json new file mode 100644 index 000000000..03cee478c --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_solid_trapdoor_exchange.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:runewood_trapdoor" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:runewood_solid_trapdoor_exchange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:runewood_solid_trapdoor_exchange" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_tiles.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_tiles.json deleted file mode 100644 index b2965b6d5..000000000 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_tiles.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_runewood_planks": { - "conditions": { - "items": [ - { - "items": [ - "malum:runewood_planks" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "malum:runewood_tiles" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_runewood_planks", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "malum:runewood_tiles" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel_slab.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_tiles_exchange.json similarity index 80% rename from src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel_slab.json rename to src/generated/resources/data/malum/advancements/recipes/misc/runewood_tiles_exchange.json index ed5de8e9b..71748ca42 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel_slab.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_tiles_exchange.json @@ -6,7 +6,7 @@ "items": [ { "items": [ - "malum:runewood_panel" + "malum:runewood_tiles" ] } ] @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "malum:runewood_panel_slab" + "recipe": "malum:runewood_tiles_exchange" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "malum:runewood_panel_slab" + "malum:runewood_tiles_exchange" ] }, "sends_telemetry_event": false diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_planks_exchange.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_planks_exchange.json new file mode 100644 index 000000000..881eef336 --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_planks_exchange.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:vertical_runewood_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:runewood_vertical_planks_exchange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:runewood_vertical_planks_exchange" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_rustic_planks_exchange.json b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_rustic_planks_exchange.json new file mode 100644 index 000000000..a40d73faf --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/runewood_vertical_rustic_planks_exchange.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:vertical_rustic_runewood_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:runewood_vertical_rustic_planks_exchange" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:runewood_vertical_rustic_planks_exchange" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_slab.json b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_slab.json new file mode 100644 index 000000000..67af00800 --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_slab.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:rustic_runewood_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:rustic_runewood_planks_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:rustic_runewood_planks_slab" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_stairs.json b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..2530c7c53 --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_planks_stairs.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:rustic_runewood_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:rustic_runewood_planks_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:rustic_runewood_planks_stairs" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel_stairs.json b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_tiles_slab.json similarity index 78% rename from src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel_stairs.json rename to src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_tiles_slab.json index 9ea38511f..597743f54 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/runewood_panel_stairs.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_tiles_slab.json @@ -6,7 +6,7 @@ "items": [ { "items": [ - "malum:runewood_panel" + "malum:rustic_runewood_tiles" ] } ] @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "malum:runewood_panel_stairs" + "recipe": "malum:rustic_runewood_tiles_slab" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "malum:runewood_panel_stairs" + "malum:rustic_runewood_tiles_slab" ] }, "sends_telemetry_event": false diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_tiles_stairs.json b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_tiles_stairs.json new file mode 100644 index 000000000..6779510fd --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/rustic_runewood_tiles_stairs.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:rustic_runewood_tiles" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:rustic_runewood_tiles_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:rustic_runewood_tiles_stairs" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/solid_runewood_trapdoor.json b/src/generated/resources/data/malum/advancements/recipes/misc/solid_runewood_trapdoor.json index fb9d005af..52f653505 100644 --- a/src/generated/resources/data/malum/advancements/recipes/misc/solid_runewood_trapdoor.json +++ b/src/generated/resources/data/malum/advancements/recipes/misc/solid_runewood_trapdoor.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "malum:runewood_trapdoor" - ] + "tag": "malum:runewood_planks" } ] }, diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/vertical_runewood_planks.json b/src/generated/resources/data/malum/advancements/recipes/misc/vertical_runewood_planks.json deleted file mode 100644 index 3e53821ed..000000000 --- a/src/generated/resources/data/malum/advancements/recipes/misc/vertical_runewood_planks.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_runewood_planks": { - "conditions": { - "items": [ - { - "items": [ - "malum:runewood_planks" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "malum:vertical_runewood_planks" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_runewood_planks", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "malum:vertical_runewood_planks" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_slab.json b/src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_slab.json new file mode 100644 index 000000000..c299d42f6 --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_slab.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:vertical_rustic_runewood_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:vertical_rustic_runewood_planks_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:vertical_rustic_runewood_planks_slab" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_stairs.json b/src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..25cebf490 --- /dev/null +++ b/src/generated/resources/data/malum/advancements/recipes/misc/vertical_rustic_runewood_planks_stairs.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_input": { + "conditions": { + "items": [ + { + "items": [ + "malum:vertical_rustic_runewood_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "malum:vertical_rustic_runewood_planks_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_input", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "malum:vertical_rustic_runewood_planks_stairs" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks.json b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks.json new file mode 100644 index 000000000..81f5e0ceb --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "malum:rustic_runewood_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/rustic_runewood_planks" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_slab.json b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_slab.json new file mode 100644 index 000000000..dbbc4a276 --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "malum:rustic_runewood_planks_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "malum:rustic_runewood_planks_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/rustic_runewood_planks_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_stairs.json b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..68ac61341 --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_planks_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "malum:rustic_runewood_planks_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/rustic_runewood_planks_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/runewood_panel_stairs.json b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles.json similarity index 73% rename from src/generated/resources/data/malum/loot_tables/blocks/runewood_panel_stairs.json rename to src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles.json index 3d2fbe490..3477ae073 100644 --- a/src/generated/resources/data/malum/loot_tables/blocks/runewood_panel_stairs.json +++ b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles.json @@ -11,11 +11,11 @@ "entries": [ { "type": "minecraft:item", - "name": "malum:runewood_panel_stairs" + "name": "malum:rustic_runewood_tiles" } ], "rolls": 1.0 } ], - "random_sequence": "malum:blocks/runewood_panel_stairs" + "random_sequence": "malum:blocks/rustic_runewood_tiles" } \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/runewood_panel_slab.json b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles_slab.json similarity index 79% rename from src/generated/resources/data/malum/loot_tables/blocks/runewood_panel_slab.json rename to src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles_slab.json index 271a6d85c..07c0c2aff 100644 --- a/src/generated/resources/data/malum/loot_tables/blocks/runewood_panel_slab.json +++ b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles_slab.json @@ -11,7 +11,7 @@ "add": false, "conditions": [ { - "block": "malum:runewood_panel_slab", + "block": "malum:rustic_runewood_tiles_slab", "condition": "minecraft:block_state_property", "properties": { "type": "double" @@ -25,11 +25,11 @@ "function": "minecraft:explosion_decay" } ], - "name": "malum:runewood_panel_slab" + "name": "malum:rustic_runewood_tiles_slab" } ], "rolls": 1.0 } ], - "random_sequence": "malum:blocks/runewood_panel_slab" + "random_sequence": "malum:blocks/rustic_runewood_tiles_slab" } \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles_stairs.json b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles_stairs.json new file mode 100644 index 000000000..c1a65e903 --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/rustic_runewood_tiles_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "malum:rustic_runewood_tiles_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/rustic_runewood_tiles_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks.json b/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks.json new file mode 100644 index 000000000..3c25c7e54 --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "malum:vertical_rustic_runewood_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/vertical_rustic_runewood_planks" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_slab.json b/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_slab.json new file mode 100644 index 000000000..d1623caa0 --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "malum:vertical_rustic_runewood_planks_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "malum:vertical_rustic_runewood_planks_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/vertical_rustic_runewood_planks_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_stairs.json b/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..365a5fed4 --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/vertical_rustic_runewood_planks_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "malum:vertical_rustic_runewood_planks_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/vertical_rustic_runewood_planks_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/cut_runewood_planks.json b/src/generated/resources/data/malum/recipes/cut_runewood_planks.json index 94ad57fc2..a1d3ef342 100644 --- a/src/generated/resources/data/malum/recipes/cut_runewood_planks.json +++ b/src/generated/resources/data/malum/recipes/cut_runewood_planks.json @@ -2,16 +2,16 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { + "X": { "item": "malum:runewood_panel" }, - "X": { - "item": "malum:runewood_planks" + "Y": { + "tag": "malum:runewood_planks" } }, "pattern": [ - "#", - "X" + "X", + "Y" ], "result": { "count": 2, diff --git a/src/generated/resources/data/malum/recipes/runewood_beam.json b/src/generated/resources/data/malum/recipes/runewood_beam.json index aff8f3b4b..49a9312f6 100644 --- a/src/generated/resources/data/malum/recipes/runewood_beam.json +++ b/src/generated/resources/data/malum/recipes/runewood_beam.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "#": { - "item": "malum:vertical_runewood_planks" + "tag": "malum:runewood_planks" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_boat.json b/src/generated/resources/data/malum/recipes/runewood_boat.json index 901fc1af5..b0972c124 100644 --- a/src/generated/resources/data/malum/recipes/runewood_boat.json +++ b/src/generated/resources/data/malum/recipes/runewood_boat.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_door.json b/src/generated/resources/data/malum/recipes/runewood_door.json index 3dea6e5eb..43a14dc15 100644 --- a/src/generated/resources/data/malum/recipes/runewood_door.json +++ b/src/generated/resources/data/malum/recipes/runewood_door.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_item_pedestal.json b/src/generated/resources/data/malum/recipes/runewood_item_pedestal.json index 18c6815e4..ffac038b6 100644 --- a/src/generated/resources/data/malum/recipes/runewood_item_pedestal.json +++ b/src/generated/resources/data/malum/recipes/runewood_item_pedestal.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "X": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" }, "Y": { - "item": "malum:runewood_planks_slab" + "tag": "malum:runewood_slabs" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_item_stand.json b/src/generated/resources/data/malum/recipes/runewood_item_stand.json index 36140ca28..9eef5636b 100644 --- a/src/generated/resources/data/malum/recipes/runewood_item_stand.json +++ b/src/generated/resources/data/malum/recipes/runewood_item_stand.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "X": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" }, "Y": { - "item": "malum:runewood_planks_slab" + "tag": "malum:runewood_slabs" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_trapdoor_from_solid.json b/src/generated/resources/data/malum/recipes/runewood_open_trapdoor_exchange.json similarity index 100% rename from src/generated/resources/data/malum/recipes/runewood_trapdoor_from_solid.json rename to src/generated/resources/data/malum/recipes/runewood_open_trapdoor_exchange.json diff --git a/src/generated/resources/data/malum/recipes/runewood_panel.json b/src/generated/resources/data/malum/recipes/runewood_panel.json index f11f355e4..c852407a5 100644 --- a/src/generated/resources/data/malum/recipes/runewood_panel.json +++ b/src/generated/resources/data/malum/recipes/runewood_panel.json @@ -3,16 +3,16 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" } }, "pattern": [ " # ", - "# #", + "###", " # " ], "result": { - "count": 4, + "count": 5, "item": "malum:runewood_panel" }, "show_notification": true diff --git a/src/generated/resources/data/malum/recipes/runewood_planks_button.json b/src/generated/resources/data/malum/recipes/runewood_planks_button.json index 99a273182..3407de4c6 100644 --- a/src/generated/resources/data/malum/recipes/runewood_planks_button.json +++ b/src/generated/resources/data/malum/recipes/runewood_planks_button.json @@ -3,7 +3,7 @@ "category": "misc", "ingredients": [ { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" } ], "result": { diff --git a/src/generated/resources/data/malum/recipes/runewood_tiles.json b/src/generated/resources/data/malum/recipes/runewood_planks_exchange.json similarity index 86% rename from src/generated/resources/data/malum/recipes/runewood_tiles.json rename to src/generated/resources/data/malum/recipes/runewood_planks_exchange.json index aae611067..5cc673005 100644 --- a/src/generated/resources/data/malum/recipes/runewood_tiles.json +++ b/src/generated/resources/data/malum/recipes/runewood_planks_exchange.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_panel" + "item": "malum:runewood_planks" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_planks_fence.json b/src/generated/resources/data/malum/recipes/runewood_planks_fence.json index bdbc0c800..1fef3c09e 100644 --- a/src/generated/resources/data/malum/recipes/runewood_planks_fence.json +++ b/src/generated/resources/data/malum/recipes/runewood_planks_fence.json @@ -6,7 +6,7 @@ "tag": "forge:rods/wooden" }, "W": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_planks_fence_gate.json b/src/generated/resources/data/malum/recipes/runewood_planks_fence_gate.json index 3d18ffba6..b144bb021 100644 --- a/src/generated/resources/data/malum/recipes/runewood_planks_fence_gate.json +++ b/src/generated/resources/data/malum/recipes/runewood_planks_fence_gate.json @@ -6,7 +6,7 @@ "tag": "forge:rods/wooden" }, "W": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_planks_pressure_plate.json b/src/generated/resources/data/malum/recipes/runewood_planks_pressure_plate.json index c6bb494e4..ee27a284d 100644 --- a/src/generated/resources/data/malum/recipes/runewood_planks_pressure_plate.json +++ b/src/generated/resources/data/malum/recipes/runewood_planks_pressure_plate.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" } }, "pattern": [ diff --git a/src/generated/resources/data/malum/recipes/runewood_rustic_planks_exchange.json b/src/generated/resources/data/malum/recipes/runewood_rustic_planks_exchange.json new file mode 100644 index 000000000..93c9d9488 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runewood_rustic_planks_exchange.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "malum:rustic_runewood_planks" + } + }, + "pattern": [ + " # ", + "# #", + " # " + ], + "result": { + "count": 4, + "item": "malum:rustic_runewood_tiles" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runewood_rustic_tiles_exchange.json b/src/generated/resources/data/malum/recipes/runewood_rustic_tiles_exchange.json new file mode 100644 index 000000000..032bdaad0 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runewood_rustic_tiles_exchange.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "malum:rustic_runewood_tiles" + } + }, + "pattern": [ + " # ", + "# #", + " # " + ], + "result": { + "count": 4, + "item": "malum:vertical_rustic_runewood_planks" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runewood_sign.json b/src/generated/resources/data/malum/recipes/runewood_sign.json index e41481ce6..2df2568da 100644 --- a/src/generated/resources/data/malum/recipes/runewood_sign.json +++ b/src/generated/resources/data/malum/recipes/runewood_sign.json @@ -4,7 +4,7 @@ "group": "sign", "key": { "#": { - "item": "malum:runewood_planks" + "tag": "malum:runewood_planks" }, "X": { "tag": "forge:rods/wooden" diff --git a/src/generated/resources/data/malum/recipes/runewood_solid_trapdoor_exchange.json b/src/generated/resources/data/malum/recipes/runewood_solid_trapdoor_exchange.json new file mode 100644 index 000000000..636c0bb8a --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runewood_solid_trapdoor_exchange.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "malum:runewood_trapdoor" + } + ], + "result": { + "item": "malum:solid_runewood_trapdoor" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/vertical_runewood_planks.json b/src/generated/resources/data/malum/recipes/runewood_tiles_exchange.json similarity index 71% rename from src/generated/resources/data/malum/recipes/vertical_runewood_planks.json rename to src/generated/resources/data/malum/recipes/runewood_tiles_exchange.json index 543f00b72..561f9ce12 100644 --- a/src/generated/resources/data/malum/recipes/vertical_runewood_planks.json +++ b/src/generated/resources/data/malum/recipes/runewood_tiles_exchange.json @@ -3,16 +3,16 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_planks" + "item": "malum:runewood_tiles" } }, "pattern": [ - "#", - "#", - "#" + " # ", + "# #", + " # " ], "result": { - "count": 3, + "count": 4, "item": "malum:vertical_runewood_planks" }, "show_notification": true diff --git a/src/generated/resources/data/malum/recipes/runewood_vertical_planks_exchange.json b/src/generated/resources/data/malum/recipes/runewood_vertical_planks_exchange.json new file mode 100644 index 000000000..747f5d8d8 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runewood_vertical_planks_exchange.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "malum:vertical_runewood_planks" + } + }, + "pattern": [ + " # ", + "# #", + " # " + ], + "result": { + "count": 4, + "item": "malum:runewood_planks" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runewood_vertical_rustic_planks_exchange.json b/src/generated/resources/data/malum/recipes/runewood_vertical_rustic_planks_exchange.json new file mode 100644 index 000000000..e313ad266 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runewood_vertical_rustic_planks_exchange.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "malum:vertical_rustic_runewood_planks" + } + }, + "pattern": [ + " # ", + "# #", + " # " + ], + "result": { + "count": 4, + "item": "malum:rustic_runewood_planks" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_aliment_cleansing.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_aliment_cleansing.json new file mode 100644 index 000000000..2d29596ea --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_aliment_cleansing.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_aliment_cleansing" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:aqueous_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_bolstering.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_bolstering.json new file mode 100644 index 000000000..e447f4915 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_bolstering.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_bolstering" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:sacred_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_culling.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_culling.json new file mode 100644 index 000000000..52f470c0d --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_culling.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_culling" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:wicked_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_dexterity.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_dexterity.json new file mode 100644 index 000000000..9703e6986 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_dexterity.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_dexterity" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:aerial_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_haste.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_haste.json new file mode 100644 index 000000000..a5f67ad79 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_haste.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_haste" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:infernal_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_idle_restoration.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_idle_restoration.json new file mode 100644 index 000000000..dc3e54ab1 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_idle_restoration.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_idle_restoration" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:sacred_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_igneous_solace.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_igneous_solace.json new file mode 100644 index 000000000..93f469713 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_igneous_solace.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_igneous_solace" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:infernal_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_reactive_shielding.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_reactive_shielding.json new file mode 100644 index 000000000..f5ba1f92a --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_reactive_shielding.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_reactive_shielding" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:earthen_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_reinforcement.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_reinforcement.json new file mode 100644 index 000000000..bd217bc22 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_reinforcement.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_reinforcement" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:arcane_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_sacrificial_empowerment.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_sacrificial_empowerment.json new file mode 100644 index 000000000..95c1a6703 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_sacrificial_empowerment.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_sacrificial_empowerment" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:wicked_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_spell_mastery.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_spell_mastery.json new file mode 100644 index 000000000..21ae6ddb5 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_spell_mastery.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_spell_mastery" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:arcane_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_the_heretic.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_the_heretic.json new file mode 100644 index 000000000..b7324b623 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_the_heretic.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_the_heretic" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:eldritch_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_toughness.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_toughness.json new file mode 100644 index 000000000..7d8692dff --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_toughness.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_toughness" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:earthen_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_twinned_duration.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_twinned_duration.json new file mode 100644 index 000000000..3240a493b --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_twinned_duration.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_twinned_duration" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:aqueous_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_unnatural_stamina.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_unnatural_stamina.json new file mode 100644 index 000000000..5b706b0c6 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_unnatural_stamina.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_unnatural_stamina" + }, + "primaryInput": { + "count": 1, + "item": "malum:void_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:aerial_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runeworking/rune_of_volatile_distortion.json b/src/generated/resources/data/malum/recipes/runeworking/rune_of_volatile_distortion.json new file mode 100644 index 000000000..ae91b0ca2 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/runeworking/rune_of_volatile_distortion.json @@ -0,0 +1,14 @@ +{ + "type": "malum:runeworking", + "output": { + "item": "malum:rune_of_volatile_distortion" + }, + "primaryInput": { + "count": 1, + "item": "malum:tainted_rock_tablet" + }, + "secondaryInput": { + "count": 16, + "item": "malum:eldritch_spirit" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runewood_trapdoor.json b/src/generated/resources/data/malum/recipes/rustic_runewood_planks_slab.json similarity index 61% rename from src/generated/resources/data/malum/recipes/runewood_trapdoor.json rename to src/generated/resources/data/malum/recipes/rustic_runewood_planks_slab.json index 7d03de554..2b0424a32 100644 --- a/src/generated/resources/data/malum/recipes/runewood_trapdoor.json +++ b/src/generated/resources/data/malum/recipes/rustic_runewood_planks_slab.json @@ -3,16 +3,15 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_planks" + "item": "malum:rustic_runewood_planks" } }, "pattern": [ - "###", "###" ], "result": { - "count": 2, - "item": "malum:runewood_trapdoor" + "count": 6, + "item": "malum:rustic_runewood_planks_slab" }, "show_notification": true } \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/rustic_runewood_planks_stairs.json b/src/generated/resources/data/malum/recipes/rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..45a83ec99 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/rustic_runewood_planks_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "malum:rustic_runewood_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "item": "malum:rustic_runewood_planks_stairs" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runewood_panel_slab.json b/src/generated/resources/data/malum/recipes/rustic_runewood_tiles_slab.json similarity index 67% rename from src/generated/resources/data/malum/recipes/runewood_panel_slab.json rename to src/generated/resources/data/malum/recipes/rustic_runewood_tiles_slab.json index 452661016..6a2d26ef8 100644 --- a/src/generated/resources/data/malum/recipes/runewood_panel_slab.json +++ b/src/generated/resources/data/malum/recipes/rustic_runewood_tiles_slab.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_panel" + "item": "malum:rustic_runewood_tiles" } }, "pattern": [ @@ -11,7 +11,7 @@ ], "result": { "count": 6, - "item": "malum:runewood_panel_slab" + "item": "malum:rustic_runewood_tiles_slab" }, "show_notification": true } \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/runewood_panel_stairs.json b/src/generated/resources/data/malum/recipes/rustic_runewood_tiles_stairs.json similarity index 69% rename from src/generated/resources/data/malum/recipes/runewood_panel_stairs.json rename to src/generated/resources/data/malum/recipes/rustic_runewood_tiles_stairs.json index 7d79d7f0b..e01327160 100644 --- a/src/generated/resources/data/malum/recipes/runewood_panel_stairs.json +++ b/src/generated/resources/data/malum/recipes/rustic_runewood_tiles_stairs.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "#": { - "item": "malum:runewood_panel" + "item": "malum:rustic_runewood_tiles" } }, "pattern": [ @@ -13,7 +13,7 @@ ], "result": { "count": 4, - "item": "malum:runewood_panel_stairs" + "item": "malum:rustic_runewood_tiles_stairs" }, "show_notification": true } \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/solid_runewood_trapdoor.json b/src/generated/resources/data/malum/recipes/solid_runewood_trapdoor.json index 636c0bb8a..e71b9a650 100644 --- a/src/generated/resources/data/malum/recipes/solid_runewood_trapdoor.json +++ b/src/generated/resources/data/malum/recipes/solid_runewood_trapdoor.json @@ -1,12 +1,18 @@ { - "type": "minecraft:crafting_shapeless", + "type": "minecraft:crafting_shaped", "category": "misc", - "ingredients": [ - { - "item": "malum:runewood_trapdoor" + "key": { + "#": { + "tag": "malum:runewood_planks" } + }, + "pattern": [ + "###", + "###" ], "result": { + "count": 2, "item": "malum:solid_runewood_trapdoor" - } + }, + "show_notification": true } \ 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 deleted file mode 100644 index 1c553df4e..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_aliment_cleansing.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 563482b8e..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_bolstering.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 7339b7b5b..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_culling.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 2ba1500c0..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_dexterity.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 8b04a4245..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_haste.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 26604bb7f..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_idle_restoration.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 161189ae9..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_igneous_solace.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 07cbe56de..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reactive_shielding.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 651f6b6b7..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_reinforcement.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 8479134b0..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_sacrificial_empowerment.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index bf3afae56..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_spell_mastery.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 7e5443768..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_the_heretic.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index eeff383de..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_toughness.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 95dc80ff9..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_twinned_duration.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 46648719f..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_unnatural_stamina.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 9a7b777cf..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/rune_of_volatile_distortion.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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_rock_tablet.json similarity index 58% rename from src/generated/resources/data/malum/recipes/spirit_infusion/tainted_slate.json rename to src/generated/resources/data/malum/recipes/spirit_infusion/tainted_rock_tablet.json index 9790c4ecd..598c4490e 100644 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/tainted_slate.json +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/tainted_rock_tablet.json @@ -1,33 +1,38 @@ { "type": "malum:spirit_infusion", - "extra_items": [], + "extra_items": [ + { + "count": 8, + "item": "malum:processed_soulstone" + } + ], "input": { "count": 4, "item": "malum:tainted_rock" }, "output": { - "item": "malum:tainted_slate" + "item": "malum:tainted_rock_tablet" }, "spirits": [ - { - "type": "arcane", - "count": 8 - }, { "type": "aerial", - "count": 4 + "count": 8 }, { "type": "aqueous", - "count": 4 + "count": 8 }, { "type": "earthen", - "count": 4 + "count": 8 }, { "type": "infernal", - "count": 4 + "count": 8 + }, + { + "type": "eldritch", + "count": 2 } ] } \ 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/void_tablet.json similarity index 51% rename from src/generated/resources/data/malum/recipes/spirit_infusion/altered_slate.json rename to src/generated/resources/data/malum/recipes/spirit_infusion/void_tablet.json index 0a7bf3654..61f838c17 100644 --- a/src/generated/resources/data/malum/recipes/spirit_infusion/altered_slate.json +++ b/src/generated/resources/data/malum/recipes/spirit_infusion/void_tablet.json @@ -2,21 +2,25 @@ "type": "malum:spirit_infusion", "extra_items": [ { - "count": 4, + "count": 8, "item": "malum:null_slate" + }, + { + "count": 8, + "item": "malum:void_salts" } ], "input": { - "count": 1, - "item": "malum:tainted_slate" + "count": 4, + "item": "malum:tainted_rock_tablet" }, "output": { - "item": "malum:altered_slate" + "item": "malum:void_tablet" }, "spirits": [ { "type": "eldritch", - "count": 8 + "count": 4 } ] } \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_slab.json b/src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_slab.json deleted file mode 100644 index 8fafc7328..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "malum:spirit_transmutation", - "group": "soulwood", - "input": { - "item": "malum:runewood_panel_slab" - }, - "output": { - "item": "malum:soulwood_panel_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_stairs.json b/src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_stairs.json deleted file mode 100644 index d75c13bbd..000000000 --- a/src/generated/resources/data/malum/recipes/spirit_transmutation/soulwood/panel_stairs.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "malum:spirit_transmutation", - "group": "soulwood", - "input": { - "item": "malum:runewood_panel_stairs" - }, - "output": { - "item": "malum:soulwood_panel_stairs" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_slab.json b/src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_slab.json new file mode 100644 index 000000000..d160ecc8e --- /dev/null +++ b/src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "malum:vertical_rustic_runewood_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "item": "malum:vertical_rustic_runewood_planks_slab" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_stairs.json b/src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_stairs.json new file mode 100644 index 000000000..eddcb2071 --- /dev/null +++ b/src/generated/resources/data/malum/recipes/vertical_rustic_runewood_planks_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "malum:vertical_rustic_runewood_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "item": "malum:vertical_rustic_runewood_planks_stairs" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/tags/items/runewood_planks.json b/src/generated/resources/data/malum/tags/items/runewood_planks.json new file mode 100644 index 000000000..93184a66c --- /dev/null +++ b/src/generated/resources/data/malum/tags/items/runewood_planks.json @@ -0,0 +1,10 @@ +{ + "values": [ + "malum:runewood_planks", + "malum:rustic_runewood_planks", + "malum:vertical_runewood_planks", + "malum:vertical_rustic_runewood_planks", + "malum:runewood_tiles", + "malum:rustic_runewood_tiles" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/tags/items/soulwood_planks.json b/src/generated/resources/data/malum/tags/items/soulwood_planks.json new file mode 100644 index 000000000..f72d209df --- /dev/null +++ b/src/generated/resources/data/malum/tags/items/soulwood_planks.json @@ -0,0 +1,3 @@ +{ + "values": [] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json index 3346e8917..0bed503bd 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -1,6 +1,7 @@ { "values": [ "malum:soulwood_planks_button", + "malum:rustic_runewood_planks", "malum:runewood_tiles_stairs", "malum:soulwood_tiles_stairs", "malum:runewood_planks_slab", @@ -13,25 +14,31 @@ "malum:soulwood_item_stand", "malum:soulwood", "malum:exposed_soulwood_log", + "malum:rustic_runewood_planks_slab", "malum:runic_workbench", "malum:runewood_obelisk_component", "malum:runewood", + "malum:vertical_rustic_runewood_planks_stairs", "malum:solid_soulwood_trapdoor", "malum:runewood_item_pedestal", "malum:vertical_soulwood_planks_slab", "malum:runewood_item_stand", + "malum:rustic_runewood_tiles", "malum:soulwood_planks_slab", "malum:vertical_soulwood_planks", "malum:runewood_tiles_slab", "malum:stripped_soulwood_log", + "malum:vertical_rustic_runewood_planks_slab", "malum:weavers_workbench", "malum:stripped_runewood", "malum:runewood_planks_fence", "malum:vertical_runewood_planks_stairs", "malum:runewood_planks_pressure_plate", "malum:soulwood_tiles_slab", + "malum:rustic_runewood_planks_stairs", "malum:runewood_totem_base", "malum:soulwood_totem_base", + "malum:rustic_runewood_tiles_stairs", "malum:iridescent_wall_ether_torch", "malum:runewood_trapdoor", "malum:wall_ether_torch", @@ -51,7 +58,6 @@ "malum:stripped_runewood_log", "malum:vertical_soulwood_planks_stairs", "malum:cut_soulwood_planks", - "malum:runewood_panel_stairs", "malum:exposed_runewood_log", "malum:blighted_soulwood", "malum:ether_torch", @@ -59,14 +65,15 @@ "malum:spirit_altar", "malum:ritual_plinth", "malum:runewood_planks_button", + "malum:rustic_runewood_tiles_slab", "malum:cut_runewood_planks", "malum:revealed_soulwood_log", "malum:runewood_log", "malum:runewood_door", "malum:runewood_beam", + "malum:vertical_rustic_runewood_planks", "malum:soulwood_wall_sign", "malum:stripped_soulwood", - "malum:runewood_panel_slab", "malum:soulwood_planks_fence", "malum:runewood_totem_pole", "malum:soulwood_sign", diff --git a/src/generated/resources/data/minecraft/tags/blocks/planks.json b/src/generated/resources/data/minecraft/tags/blocks/planks.json index 18c8b50bb..5a5c6d589 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/planks.json +++ b/src/generated/resources/data/minecraft/tags/blocks/planks.json @@ -1,9 +1,11 @@ { "values": [ + "malum:rustic_runewood_planks", "malum:vertical_soulwood_planks", "malum:vertical_runewood_planks", "malum:cut_soulwood_planks", "malum:cut_runewood_planks", + "malum:vertical_rustic_runewood_planks", "malum:runewood_planks", "malum:soulwood_planks" ] diff --git a/src/generated/resources/data/minecraft/tags/blocks/slabs.json b/src/generated/resources/data/minecraft/tags/blocks/slabs.json index 7869c4242..e05563f14 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/slabs.json +++ b/src/generated/resources/data/minecraft/tags/blocks/slabs.json @@ -5,11 +5,13 @@ "malum:polished_twisted_rock_slab", "malum:soulwood_panel_slab", "malum:small_twisted_rock_bricks_slab", + "malum:rustic_runewood_planks_slab", "malum:polished_tainted_rock_slab", "malum:vertical_soulwood_planks_slab", "malum:soulwood_planks_slab", "malum:runewood_tiles_slab", "malum:twisted_rock_tiles_slab", + "malum:vertical_rustic_runewood_planks_slab", "malum:runic_twisted_rock_bricks_slab", "malum:soulwood_tiles_slab", "malum:small_tainted_rock_bricks_slab", @@ -22,8 +24,8 @@ "malum:smooth_tainted_rock_slab", "malum:runic_small_twisted_rock_bricks_slab", "malum:smooth_twisted_rock_slab", + "malum:rustic_runewood_tiles_slab", "malum:tainted_rock_tiles_slab", - "malum:runewood_panel_slab", "malum:twisted_rock_slab", "malum:runic_tainted_rock_tiles_slab" ] diff --git a/src/generated/resources/data/minecraft/tags/blocks/stairs.json b/src/generated/resources/data/minecraft/tags/blocks/stairs.json index 1468b83ee..7f16117da 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/stairs.json +++ b/src/generated/resources/data/minecraft/tags/blocks/stairs.json @@ -7,19 +7,21 @@ "malum:twisted_rock_bricks_stairs", "malum:runewood_planks_stairs", "malum:tainted_rock_stairs", + "malum:vertical_rustic_runewood_planks_stairs", "malum:smooth_tainted_rock_stairs", "malum:vertical_runewood_planks_stairs", "malum:runic_twisted_rock_tiles_stairs", + "malum:rustic_runewood_planks_stairs", "malum:twisted_rock_tiles_stairs", "malum:smooth_twisted_rock_stairs", "malum:runic_small_twisted_rock_bricks_stairs", + "malum:rustic_runewood_tiles_stairs", "malum:polished_tainted_rock_stairs", "malum:tainted_rock_bricks_stairs", "malum:soulwood_panel_stairs", "malum:vertical_soulwood_planks_stairs", "malum:runic_tainted_rock_bricks_stairs", "malum:runic_small_tainted_rock_bricks_stairs", - "malum:runewood_panel_stairs", "malum:polished_twisted_rock_stairs", "malum:soulwood_planks_stairs", "malum:tainted_rock_tiles_stairs", diff --git a/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json b/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json index 3ff198b99..632dd4d18 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json +++ b/src/generated/resources/data/minecraft/tags/blocks/wooden_slabs.json @@ -2,11 +2,13 @@ "values": [ "malum:runewood_planks_slab", "malum:soulwood_panel_slab", + "malum:rustic_runewood_planks_slab", "malum:vertical_soulwood_planks_slab", "malum:soulwood_planks_slab", "malum:runewood_tiles_slab", + "malum:vertical_rustic_runewood_planks_slab", "malum:soulwood_tiles_slab", "malum:vertical_runewood_planks_slab", - "malum:runewood_panel_slab" + "malum:rustic_runewood_tiles_slab" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json b/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json index 1b115b0b6..681e10301 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json +++ b/src/generated/resources/data/minecraft/tags/blocks/wooden_stairs.json @@ -3,10 +3,12 @@ "malum:runewood_tiles_stairs", "malum:soulwood_tiles_stairs", "malum:runewood_planks_stairs", + "malum:vertical_rustic_runewood_planks_stairs", "malum:vertical_runewood_planks_stairs", + "malum:rustic_runewood_planks_stairs", + "malum:rustic_runewood_tiles_stairs", "malum:soulwood_panel_stairs", "malum:vertical_soulwood_planks_stairs", - "malum:runewood_panel_stairs", "malum:soulwood_planks_stairs" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/planks.json b/src/generated/resources/data/minecraft/tags/items/planks.json index 18c8b50bb..5a5c6d589 100644 --- a/src/generated/resources/data/minecraft/tags/items/planks.json +++ b/src/generated/resources/data/minecraft/tags/items/planks.json @@ -1,9 +1,11 @@ { "values": [ + "malum:rustic_runewood_planks", "malum:vertical_soulwood_planks", "malum:vertical_runewood_planks", "malum:cut_soulwood_planks", "malum:cut_runewood_planks", + "malum:vertical_rustic_runewood_planks", "malum:runewood_planks", "malum:soulwood_planks" ] diff --git a/src/generated/resources/data/minecraft/tags/items/slabs.json b/src/generated/resources/data/minecraft/tags/items/slabs.json index 7869c4242..e05563f14 100644 --- a/src/generated/resources/data/minecraft/tags/items/slabs.json +++ b/src/generated/resources/data/minecraft/tags/items/slabs.json @@ -5,11 +5,13 @@ "malum:polished_twisted_rock_slab", "malum:soulwood_panel_slab", "malum:small_twisted_rock_bricks_slab", + "malum:rustic_runewood_planks_slab", "malum:polished_tainted_rock_slab", "malum:vertical_soulwood_planks_slab", "malum:soulwood_planks_slab", "malum:runewood_tiles_slab", "malum:twisted_rock_tiles_slab", + "malum:vertical_rustic_runewood_planks_slab", "malum:runic_twisted_rock_bricks_slab", "malum:soulwood_tiles_slab", "malum:small_tainted_rock_bricks_slab", @@ -22,8 +24,8 @@ "malum:smooth_tainted_rock_slab", "malum:runic_small_twisted_rock_bricks_slab", "malum:smooth_twisted_rock_slab", + "malum:rustic_runewood_tiles_slab", "malum:tainted_rock_tiles_slab", - "malum:runewood_panel_slab", "malum:twisted_rock_slab", "malum:runic_tainted_rock_tiles_slab" ] diff --git a/src/generated/resources/data/minecraft/tags/items/stairs.json b/src/generated/resources/data/minecraft/tags/items/stairs.json index 1468b83ee..7f16117da 100644 --- a/src/generated/resources/data/minecraft/tags/items/stairs.json +++ b/src/generated/resources/data/minecraft/tags/items/stairs.json @@ -7,19 +7,21 @@ "malum:twisted_rock_bricks_stairs", "malum:runewood_planks_stairs", "malum:tainted_rock_stairs", + "malum:vertical_rustic_runewood_planks_stairs", "malum:smooth_tainted_rock_stairs", "malum:vertical_runewood_planks_stairs", "malum:runic_twisted_rock_tiles_stairs", + "malum:rustic_runewood_planks_stairs", "malum:twisted_rock_tiles_stairs", "malum:smooth_twisted_rock_stairs", "malum:runic_small_twisted_rock_bricks_stairs", + "malum:rustic_runewood_tiles_stairs", "malum:polished_tainted_rock_stairs", "malum:tainted_rock_bricks_stairs", "malum:soulwood_panel_stairs", "malum:vertical_soulwood_planks_stairs", "malum:runic_tainted_rock_bricks_stairs", "malum:runic_small_tainted_rock_bricks_stairs", - "malum:runewood_panel_stairs", "malum:polished_twisted_rock_stairs", "malum:soulwood_planks_stairs", "malum:tainted_rock_tiles_stairs", diff --git a/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json b/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json index 3ff198b99..632dd4d18 100644 --- a/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json +++ b/src/generated/resources/data/minecraft/tags/items/wooden_slabs.json @@ -2,11 +2,13 @@ "values": [ "malum:runewood_planks_slab", "malum:soulwood_panel_slab", + "malum:rustic_runewood_planks_slab", "malum:vertical_soulwood_planks_slab", "malum:soulwood_planks_slab", "malum:runewood_tiles_slab", + "malum:vertical_rustic_runewood_planks_slab", "malum:soulwood_tiles_slab", "malum:vertical_runewood_planks_slab", - "malum:runewood_panel_slab" + "malum:rustic_runewood_tiles_slab" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/wooden_stairs.json b/src/generated/resources/data/minecraft/tags/items/wooden_stairs.json index 1b115b0b6..681e10301 100644 --- a/src/generated/resources/data/minecraft/tags/items/wooden_stairs.json +++ b/src/generated/resources/data/minecraft/tags/items/wooden_stairs.json @@ -3,10 +3,12 @@ "malum:runewood_tiles_stairs", "malum:soulwood_tiles_stairs", "malum:runewood_planks_stairs", + "malum:vertical_rustic_runewood_planks_stairs", "malum:vertical_runewood_planks_stairs", + "malum:rustic_runewood_planks_stairs", + "malum:rustic_runewood_tiles_stairs", "malum:soulwood_panel_stairs", "malum:vertical_soulwood_planks_stairs", - "malum:runewood_panel_stairs", "malum:soulwood_planks_stairs" ] } \ No newline at end of file diff --git a/src/main/java/com/sammy/malum/common/block/curiosities/runic_workbench/RunicWorkbenchBlockEntity.java b/src/main/java/com/sammy/malum/common/block/curiosities/runic_workbench/RunicWorkbenchBlockEntity.java index d97454143..387eb3d7e 100644 --- a/src/main/java/com/sammy/malum/common/block/curiosities/runic_workbench/RunicWorkbenchBlockEntity.java +++ b/src/main/java/com/sammy/malum/common/block/curiosities/runic_workbench/RunicWorkbenchBlockEntity.java @@ -1,12 +1,30 @@ package com.sammy.malum.common.block.curiosities.runic_workbench; +import com.sammy.malum.common.block.storage.*; +import com.sammy.malum.common.item.spirit.*; +import com.sammy.malum.common.packets.particle.curiosities.blight.*; +import com.sammy.malum.common.recipe.*; +import com.sammy.malum.registry.common.*; import com.sammy.malum.registry.common.block.*; import net.minecraft.core.*; +import net.minecraft.sounds.*; +import net.minecraft.world.*; +import net.minecraft.world.entity.item.*; +import net.minecraft.world.entity.player.*; +import net.minecraft.world.item.*; import net.minecraft.world.level.block.entity.*; import net.minecraft.world.level.block.state.*; -import team.lodestar.lodestone.systems.blockentity.*; +import net.minecraft.world.phys.*; +import net.minecraftforge.network.*; +import team.lodestar.lodestone.helpers.*; -public class RunicWorkbenchBlockEntity extends LodestoneBlockEntity { +import java.util.*; + +import static com.sammy.malum.registry.common.PacketRegistry.*; + +public class RunicWorkbenchBlockEntity extends MalumItemHolderBlockEntity { + + public static final Vec3 RUNIC_WORKBENCH_ITEM_OFFSET = new Vec3(0.5f, 1.25f, 0.5f); public RunicWorkbenchBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); @@ -15,4 +33,39 @@ public RunicWorkbenchBlockEntity(BlockEntityType level.getChunkAt(getBlockPos())), new BlightTransformItemParticlePacket(List.of(spiritShardItem.type.identifier), itemPos)); + } + BlockHelper.updateAndNotifyState(level, worldPosition); + } + return InteractionResult.SUCCESS; + } + } + + + return super.onUse(player, hand); + } } \ No newline at end of file diff --git a/src/main/java/com/sammy/malum/common/block/curiosities/totem/TotemBaseBlockEntity.java b/src/main/java/com/sammy/malum/common/block/curiosities/totem/TotemBaseBlockEntity.java index 0d9abf200..4d54cf6a1 100644 --- a/src/main/java/com/sammy/malum/common/block/curiosities/totem/TotemBaseBlockEntity.java +++ b/src/main/java/com/sammy/malum/common/block/curiosities/totem/TotemBaseBlockEntity.java @@ -110,16 +110,19 @@ public InteractionResult onUse(Player player, InteractionHand hand) { if (active && rite == null) { return InteractionResult.FAIL; } - if (!level.isClientSide) { - if (active) { - endRite(); - } else { - startRite(); + if (!level.getBlockState(getBlockPos().above()).isAir()) { + if (!level.isClientSide) { + if (active) { + endRite(); + } else { + startRite(); + } + BlockHelper.updateState(level, worldPosition); } - BlockHelper.updateState(level, worldPosition); + player.swing(InteractionHand.MAIN_HAND, true); + return InteractionResult.SUCCESS; } - player.swing(InteractionHand.MAIN_HAND, true); - return InteractionResult.SUCCESS; + return InteractionResult.PASS; } @Override diff --git a/src/main/java/com/sammy/malum/common/sound/BlightedSoundType.java b/src/main/java/com/sammy/malum/common/sound/BlightedSoundType.java index 318bf5593..974576089 100644 --- a/src/main/java/com/sammy/malum/common/sound/BlightedSoundType.java +++ b/src/main/java/com/sammy/malum/common/sound/BlightedSoundType.java @@ -23,27 +23,27 @@ public BlightedSoundType(float volumeIn, float pitchIn, Supplier bre @Override public void onPlayBreakSound(Level level, BlockPos pos) { - level.playLocalSound(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, SoundRegistry.MINOR_BLIGHT_MOTIF.get(), SoundSource.BLOCKS, (getVolume() + 1.0F) / 4.0F, getPitch() * 1.9F, false); + level.playLocalSound(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, SoundRegistry.MINOR_BLIGHT_MOTIF.get(), SoundSource.BLOCKS, (getVolume() + 1.0F) * 0.15f, getPitch() * 1.9F, false); } @Override public void onPlayStepSound(Level level, BlockPos pos, BlockState state, SoundSource category) { - level.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundRegistry.MINOR_BLIGHT_MOTIF.get(), category, getVolume() * 0.15F, getPitch() * 1.6F); + level.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundRegistry.MINOR_BLIGHT_MOTIF.get(), category, getVolume() * 0.1F, getPitch() * 1.6F); } @Override public void onPlayPlaceSound(Level level, BlockPos pos, Player player) { - level.playSound(player, pos, SoundRegistry.MINOR_BLIGHT_MOTIF.get(), SoundSource.BLOCKS, (getVolume() + 1.0F) / 2.0F, getPitch() * 1.8F); + level.playSound(player, pos, SoundRegistry.MINOR_BLIGHT_MOTIF.get(), SoundSource.BLOCKS, (getVolume() + 1.0F) * 0.25f, getPitch() * 1.8F); } @Override @OnlyIn(value = Dist.CLIENT) public void onPlayHitSound(BlockPos pos) { - Minecraft.getInstance().getSoundManager().play(new SimpleSoundInstance(SoundRegistry.MINOR_BLIGHT_MOTIF.get(), SoundSource.BLOCKS, (getVolume() + 1.0F) / 8.0F, getPitch() * 2F, MalumMod.RANDOM, pos)); + Minecraft.getInstance().getSoundManager().play(new SimpleSoundInstance(SoundRegistry.MINOR_BLIGHT_MOTIF.get(), SoundSource.BLOCKS, (getVolume() + 1.0F) * 0.1f, getPitch() * 2F, MalumMod.RANDOM, pos)); } @Override public void onPlayFallSound(Level level, BlockPos pos, SoundSource category) { - level.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundRegistry.MAJOR_BLIGHT_MOTIF.get(), category, getVolume() * 0.5F, getPitch() * 1.7F); + level.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundRegistry.MAJOR_BLIGHT_MOTIF.get(), category, getVolume() * 0.25f, getPitch() * 1.7F); } } \ No newline at end of file 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 b927622dd..d0105a37f 100644 --- a/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java +++ b/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java @@ -104,9 +104,16 @@ protected void registerStatesAndModels() { MalumBlockStateSmithTypes.IRIDESCENT_BRAZIER_BLOCK.act(data, TWISTED_IRIDESCENT_ETHER_BRAZIER); setTexturePath("runewood/"); - BlockStateSmithTypes.FULL_BLOCK.act(data, RUNEWOOD_PLANKS, VERTICAL_RUNEWOOD_PLANKS, RUNEWOOD_PANEL, RUNEWOOD_TILES); - BlockStateSmithTypes.SLAB_BLOCK.act(data, RUNEWOOD_PLANKS_SLAB, VERTICAL_RUNEWOOD_PLANKS_SLAB, RUNEWOOD_PANEL_SLAB, RUNEWOOD_TILES_SLAB); - BlockStateSmithTypes.STAIRS_BLOCK.act(data, RUNEWOOD_PLANKS_STAIRS, VERTICAL_RUNEWOOD_PLANKS_STAIRS, RUNEWOOD_PANEL_STAIRS, RUNEWOOD_TILES_STAIRS); + BlockStateSmithTypes.FULL_BLOCK.act(data, + RUNEWOOD_PLANKS, VERTICAL_RUNEWOOD_PLANKS, RUNEWOOD_TILES, + RUSTIC_RUNEWOOD_PLANKS, VERTICAL_RUSTIC_RUNEWOOD_PLANKS, RUSTIC_RUNEWOOD_TILES, + RUNEWOOD_PANEL); + BlockStateSmithTypes.SLAB_BLOCK.act(data, + RUNEWOOD_PLANKS_SLAB, VERTICAL_RUNEWOOD_PLANKS_SLAB, RUNEWOOD_TILES_SLAB, + RUSTIC_RUNEWOOD_PLANKS_SLAB, VERTICAL_RUSTIC_RUNEWOOD_PLANKS_SLAB, RUSTIC_RUNEWOOD_TILES_SLAB); + BlockStateSmithTypes.STAIRS_BLOCK.act(data, + RUNEWOOD_PLANKS_STAIRS, VERTICAL_RUNEWOOD_PLANKS_STAIRS, RUNEWOOD_TILES_STAIRS, + RUSTIC_RUNEWOOD_PLANKS_STAIRS, VERTICAL_RUSTIC_RUNEWOOD_PLANKS_STAIRS, RUSTIC_RUNEWOOD_TILES_STAIRS); BlockStateSmithTypes.LOG_BLOCK.act(data, RUNEWOOD_BEAM, RUNEWOOD_LOG, STRIPPED_RUNEWOOD_LOG, EXPOSED_RUNEWOOD_LOG, REVEALED_RUNEWOOD_LOG); BlockStateSmithTypes.WOOD_BLOCK.act(data, RUNEWOOD, STRIPPED_RUNEWOOD); diff --git a/src/main/java/com/sammy/malum/data/item/MalumItemModels.java b/src/main/java/com/sammy/malum/data/item/MalumItemModels.java index 56dd84d11..e1b3a8142 100644 --- a/src/main/java/com/sammy/malum/data/item/MalumItemModels.java +++ b/src/main/java/com/sammy/malum/data/item/MalumItemModels.java @@ -45,7 +45,7 @@ protected void registerModels() { ItemModelSmithTypes.GENERATED_ITEM.act(data, items.stream().filter(i -> i.get() instanceof AbstractWeaveItem).collect(Collectors.toList())); setTexturePath("runes/"); - MalumItemModelSmithTypes.GENERATED_OVERLAY_ITEM.act(data, items.stream().filter(i -> i.get() instanceof MalumRuneCurioItem).collect(Collectors.toList())); + ItemModelSmithTypes.GENERATED_ITEM.act(data, items.stream().filter(i -> i.get() instanceof MalumRuneCurioItem).collect(Collectors.toList())); setTexturePath("impetus/"); MalumItemModelSmithTypes.IMPETUS_ITEM.act(data, items.stream().filter(i -> i.get() instanceof ImpetusItem || i.get() instanceof CrackedImpetusItem).collect(Collectors.toList())); diff --git a/src/main/java/com/sammy/malum/data/item/MalumItemTags.java b/src/main/java/com/sammy/malum/data/item/MalumItemTags.java index 23f472d8c..dcefe2771 100644 --- a/src/main/java/com/sammy/malum/data/item/MalumItemTags.java +++ b/src/main/java/com/sammy/malum/data/item/MalumItemTags.java @@ -19,6 +19,7 @@ import java.util.concurrent.*; +import static com.sammy.malum.registry.common.item.ItemRegistry.RUNEWOOD_PLANKS; import static com.sammy.malum.registry.common.item.ItemRegistry.*; import static com.sammy.malum.registry.common.item.ItemTagRegistry.*; import static team.lodestar.lodestone.registry.common.tag.LodestoneItemTags.*; @@ -73,10 +74,14 @@ protected void addTags(HolderLookup.Provider pProvider) { }); tag(PROSPECTORS_TREASURE).addTags(Tags.Items.ORES, Tags.Items.STORAGE_BLOCKS, Tags.Items.INGOTS, Tags.Items.NUGGETS, Tags.Items.GEMS, Tags.Items.RAW_MATERIALS, ItemTags.COALS, METAL_NODES); tag(PROSPECTORS_TREASURE).addOptional(new ResourceLocation("tetra", "geode")); - + tag(RUNEWOOD_LOGS).add(RUNEWOOD_LOG.get(), STRIPPED_RUNEWOOD_LOG.get(), RUNEWOOD.get(), STRIPPED_RUNEWOOD.get(), EXPOSED_RUNEWOOD_LOG.get(), REVEALED_RUNEWOOD_LOG.get()); tag(SOULWOOD_LOGS).add(SOULWOOD_LOG.get(), STRIPPED_SOULWOOD_LOG.get(), SOULWOOD.get(), STRIPPED_SOULWOOD.get(), EXPOSED_SOULWOOD_LOG.get(), REVEALED_SOULWOOD_LOG.get(), BLIGHTED_SOULWOOD.get()); + tag(ItemTagRegistry.RUNEWOOD_PLANKS).add(RUNEWOOD_PLANKS.get(), RUSTIC_RUNEWOOD_PLANKS.get(), VERTICAL_RUNEWOOD_PLANKS.get(), VERTICAL_RUSTIC_RUNEWOOD_PLANKS.get(), RUNEWOOD_TILES.get(), RUSTIC_RUNEWOOD_TILES.get()); + tag(ItemTagRegistry.SOULWOOD_PLANKS); +// tag(ItemTagRegistry.SOULWOOD_PLANKS).add(SOULWOOD_PLANKS.get(), RUSTIC_SOULWOOD_PLANKS.get(), VERTICAL_SOULWOOD_PLANKS.get(), VERTICAL_RUSTIC_SOULWOOD_PLANKS.get(), SOULWOOD_TILES.get(), RUSTIC_SOULWOOD_TILES.get()); + tag(SCYTHE).add(CRUDE_SCYTHE.get(), SOUL_STAINED_STEEL_SCYTHE.get(), CREATIVE_SCYTHE.get()); tag(STAFF).add(MNEMONIC_HEX_STAFF.get(), STAFF_OF_THE_AURIC_FLAME.get(), MALIGNANT_SCEPTER.get()); 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 bd819582c..a56e21b99 100644 --- a/src/main/java/com/sammy/malum/data/recipe/MalumRecipes.java +++ b/src/main/java/com/sammy/malum/data/recipe/MalumRecipes.java @@ -1,5 +1,6 @@ package com.sammy.malum.data.recipe; +import com.sammy.malum.data.recipe.crafting.*; import com.sammy.malum.data.recipe.infusion.*; import net.minecraft.data.*; import net.minecraft.data.recipes.*; @@ -23,12 +24,12 @@ public MalumRecipes(PackOutput pOutput) { protected void buildRecipes(Consumer consumer) { vanillaRecipeReplacements.buildRecipes(consumer); MalumVanillaRecipes.buildRecipes(consumer); + MalumWoodenRecipes.buildRecipes(consumer); ArtificeSpiritInfusionRecipes.buildRecipes(consumer); CurioSpiritInfusionRecipes.buildRecipes(consumer); GearSpiritInfusionRecipes.buildRecipes(consumer); MaterialSpiritInfusionRecipes.buildRecipes(consumer); - RuneSpiritInfusionRecipes.buildRecipes(consumer); TotemicSpiritInfusionRecipes.buildRecipes(consumer); MiscSpiritInfusionRecipes.buildRecipes(consumer); diff --git a/src/main/java/com/sammy/malum/data/recipe/MalumRuneworkingRecipes.java b/src/main/java/com/sammy/malum/data/recipe/MalumRuneworkingRecipes.java index 23b29d6a1..4db58c36e 100644 --- a/src/main/java/com/sammy/malum/data/recipe/MalumRuneworkingRecipes.java +++ b/src/main/java/com/sammy/malum/data/recipe/MalumRuneworkingRecipes.java @@ -10,87 +10,76 @@ public class MalumRuneworkingRecipes implements IConditionBuilder { protected static void buildRecipes(Consumer consumer) { - - new RunicWorkbenchRecipeBuilder(ItemRegistry.TAINTED_SLATE.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_ROCK.get(), 4) - .setSecondaryInput(ItemRegistry.PROCESSED_SOULSTONE.get(), 8) - .build(consumer, "tainted_slate"); - - new RunicWorkbenchRecipeBuilder(ItemRegistry.ALTERED_SLATE.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.NULL_SLATE.get(), 8) - .build(consumer, "altered_slate"); - new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_IDLE_RESTORATION.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.SACRED_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.SACRED_SPIRIT.get(), 16) .build(consumer, "rune_of_idle_restoration"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_BOLSTERING.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.SACRED_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.SACRED_SPIRIT.get(), 16) .build(consumer, "rune_of_bolstering"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_CULLING.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.WICKED_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.WICKED_SPIRIT.get(), 16) .build(consumer, "rune_of_culling"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_SACRIFICIAL_EMPOWERMENT.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.WICKED_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.WICKED_SPIRIT.get(), 16) .build(consumer, "rune_of_sacrificial_empowerment"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_REINFORCEMENT.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.ARCANE_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.ARCANE_SPIRIT.get(), 16) .build(consumer, "rune_of_reinforcement"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_SPELL_MASTERY.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.ARCANE_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.ARCANE_SPIRIT.get(), 16) .build(consumer, "rune_of_spell_mastery"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_VOLATILE_DISTORTION.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.ELDRITCH_SPIRIT.get(), 8) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.ELDRITCH_SPIRIT.get(), 16) .build(consumer, "rune_of_volatile_distortion"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_THE_HERETIC.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.ELDRITCH_SPIRIT.get(), 8) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.ELDRITCH_SPIRIT.get(), 16) .build(consumer, "rune_of_the_heretic"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_DEXTERITY.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.AERIAL_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.AERIAL_SPIRIT.get(), 16) .build(consumer, "rune_of_dexterity"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_UNNATURAL_STAMINA.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.AERIAL_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.AERIAL_SPIRIT.get(), 16) .build(consumer, "rune_of_unnatural_stamina"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_ALIMENT_CLEANSING.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.AQUEOUS_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.AQUEOUS_SPIRIT.get(), 16) .build(consumer, "rune_of_aliment_cleansing"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_TWINNED_DURATION.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.AQUEOUS_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.AQUEOUS_SPIRIT.get(), 16) .build(consumer, "rune_of_twinned_duration"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_REACTIVE_SHIELDING.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.EARTHEN_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.EARTHEN_SPIRIT.get(), 16) .build(consumer, "rune_of_reactive_shielding"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_TOUGHNESS.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.EARTHEN_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.EARTHEN_SPIRIT.get(), 16) .build(consumer, "rune_of_toughness"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_HASTE.get(), 1) - .setPrimaryInput(ItemRegistry.TAINTED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.INFERNAL_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.INFERNAL_SPIRIT.get(), 16) .build(consumer, "rune_of_haste"); new RunicWorkbenchRecipeBuilder(ItemRegistry.RUNE_OF_IGNEOUS_SOLACE.get(), 1) - .setPrimaryInput(ItemRegistry.ALTERED_SLATE.get(), 1) - .setSecondaryInput(ItemRegistry.INFERNAL_SPIRIT.get(), 32) + .setPrimaryInput(ItemRegistry.VOID_TABLET.get(), 1) + .setSecondaryInput(ItemRegistry.INFERNAL_SPIRIT.get(), 16) .build(consumer, "rune_of_igneous_solace"); } diff --git a/src/main/java/com/sammy/malum/data/recipe/MalumSpiritTransmutationRecipes.java b/src/main/java/com/sammy/malum/data/recipe/MalumSpiritTransmutationRecipes.java index 8682cfb6f..44e6530bc 100644 --- a/src/main/java/com/sammy/malum/data/recipe/MalumSpiritTransmutationRecipes.java +++ b/src/main/java/com/sammy/malum/data/recipe/MalumSpiritTransmutationRecipes.java @@ -1,16 +1,13 @@ package com.sammy.malum.data.recipe; -import com.mojang.datafixers.util.Pair; -import com.sammy.malum.data.recipe.builder.SpiritTransmutationRecipeBuilder; -import net.minecraft.data.PackOutput; -import net.minecraft.data.recipes.FinishedRecipe; -import net.minecraft.data.recipes.RecipeProvider; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraftforge.registries.RegistryObject; - -import java.util.List; -import java.util.function.Consumer; +import com.mojang.datafixers.util.*; +import com.sammy.malum.data.recipe.builder.*; +import net.minecraft.data.recipes.*; +import net.minecraft.world.level.block.*; +import net.minecraftforge.registries.*; + +import java.util.*; +import java.util.function.*; import static com.sammy.malum.registry.common.block.BlockRegistry.*; @@ -33,8 +30,6 @@ public class MalumSpiritTransmutationRecipes { new Pair<>(VERTICAL_RUNEWOOD_PLANKS_SLAB, VERTICAL_SOULWOOD_PLANKS_SLAB), new Pair<>(VERTICAL_RUNEWOOD_PLANKS_STAIRS, VERTICAL_SOULWOOD_PLANKS_STAIRS), new Pair<>(RUNEWOOD_PANEL, SOULWOOD_PANEL), - new Pair<>(RUNEWOOD_PANEL_SLAB, SOULWOOD_PANEL_SLAB), - new Pair<>(RUNEWOOD_PANEL_STAIRS, SOULWOOD_PANEL_STAIRS), new Pair<>(RUNEWOOD_TILES, SOULWOOD_TILES), new Pair<>(RUNEWOOD_TILES_SLAB, SOULWOOD_TILES_SLAB), new Pair<>(RUNEWOOD_TILES_STAIRS, SOULWOOD_TILES_STAIRS), diff --git a/src/main/java/com/sammy/malum/data/recipe/MalumVanillaRecipes.java b/src/main/java/com/sammy/malum/data/recipe/MalumVanillaRecipes.java index fa4e660e2..468c77f8f 100644 --- a/src/main/java/com/sammy/malum/data/recipe/MalumVanillaRecipes.java +++ b/src/main/java/com/sammy/malum/data/recipe/MalumVanillaRecipes.java @@ -198,41 +198,6 @@ protected static void buildRecipes(Consumer consumer) { shapeless(RecipeCategory.MISC, ItemRegistry.CURSED_SAPBALL.get()).requires(ItemRegistry.CURSED_SAP.get(), 2).unlockedBy("has_cursed_sap", has(ItemRegistry.CURSED_SAP.get())).save(consumer); shapeless(RecipeCategory.MISC, ItemRegistry.CURSED_SAP_BLOCK.get(), 8).requires(ItemRegistry.CURSED_SAP.get(), 4).unlockedBy("has_cursed_sap", has(ItemRegistry.CURSED_SAP.get())).save(consumer); - //RUNEWOOD BLOCKS - shapelessPlanks(consumer, ItemRegistry.RUNEWOOD_PLANKS.get(), ItemTagRegistry.RUNEWOOD_LOGS); - shapelessWood(consumer, ItemRegistry.RUNEWOOD.get(), ItemRegistry.RUNEWOOD_LOG.get()); - shapelessWood(consumer, ItemRegistry.STRIPPED_RUNEWOOD.get(), ItemRegistry.STRIPPED_RUNEWOOD_LOG.get()); - shapelessButton(consumer, ItemRegistry.RUNEWOOD_PLANKS_BUTTON.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapedDoor(consumer, ItemRegistry.RUNEWOOD_DOOR.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapedFence(consumer, ItemRegistry.RUNEWOOD_PLANKS_FENCE.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapedFenceGate(consumer, ItemRegistry.RUNEWOOD_PLANKS_FENCE_GATE.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapedPressurePlate(consumer, ItemRegistry.RUNEWOOD_PLANKS_PRESSURE_PLATE.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapedSlab(consumer, ItemRegistry.RUNEWOOD_PLANKS_SLAB.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapedStairs(consumer, ItemRegistry.RUNEWOOD_PLANKS_STAIRS.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapedTrapdoor(consumer, ItemRegistry.RUNEWOOD_TRAPDOOR.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shapelessSolidTrapdoor(consumer, ItemRegistry.SOLID_RUNEWOOD_TRAPDOOR.get(), ItemRegistry.RUNEWOOD_TRAPDOOR.get()); - shapelessSolidTrapdoor(consumer, ItemRegistry.RUNEWOOD_TRAPDOOR.get(), ItemRegistry.SOLID_RUNEWOOD_TRAPDOOR.get(), "runewood_trapdoor_from_solid"); - shapedSign(consumer, ItemRegistry.RUNEWOOD_SIGN.get(), ItemRegistry.RUNEWOOD_PLANKS.get()); - shaped(RecipeCategory.MISC, ItemRegistry.RUNEWOOD_BOAT.get()).define('#', ItemRegistry.RUNEWOOD_PLANKS.get()).pattern("# #").pattern("###").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - - shaped(RecipeCategory.MISC, ItemRegistry.VERTICAL_RUNEWOOD_PLANKS.get(), 3).define('#', ItemRegistry.RUNEWOOD_PLANKS.get()).pattern("#").pattern("#").pattern("#").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - shapedSlab(consumer, ItemRegistry.VERTICAL_RUNEWOOD_PLANKS_SLAB.get(), ItemRegistry.VERTICAL_RUNEWOOD_PLANKS.get()); - shapedStairs(consumer, ItemRegistry.VERTICAL_RUNEWOOD_PLANKS_STAIRS.get(), ItemRegistry.VERTICAL_RUNEWOOD_PLANKS.get()); - - shaped(RecipeCategory.MISC, ItemRegistry.RUNEWOOD_PANEL.get(), 4).define('#', ItemRegistry.RUNEWOOD_PLANKS.get()).pattern(" # ").pattern("# #").pattern(" # ").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - shapedSlab(consumer, ItemRegistry.RUNEWOOD_PANEL_SLAB.get(), ItemRegistry.RUNEWOOD_PANEL.get()); - shapedStairs(consumer, ItemRegistry.RUNEWOOD_PANEL_STAIRS.get(), ItemRegistry.RUNEWOOD_PANEL.get()); - - shaped(RecipeCategory.MISC, ItemRegistry.RUNEWOOD_TILES.get(), 4).define('#', ItemRegistry.RUNEWOOD_PANEL.get()).pattern(" # ").pattern("# #").pattern(" # ").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - shapedSlab(consumer, ItemRegistry.RUNEWOOD_TILES_SLAB.get(), ItemRegistry.RUNEWOOD_TILES.get()); - shapedStairs(consumer, ItemRegistry.RUNEWOOD_TILES_STAIRS.get(), ItemRegistry.RUNEWOOD_TILES.get()); - - shaped(RecipeCategory.MISC, ItemRegistry.CUT_RUNEWOOD_PLANKS.get(), 2).define('#', ItemRegistry.RUNEWOOD_PANEL.get()).define('X', ItemRegistry.RUNEWOOD_PLANKS.get()).pattern("#").pattern("X").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - shaped(RecipeCategory.MISC, ItemRegistry.RUNEWOOD_BEAM.get(), 3).define('#', ItemRegistry.VERTICAL_RUNEWOOD_PLANKS.get()).pattern("#").pattern("#").pattern("#").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - - shaped(RecipeCategory.MISC, ItemRegistry.RUNEWOOD_ITEM_STAND.get(), 2).define('X', ItemRegistry.RUNEWOOD_PLANKS.get()).define('Y', ItemRegistry.RUNEWOOD_PLANKS_SLAB.get()).pattern("YYY").pattern("XXX").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - shaped(RecipeCategory.MISC, ItemRegistry.RUNEWOOD_ITEM_PEDESTAL.get()).define('X', ItemRegistry.RUNEWOOD_PLANKS.get()).define('Y', ItemRegistry.RUNEWOOD_PLANKS_SLAB.get()).pattern("YYY").pattern(" X ").pattern("YYY").unlockedBy("has_runewood_planks", has(ItemRegistry.RUNEWOOD_PLANKS.get())).save(consumer); - //SOULWOOD BLOCKS shapelessPlanks(consumer, ItemRegistry.SOULWOOD_PLANKS.get(), ItemTagRegistry.SOULWOOD_LOGS); shapelessWood(consumer, ItemRegistry.SOULWOOD.get(), ItemRegistry.SOULWOOD_LOG.get()); @@ -595,19 +560,19 @@ protected static EnterBlockTrigger.TriggerInstance insideOf(Block pBlock) { return new EnterBlockTrigger.TriggerInstance(ContextAwarePredicate.ANY, pBlock, StatePropertiesPredicate.ANY); } - protected static InventoryChangeTrigger.TriggerInstance has(MinMaxBounds.Ints pCount, ItemLike pItem) { + public static InventoryChangeTrigger.TriggerInstance has(MinMaxBounds.Ints pCount, ItemLike pItem) { return inventoryTrigger(ItemPredicate.Builder.item().of(pItem).withCount(pCount).build()); } - protected static InventoryChangeTrigger.TriggerInstance has(ItemLike pItemLike) { + public static InventoryChangeTrigger.TriggerInstance has(ItemLike pItemLike) { return inventoryTrigger(ItemPredicate.Builder.item().of(pItemLike).build()); } - protected static InventoryChangeTrigger.TriggerInstance has(TagKey pTag) { + public static InventoryChangeTrigger.TriggerInstance has(TagKey pTag) { return inventoryTrigger(ItemPredicate.Builder.item().of(pTag).build()); } - protected static InventoryChangeTrigger.TriggerInstance inventoryTrigger(ItemPredicate... pPredicates) { + public static InventoryChangeTrigger.TriggerInstance inventoryTrigger(ItemPredicate... pPredicates) { return new InventoryChangeTrigger.TriggerInstance(ContextAwarePredicate.ANY, MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, pPredicates); } } diff --git a/src/main/java/com/sammy/malum/data/recipe/crafting/MalumWoodenRecipes.java b/src/main/java/com/sammy/malum/data/recipe/crafting/MalumWoodenRecipes.java new file mode 100644 index 000000000..f9ca65ef3 --- /dev/null +++ b/src/main/java/com/sammy/malum/data/recipe/crafting/MalumWoodenRecipes.java @@ -0,0 +1,288 @@ +package com.sammy.malum.data.recipe.crafting; + +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.level.*; +import net.minecraftforge.common.*; +import net.minecraftforge.common.crafting.conditions.*; + +import java.util.function.*; + +import static com.sammy.malum.MalumMod.*; +import static com.sammy.malum.data.recipe.MalumVanillaRecipes.*; +import static net.minecraft.data.recipes.ShapedRecipeBuilder.*; +import static net.minecraft.data.recipes.ShapelessRecipeBuilder.*; + +public class MalumWoodenRecipes implements IConditionBuilder { + + public static void buildRecipes(Consumer consumer) { + buildRecipes(consumer, new MalumDatagenWoodSet( + "runewood", + ItemRegistry.RUNEWOOD_LOG.get(), ItemRegistry.RUNEWOOD.get(), + ItemRegistry.STRIPPED_RUNEWOOD_LOG.get(), ItemRegistry.STRIPPED_RUNEWOOD.get(), + ItemRegistry.REVEALED_RUNEWOOD_LOG.get(), ItemRegistry.EXPOSED_RUNEWOOD_LOG.get(), + ItemRegistry.RUNEWOOD_PLANKS.get(), ItemRegistry.VERTICAL_RUNEWOOD_PLANKS.get(), ItemRegistry.RUNEWOOD_TILES.get(), + ItemRegistry.RUSTIC_RUNEWOOD_PLANKS.get(), ItemRegistry.VERTICAL_RUSTIC_RUNEWOOD_PLANKS.get(), ItemRegistry.RUSTIC_RUNEWOOD_TILES.get(), + ItemRegistry.RUNEWOOD_PLANKS_SLAB.get(), ItemRegistry.VERTICAL_RUNEWOOD_PLANKS_SLAB.get(), ItemRegistry.RUNEWOOD_TILES_SLAB.get(), + ItemRegistry.RUSTIC_RUNEWOOD_PLANKS_SLAB.get(), ItemRegistry.VERTICAL_RUSTIC_RUNEWOOD_PLANKS_SLAB.get(), ItemRegistry.RUSTIC_RUNEWOOD_TILES_SLAB.get(), + ItemRegistry.RUNEWOOD_PLANKS_STAIRS.get(), ItemRegistry.VERTICAL_RUNEWOOD_PLANKS_STAIRS.get(), ItemRegistry.RUNEWOOD_TILES_STAIRS.get(), + ItemRegistry.RUSTIC_RUNEWOOD_PLANKS_STAIRS.get(), ItemRegistry.VERTICAL_RUSTIC_RUNEWOOD_PLANKS_STAIRS.get(), ItemRegistry.RUSTIC_RUNEWOOD_TILES_STAIRS.get(), + ItemRegistry.RUNEWOOD_PANEL.get(), ItemRegistry.CUT_RUNEWOOD_PLANKS.get(), ItemRegistry.RUNEWOOD_BEAM.get(), + ItemRegistry.RUNEWOOD_BUTTON.get(), ItemRegistry.RUNEWOOD_PRESSURE_PLATE.get(), + ItemRegistry.SOLID_RUNEWOOD_TRAPDOOR.get(), ItemRegistry.RUNEWOOD_TRAPDOOR.get(), + ItemRegistry.RUNEWOOD_FENCE.get(), ItemRegistry.RUNEWOOD_FENCE_GATE.get(), + ItemRegistry.RUNEWOOD_DOOR.get(), + ItemRegistry.RUNEWOOD_SIGN.get(), ItemRegistry.RUNEWOOD_SIGN.get(), + ItemRegistry.RUNEWOOD_ITEM_STAND.get(), ItemRegistry.RUNEWOOD_ITEM_PEDESTAL.get(), + ItemTagRegistry.RUNEWOOD_LOGS, ItemTagRegistry.RUNEWOOD_PLANKS, ItemTagRegistry.RUNEWOOD_SLABS, + ItemRegistry.RUNEWOOD_BOAT.get() + )); + } + protected static void buildRecipes(Consumer consumer, MalumDatagenWoodSet woodSet) { + shapelessPlanks(consumer, woodSet.planks, woodSet.logTag); + + shapedSlab(consumer, woodSet.planksSlab, woodSet.planks); + shapedStairs(consumer, woodSet.planksStairs, woodSet.planks); + shapedSlab(consumer, woodSet.verticalPlanksSlab, woodSet.verticalPlanks); + shapedStairs(consumer, woodSet.verticalPlanksStairs, woodSet.verticalPlanks); + shapedSlab(consumer, woodSet.tilesSlab, woodSet.tiles); + shapedStairs(consumer, woodSet.tilesStairs, woodSet.tiles); + + shapedSlab(consumer, woodSet.rusticPlanksSlab, woodSet.rusticPlanks); + shapedStairs(consumer, woodSet.rusticPlanksStairs, woodSet.rusticPlanks); + shapedSlab(consumer, woodSet.verticalRusticPlanksSlab, woodSet.verticalRusticPlanks); + shapedStairs(consumer, woodSet.verticalRusticPlanksStairs, woodSet.verticalRusticPlanks); + shapedSlab(consumer, woodSet.rusticTilesSlab, woodSet.rusticTiles); + shapedStairs(consumer, woodSet.rusticTilesStairs, woodSet.rusticTiles); + + shapelessWood(consumer, woodSet.wood, woodSet.log); + shapelessWood(consumer, woodSet.strippedWood, woodSet.strippedLog); + shapelessButton(consumer, woodSet.button, woodSet.planksTag); + shapedDoor(consumer, woodSet.door, woodSet.planksTag); + shapedFence(consumer, woodSet.fence, woodSet.planksTag); + shapedFenceGate(consumer, woodSet.fenceGate, woodSet.planksTag); + shapedPressurePlate(consumer, woodSet.pressurePlate, woodSet.planksTag); + + shapedTrapdoor(consumer, woodSet.solidTrapdoor, woodSet.planksTag); + + shapedSign(consumer, woodSet.sign, woodSet.planksTag); + + trapdoorExchange(consumer, woodSet.solidTrapdoor, woodSet.openTrapdoor, woodSet.prefix + "_open_trapdoor_exchange"); + trapdoorExchange(consumer, woodSet.openTrapdoor, woodSet.solidTrapdoor, woodSet.prefix + "_solid_trapdoor_exchange"); + + planksExchange(consumer, woodSet.planks, woodSet.verticalPlanks, woodSet.prefix + "_vertical_planks_exchange"); + planksExchange(consumer, woodSet.verticalPlanks, woodSet.tiles, woodSet.prefix + "_tiles_exchange"); + planksExchange(consumer, woodSet.tiles, woodSet.planks, woodSet.prefix + "_planks_exchange"); + + planksExchange(consumer, woodSet.rusticPlanks, woodSet.verticalRusticPlanks, woodSet.prefix + "_vertical_rustic_planks_exchange"); + planksExchange(consumer, woodSet.verticalRusticPlanks, woodSet.rusticTiles, woodSet.prefix + "_rustic_tiles_exchange"); + planksExchange(consumer, woodSet.rusticTiles, woodSet.rusticPlanks, woodSet.prefix + "_rustic_planks_exchange"); + + shapedBoat(consumer, woodSet.boat, woodSet.planksTag); + + + + + shaped(RecipeCategory.MISC, woodSet.panel, 5) + .define('#', woodSet.planksTag) + .pattern(" # ") + .pattern("###") + .pattern(" # ") + .unlockedBy("has_input", has(woodSet.planksTag)).save(consumer); + shaped(RecipeCategory.MISC, woodSet.cutPlanks, 2) + .define('X', woodSet.panel) + .define('Y', woodSet.planksTag) + .pattern("X").pattern("Y") + .unlockedBy("has_input", has(woodSet.planksTag)) + .save(consumer); + shaped(RecipeCategory.MISC, woodSet.beam, 3) + .define('#', woodSet.planksTag) + .pattern("#") + .pattern("#") + .pattern("#") + .unlockedBy("has_input", has(woodSet.planksTag)) + .save(consumer); + + shaped(RecipeCategory.MISC, woodSet.itemStand, 2) + .define('X', woodSet.planksTag) + .define('Y', woodSet.slabTag) + .pattern("YYY") + .pattern("XXX") + .unlockedBy("has_input", has(woodSet.planksTag)) + .save(consumer); + shaped(RecipeCategory.MISC, ItemRegistry.RUNEWOOD_ITEM_PEDESTAL.get()) + .define('X', woodSet.planksTag) + .define('Y', woodSet.slabTag) + .pattern("YYY") + .pattern(" X ") + .pattern("YYY") + .unlockedBy("has_input", has(woodSet.planksTag)) + .save(consumer); + + } + + + private static void trapdoorExchange(Consumer recipeConsumer, ItemLike input, ItemLike output, String path) { + shapeless(RecipeCategory.MISC, output) + .requires(input) + .unlockedBy("has_input", has(input)) + .save(recipeConsumer, malumPath(path)); + } + + private static void planksExchange(Consumer recipeConsumer, ItemLike input, ItemLike planks, String path) { + shaped(RecipeCategory.MISC, planks, 4) + .define('#', input) + .pattern(" # ") + .pattern("# #") + .pattern(" # ") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer, malumPath(path)); + } + + private static void shapelessPlanks(Consumer recipeConsumer, ItemLike planks, TagKey input) { + shapeless(RecipeCategory.MISC, planks, 4) + .requires(input) + .group("planks") + .unlockedBy("has_logs", has(input)) + .save(recipeConsumer); + } + + private static void shapelessWood(Consumer recipeConsumer, ItemLike stripped, ItemLike input) { + shaped(RecipeCategory.MISC, stripped, 3) + .define('#', input) + .pattern("##") + .pattern("##") + .group("bark") + .unlockedBy("has_log", has(input)) + .save(recipeConsumer); + } + + private static void shapelessButton(Consumer recipeConsumer, ItemLike button, TagKey input) { + shapeless(RecipeCategory.MISC, button) + .requires(input) + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedDoor(Consumer recipeConsumer, ItemLike door, TagKey input) { + shaped(RecipeCategory.MISC, door, 3) + .define('#', input) + .pattern("##") + .pattern("##") + .pattern("##") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedFence(Consumer recipeConsumer, ItemLike fence, TagKey input) { + shaped(RecipeCategory.MISC, fence, 3) + .define('#', Tags.Items.RODS_WOODEN) + .define('W', input) + .pattern("W#W") + .pattern("W#W") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedFenceGate(Consumer recipeConsumer, ItemLike fenceGate, TagKey input) { + shaped(RecipeCategory.MISC, fenceGate) + .define('#', Tags.Items.RODS_WOODEN) + .define('W', input) + .pattern("#W#") + .pattern("#W#") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedPressurePlate(Consumer recipeConsumer, ItemLike pressurePlate, TagKey input) { + shaped(RecipeCategory.MISC, pressurePlate) + .define('#', input) + .pattern("##") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedSlab(Consumer recipeConsumer, ItemLike slab, ItemLike input) { + shaped(RecipeCategory.MISC, slab, 6) + .define('#', input) + .pattern("###") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedStairs(Consumer recipeConsumer, ItemLike stairs, ItemLike input) { + shaped(RecipeCategory.MISC, stairs, 4) + .define('#', input) + .pattern("# ") + .pattern("## ") + .pattern("###") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedTrapdoor(Consumer recipeConsumer, ItemLike trapdoor, TagKey input) { + shaped(RecipeCategory.MISC, trapdoor, 2) + .define('#', input) + .pattern("###") + .pattern("###") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedSign(Consumer recipeConsumer, ItemLike sign, TagKey input) { + shaped(RecipeCategory.MISC, sign, 3) + .group("sign") + .define('#', input) + .define('X', Tags.Items.RODS_WOODEN) + .pattern("###") + .pattern("###") + .pattern(" X ") + .unlockedBy("has_input", has(input)) + .save(recipeConsumer); + } + + private static void shapedBoat(Consumer recipeConsumer, ItemLike boat, TagKey input) { + shaped(RecipeCategory.MISC, boat) + .define('#', input) + .pattern("# #") + .pattern("###") + .unlockedBy("has_input", has(input)).save(recipeConsumer); + } + + public record MalumDatagenWoodSet( + String prefix, + + Item log, Item wood, + Item strippedLog, Item strippedWood, + + Item sapFilledLog, Item strippedSapFilledLog, + + Item planks, Item verticalPlanks, Item tiles, + Item rusticPlanks, Item verticalRusticPlanks, Item rusticTiles, + Item planksSlab, Item verticalPlanksSlab, Item tilesSlab, + Item rusticPlanksSlab, Item verticalRusticPlanksSlab, Item rusticTilesSlab, + Item planksStairs, Item verticalPlanksStairs, Item tilesStairs, + Item rusticPlanksStairs, Item verticalRusticPlanksStairs, Item rusticTilesStairs, + + Item panel, Item cutPlanks, Item beam, + + Item button, Item pressurePlate, + + Item solidTrapdoor, Item openTrapdoor, + + Item fence, Item fenceGate, + + Item door, + + Item sign, Item hangingSign, + + Item itemStand, Item itemPedestal, + + TagKey logTag, TagKey planksTag, TagKey slabTag, + + Item boat + ) { + } +} \ No newline at end of file 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 index 368d2b688..e35eb2a6a 100644 --- a/src/main/java/com/sammy/malum/data/recipe/infusion/MaterialSpiritInfusionRecipes.java +++ b/src/main/java/com/sammy/malum/data/recipe/infusion/MaterialSpiritInfusionRecipes.java @@ -115,5 +115,20 @@ public static void buildRecipes(Consumer consumer) { .addSpirit(EARTHEN_SPIRIT, 16) .addSpirit(ELDRITCH_SPIRIT, 4) .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_ROCK.get(), 4, ItemRegistry.TAINTED_ROCK_TABLET.get(), 1) + .addExtraItem(ItemRegistry.PROCESSED_SOULSTONE.get(), 8) + .addSpirit(AERIAL_SPIRIT, 8) + .addSpirit(AQUEOUS_SPIRIT, 8) + .addSpirit(EARTHEN_SPIRIT, 8) + .addSpirit(INFERNAL_SPIRIT, 8) + .addSpirit(ELDRITCH_SPIRIT, 2) + .build(consumer); + + new SpiritInfusionRecipeBuilder(ItemRegistry.TAINTED_ROCK_TABLET.get(), 4, ItemRegistry.VOID_TABLET.get(), 1) + .addExtraItem(ItemRegistry.NULL_SLATE.get(), 8) + .addExtraItem(ItemRegistry.VOID_SALTS.get(), 8) + .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 deleted file mode 100644 index 3dd60bd18..000000000 --- a/src/main/java/com/sammy/malum/data/recipe/infusion/RuneSpiritInfusionRecipes.java +++ /dev/null @@ -1,77 +0,0 @@ -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/registry/common/SoundRegistry.java b/src/main/java/com/sammy/malum/registry/common/SoundRegistry.java index f9cd5ba3c..8e5cead05 100644 --- a/src/main/java/com/sammy/malum/registry/common/SoundRegistry.java +++ b/src/main/java/com/sammy/malum/registry/common/SoundRegistry.java @@ -68,6 +68,8 @@ public class SoundRegistry { public static final RegistryObject ALTAR_CONSUME = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("spirit_altar_absorbs_item"))); public static final RegistryObject ALTAR_SPEED_UP = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("spirit_altar_speeds_up"))); + public static final RegistryObject RUNIC_WORKBENCH_CRAFT = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runic_workbench_crafts"))); + public static final RegistryObject RITUAL_BEGINS = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("ritual_begins"))); public static final RegistryObject RITUAL_ABSORBS_ITEM = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("ritual_absorbs_item"))); public static final RegistryObject RITUAL_FORMS = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("ritual_forms"))); @@ -147,6 +149,27 @@ public class SoundRegistry { public static final RegistryObject CTHONIC_GOLD_BREAK = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("cthonic_gold_break"))); public static final RegistryObject CTHONIC_GOLD_PLACE = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("cthonic_gold_place"))); + public static final RegistryObject RUNEWOOD_BREAK = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_break"))); + public static final RegistryObject RUNEWOOD_PLACE = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_place"))); + public static final RegistryObject RUNEWOOD_STEP = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_step"))); + public static final RegistryObject RUNEWOOD_HIT = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_hit"))); + + public static final RegistryObject RUNEWOOD_HANGING_SIGN_BREAK = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_hanging_sign_break"))); + public static final RegistryObject RUNEWOOD_HANGING_SIGN_PLACE = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_hanging_sign_place"))); + public static final RegistryObject RUNEWOOD_HANGING_SIGN_STEP = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_hanging_sign_step"))); + public static final RegistryObject RUNEWOOD_HANGING_SIGN_HIT = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_hanging_sign_hit"))); + + public static final RegistryObject RUNEWOOD_BUTTON_CLICK_OFF = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_button_click_off"))); + public static final RegistryObject RUNEWOOD_BUTTON_CLICK_ON = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_button_click_on"))); + public static final RegistryObject RUNEWOOD_PRESSURE_PLATE_CLICK_OFF = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_pressure_plate_click_off"))); + public static final RegistryObject RUNEWOOD_PRESSURE_PLATE_CLICK_ON = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_pressure_plate_click_on"))); + public static final RegistryObject RUNEWOOD_FENCE_GATE_CLOSE = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_fence_gate_close"))); + public static final RegistryObject RUNEWOOD_FENCE_GATE_OPEN = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_fence_gate_open"))); + public static final RegistryObject RUNEWOOD_DOOR_CLOSE = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_door_close"))); + public static final RegistryObject RUNEWOOD_DOOR_OPEN = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_door_open"))); + public static final RegistryObject RUNEWOOD_TRAPDOOR_CLOSE = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_trapdoor_close"))); + public static final RegistryObject RUNEWOOD_TRAPDOOR_OPEN = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("runewood_trapdoor_open"))); + public static final RegistryObject ARCANE_ROCK_BREAK = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("arcane_rock_break"))); public static final RegistryObject ARCANE_ROCK_PLACE = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("arcane_rock_place"))); public static final RegistryObject ARCANE_ROCK_STEP = register(SoundEvent.createVariableRangeEvent(MalumMod.malumPath("arcane_rock_step"))); @@ -211,12 +234,18 @@ public class SoundRegistry { public static final SoundType TWISTED_ROCK = new ForgeSoundType(1.0F, 0.85F, ARCANE_ROCK_BREAK, ARCANE_ROCK_STEP, ARCANE_ROCK_PLACE, ARCANE_ROCK_HIT, () -> SoundEvents.BASALT_FALL); public static final SoundType TWISTED_ROCK_BRICKS = new ForgeSoundType(1.0F, 0.85F, ARCANE_ROCK_BRICKS_BREAK, ARCANE_ROCK_BRICKS_STEP, ARCANE_ROCK_BRICKS_PLACE, ARCANE_ROCK_BRICKS_HIT, () -> SoundEvents.BASALT_FALL); + public static final SoundType RUNEWOOD = new ForgeSoundType(1.0F, 1.1F, RUNEWOOD_BREAK, RUNEWOOD_STEP, RUNEWOOD_PLACE, RUNEWOOD_HIT, () -> SoundEvents.CHERRY_WOOD_FALL); public static final SoundType RUNEWOOD_LEAVES = new ForgeSoundType(1.0F, 1.1F, RUNEWOOD_LEAVES_BREAK, RUNEWOOD_LEAVES_STEP, RUNEWOOD_LEAVES_PLACE, RUNEWOOD_LEAVES_HIT, () -> SoundEvents.AZALEA_LEAVES_FALL); + public static final SoundType RUNEWOOD_HANGING_SIGN = new ForgeSoundType(1.0F, 1.1F, RUNEWOOD_HANGING_SIGN_BREAK, RUNEWOOD_HANGING_SIGN_STEP, RUNEWOOD_HANGING_SIGN_PLACE, RUNEWOOD_HANGING_SIGN_HIT, () -> SoundEvents.CHERRY_WOOD_FALL); + + public static final SoundType SOULWOOD = new BlightedSoundType(1.0F, 0.9F, RUNEWOOD_BREAK, RUNEWOOD_STEP, RUNEWOOD_PLACE, RUNEWOOD_HIT, () -> SoundEvents.CHERRY_WOOD_FALL); + public static final SoundType SOULWOOD_LEAVES = new BlightedSoundType(1.0F, 0.9F, SOULWOOD_LEAVES_BREAK, SOULWOOD_LEAVES_STEP, SOULWOOD_LEAVES_PLACE, SOULWOOD_LEAVES_HIT, () -> SoundEvents.AZALEA_LEAVES_FALL); + public static final SoundType SOULWOOD_HANGING_SIGN = new ForgeSoundType(1.0F, 0.9f, RUNEWOOD_HANGING_SIGN_BREAK, RUNEWOOD_HANGING_SIGN_STEP, RUNEWOOD_HANGING_SIGN_PLACE, RUNEWOOD_HANGING_SIGN_HIT, () -> SoundEvents.CHERRY_WOOD_FALL); + + public static final SoundType BLIGHTED_FOLIAGE = new BlightedSoundType(1.0F, 1.0F, () -> SoundEvents.NETHER_WART_BREAK, () -> SoundEvents.STONE_STEP, () -> SoundEvents.NETHER_WART_PLANTED, () -> SoundEvents.STONE_HIT, () -> SoundEvents.STONE_FALL); public static final SoundType BLIGHTED_EARTH = new BlightedSoundType(1.0F, 1.0F, () -> SoundEvents.NYLIUM_BREAK, () -> SoundEvents.NYLIUM_STEP, () -> SoundEvents.NYLIUM_PLACE, () -> SoundEvents.NYLIUM_HIT, () -> SoundEvents.NYLIUM_FALL); - public static final SoundType SOULWOOD = new BlightedSoundType(1.0F, 1.0F, () -> SoundEvents.WOOD_BREAK, () -> SoundEvents.WOOD_STEP, () -> SoundEvents.WOOD_PLACE, () -> SoundEvents.WOOD_HIT, () -> SoundEvents.WOOD_FALL); - public static final SoundType SOULWOOD_LEAVES = new BlightedSoundType(1.0F, 0.9F, SOULWOOD_LEAVES_BREAK, SOULWOOD_LEAVES_STEP, SOULWOOD_LEAVES_PLACE, SOULWOOD_LEAVES_HIT, () -> SoundEvents.AZALEA_LEAVES_FALL); public static final SoundType CURSED_SAP = new BlightedSoundType(1.0F, 0.9F, () -> SoundEvents.SLIME_BLOCK_BREAK, () -> SoundEvents.SLIME_BLOCK_STEP, () -> SoundEvents.SLIME_BLOCK_PLACE, () -> SoundEvents.SLIME_BLOCK_HIT, () -> SoundEvents.SLIME_BLOCK_FALL); public static final SoundType CALCIFIED_BLIGHT = new ForgeSoundType(1.0F, 1.25F, CALCIFIED_BLIGHT_BREAK, CALCIFIED_BLIGHT_STEP, CALCIFIED_BLIGHT_PLACE, CALCIFIED_BLIGHT_HIT, () -> SoundEvents.BONE_BLOCK_FALL); diff --git a/src/main/java/com/sammy/malum/registry/common/block/BlockEntityRegistry.java b/src/main/java/com/sammy/malum/registry/common/block/BlockEntityRegistry.java index d6de4b135..b237779ac 100644 --- a/src/main/java/com/sammy/malum/registry/common/block/BlockEntityRegistry.java +++ b/src/main/java/com/sammy/malum/registry/common/block/BlockEntityRegistry.java @@ -85,6 +85,7 @@ public static class ClientOnly { public static void registerRenderer(EntityRenderersEvent.RegisterRenderers event) { event.registerBlockEntityRenderer(VOID_CONDUIT.get(), VoidConduitRenderer::new); event.registerBlockEntityRenderer(SPIRIT_ALTAR.get(), SpiritAltarRenderer::new); + event.registerBlockEntityRenderer(RUNIC_WORKBENCH.get(), MalumItemHolderRenderer::new); event.registerBlockEntityRenderer(SPIRIT_CRUCIBLE.get(), SpiritCrucibleRenderer::new); event.registerBlockEntityRenderer(SPIRIT_CATALYZER.get(), SpiritCatalyzerRenderer::new); event.registerBlockEntityRenderer(TOTEM_POLE.get(), TotemPoleRenderer::new); 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 3590d3452..e165fda0c 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 @@ -212,18 +212,27 @@ public class BlockRegistry { public static final RegistryObject RUNEWOOD_PLANKS_SLAB = BLOCKS.register("runewood_planks_slab", () -> new SlabBlock(MalumBlockProperties.RUNEWOOD().addTags(SLABS, WOODEN_SLABS))); public static final RegistryObject RUNEWOOD_PLANKS_STAIRS = BLOCKS.register("runewood_planks_stairs", () -> new StairBlock(() -> RUNEWOOD_PLANKS.get().defaultBlockState(), MalumBlockProperties.RUNEWOOD().addTags(STAIRS, WOODEN_STAIRS))); + public static final RegistryObject RUSTIC_RUNEWOOD_PLANKS = BLOCKS.register("rustic_runewood_planks", () -> new Block(MalumBlockProperties.RUNEWOOD().addTags(PLANKS))); + public static final RegistryObject RUSTIC_RUNEWOOD_PLANKS_SLAB = BLOCKS.register("rustic_runewood_planks_slab", () -> new SlabBlock(MalumBlockProperties.RUNEWOOD().addTags(SLABS, WOODEN_SLABS))); + public static final RegistryObject RUSTIC_RUNEWOOD_PLANKS_STAIRS = BLOCKS.register("rustic_runewood_planks_stairs", () -> new StairBlock(() -> RUSTIC_RUNEWOOD_PLANKS.get().defaultBlockState(), MalumBlockProperties.RUNEWOOD().addTags(STAIRS, WOODEN_STAIRS))); + public static final RegistryObject VERTICAL_RUNEWOOD_PLANKS = BLOCKS.register("vertical_runewood_planks", () -> new Block(MalumBlockProperties.RUNEWOOD().addTags(PLANKS))); public static final RegistryObject VERTICAL_RUNEWOOD_PLANKS_SLAB = BLOCKS.register("vertical_runewood_planks_slab", () -> new SlabBlock(MalumBlockProperties.RUNEWOOD().addTags(SLABS, WOODEN_SLABS))); public static final RegistryObject VERTICAL_RUNEWOOD_PLANKS_STAIRS = BLOCKS.register("vertical_runewood_planks_stairs", () -> new StairBlock(() -> VERTICAL_RUNEWOOD_PLANKS.get().defaultBlockState(), MalumBlockProperties.RUNEWOOD().addTags(STAIRS, WOODEN_STAIRS))); - public static final RegistryObject RUNEWOOD_PANEL = BLOCKS.register("runewood_panel", () -> new Block(MalumBlockProperties.RUNEWOOD())); - public static final RegistryObject RUNEWOOD_PANEL_SLAB = BLOCKS.register("runewood_panel_slab", () -> new SlabBlock(MalumBlockProperties.RUNEWOOD().addTags(SLABS, WOODEN_SLABS))); - public static final RegistryObject RUNEWOOD_PANEL_STAIRS = BLOCKS.register("runewood_panel_stairs", () -> new StairBlock(() -> RUNEWOOD_PANEL.get().defaultBlockState(), MalumBlockProperties.RUNEWOOD().addTags(STAIRS, WOODEN_STAIRS))); + public static final RegistryObject VERTICAL_RUSTIC_RUNEWOOD_PLANKS = BLOCKS.register("vertical_rustic_runewood_planks", () -> new Block(MalumBlockProperties.RUNEWOOD().addTags(PLANKS))); + public static final RegistryObject VERTICAL_RUSTIC_RUNEWOOD_PLANKS_SLAB = BLOCKS.register("vertical_rustic_runewood_planks_slab", () -> new SlabBlock(MalumBlockProperties.RUNEWOOD().addTags(SLABS, WOODEN_SLABS))); + public static final RegistryObject VERTICAL_RUSTIC_RUNEWOOD_PLANKS_STAIRS = BLOCKS.register("vertical_rustic_runewood_planks_stairs", () -> new StairBlock(() -> VERTICAL_RUSTIC_RUNEWOOD_PLANKS.get().defaultBlockState(), MalumBlockProperties.RUNEWOOD().addTags(STAIRS, WOODEN_STAIRS))); public static final RegistryObject RUNEWOOD_TILES = BLOCKS.register("runewood_tiles", () -> new Block(MalumBlockProperties.RUNEWOOD())); public static final RegistryObject RUNEWOOD_TILES_SLAB = BLOCKS.register("runewood_tiles_slab", () -> new SlabBlock(MalumBlockProperties.RUNEWOOD().addTags(SLABS, WOODEN_SLABS))); public static final RegistryObject RUNEWOOD_TILES_STAIRS = BLOCKS.register("runewood_tiles_stairs", () -> new StairBlock(() -> RUNEWOOD_TILES.get().defaultBlockState(), MalumBlockProperties.RUNEWOOD().addTags(STAIRS, WOODEN_STAIRS))); + public static final RegistryObject RUSTIC_RUNEWOOD_TILES = BLOCKS.register("rustic_runewood_tiles", () -> new Block(MalumBlockProperties.RUNEWOOD())); + public static final RegistryObject RUSTIC_RUNEWOOD_TILES_SLAB = BLOCKS.register("rustic_runewood_tiles_slab", () -> new SlabBlock(MalumBlockProperties.RUNEWOOD().addTags(SLABS, WOODEN_SLABS))); + public static final RegistryObject RUSTIC_RUNEWOOD_TILES_STAIRS = BLOCKS.register("rustic_runewood_tiles_stairs", () -> new StairBlock(() -> RUSTIC_RUNEWOOD_TILES.get().defaultBlockState(), MalumBlockProperties.RUNEWOOD().addTags(STAIRS, WOODEN_STAIRS))); + + public static final RegistryObject RUNEWOOD_PANEL = BLOCKS.register("runewood_panel", () -> new Block(MalumBlockProperties.RUNEWOOD())); public static final RegistryObject CUT_RUNEWOOD_PLANKS = BLOCKS.register("cut_runewood_planks", () -> new Block(MalumBlockProperties.RUNEWOOD().addTags(PLANKS))); public static final RegistryObject RUNEWOOD_BEAM = BLOCKS.register("runewood_beam", () -> new RotatedPillarBlock(MalumBlockProperties.RUNEWOOD())); diff --git a/src/main/java/com/sammy/malum/registry/common/block/MalumBlockProperties.java b/src/main/java/com/sammy/malum/registry/common/block/MalumBlockProperties.java index bfac33928..d066b6ff5 100644 --- a/src/main/java/com/sammy/malum/registry/common/block/MalumBlockProperties.java +++ b/src/main/java/com/sammy/malum/registry/common/block/MalumBlockProperties.java @@ -36,7 +36,7 @@ public static LodestoneBlockProperties TWISTED_ROCK_BRICKS() { public static LodestoneBlockProperties RUNEWOOD() { return new LodestoneBlockProperties() .needsAxe() - .sound(SoundType.WOOD) + .sound(SoundRegistry.RUNEWOOD) .strength(1.75F, 4.0F); } diff --git a/src/main/java/com/sammy/malum/registry/common/block/MalumBlockSetTypes.java b/src/main/java/com/sammy/malum/registry/common/block/MalumBlockSetTypes.java index 08f3f956b..6b531c046 100644 --- a/src/main/java/com/sammy/malum/registry/common/block/MalumBlockSetTypes.java +++ b/src/main/java/com/sammy/malum/registry/common/block/MalumBlockSetTypes.java @@ -1,12 +1,22 @@ package com.sammy.malum.registry.common.block; +import com.sammy.malum.registry.common.*; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.properties.BlockSetType; public class MalumBlockSetTypes { - public static final BlockSetType RUNEWOOD = BlockSetType.register(new BlockSetType("runewood")); - public static final BlockSetType SOULWOOD = BlockSetType.register(new BlockSetType("soulwood")); - public static final BlockSetType TAINTED_ROCK = BlockSetType.register(new BlockSetType("tainted_rock", true, SoundType.STONE, SoundEvents.IRON_DOOR_CLOSE, SoundEvents.IRON_DOOR_OPEN, SoundEvents.IRON_TRAPDOOR_CLOSE, SoundEvents.IRON_TRAPDOOR_OPEN, SoundEvents.STONE_PRESSURE_PLATE_CLICK_OFF, SoundEvents.STONE_PRESSURE_PLATE_CLICK_ON, SoundEvents.STONE_BUTTON_CLICK_OFF, SoundEvents.STONE_BUTTON_CLICK_ON)); - public static final BlockSetType TWISTED_ROCK = BlockSetType.register(new BlockSetType("twisted_rock", true, SoundType.STONE, SoundEvents.IRON_DOOR_CLOSE, SoundEvents.IRON_DOOR_OPEN, SoundEvents.IRON_TRAPDOOR_CLOSE, SoundEvents.IRON_TRAPDOOR_OPEN, SoundEvents.STONE_PRESSURE_PLATE_CLICK_OFF, SoundEvents.STONE_PRESSURE_PLATE_CLICK_ON, SoundEvents.STONE_BUTTON_CLICK_OFF, SoundEvents.STONE_BUTTON_CLICK_ON)); + public static final BlockSetType RUNEWOOD = BlockSetType.register( + new BlockSetType("runewood", true, + SoundRegistry.RUNEWOOD, + SoundRegistry.RUNEWOOD_DOOR_CLOSE.get(), SoundRegistry.RUNEWOOD_DOOR_OPEN.get(), + SoundRegistry.RUNEWOOD_TRAPDOOR_CLOSE.get(), SoundRegistry.RUNEWOOD_TRAPDOOR_OPEN.get(), + SoundRegistry.RUNEWOOD_PRESSURE_PLATE_CLICK_OFF.get(), SoundRegistry.RUNEWOOD_PRESSURE_PLATE_CLICK_ON.get(), + SoundRegistry.RUNEWOOD_BUTTON_CLICK_OFF.get(), SoundRegistry.RUNEWOOD_BUTTON_CLICK_ON.get())); + public static final BlockSetType SOULWOOD = BlockSetType.register( + new BlockSetType("soulwood")); + public static final BlockSetType TAINTED_ROCK = BlockSetType.register( + new BlockSetType("tainted_rock", true, SoundType.STONE, SoundEvents.IRON_DOOR_CLOSE, SoundEvents.IRON_DOOR_OPEN, SoundEvents.IRON_TRAPDOOR_CLOSE, SoundEvents.IRON_TRAPDOOR_OPEN, SoundEvents.STONE_PRESSURE_PLATE_CLICK_OFF, SoundEvents.STONE_PRESSURE_PLATE_CLICK_ON, SoundEvents.STONE_BUTTON_CLICK_OFF, SoundEvents.STONE_BUTTON_CLICK_ON)); + public static final BlockSetType TWISTED_ROCK = BlockSetType.register( + new BlockSetType("twisted_rock", true, SoundType.STONE, SoundEvents.IRON_DOOR_CLOSE, SoundEvents.IRON_DOOR_OPEN, SoundEvents.IRON_TRAPDOOR_CLOSE, SoundEvents.IRON_TRAPDOOR_OPEN, SoundEvents.STONE_PRESSURE_PLATE_CLICK_OFF, SoundEvents.STONE_PRESSURE_PLATE_CLICK_ON, SoundEvents.STONE_BUTTON_CLICK_OFF, SoundEvents.STONE_BUTTON_CLICK_ON)); } diff --git a/src/main/java/com/sammy/malum/registry/common/block/WoodTypeRegistry.java b/src/main/java/com/sammy/malum/registry/common/block/WoodTypeRegistry.java index 71cc36495..ffbcb9843 100644 --- a/src/main/java/com/sammy/malum/registry/common/block/WoodTypeRegistry.java +++ b/src/main/java/com/sammy/malum/registry/common/block/WoodTypeRegistry.java @@ -1,20 +1,19 @@ package com.sammy.malum.registry.common.block; import com.sammy.malum.*; +import com.sammy.malum.registry.common.*; import net.minecraft.client.renderer.*; -import net.minecraft.world.level.block.state.properties.WoodType; +import net.minecraft.world.level.block.state.properties.*; import net.minecraftforge.api.distmarker.*; import net.minecraftforge.eventbus.api.*; import net.minecraftforge.fml.common.*; import net.minecraftforge.fml.event.lifecycle.*; -import java.awt.*; -import java.util.ArrayList; -import java.util.List; - public class WoodTypeRegistry { - public static final WoodType RUNEWOOD = WoodType.register(new WoodType("malum:runewood", MalumBlockSetTypes.RUNEWOOD)); + public static final WoodType RUNEWOOD = WoodType.register(new WoodType("malum:runewood", MalumBlockSetTypes.RUNEWOOD, + SoundRegistry.RUNEWOOD, SoundRegistry.RUNEWOOD_HANGING_SIGN, + SoundRegistry.RUNEWOOD_FENCE_GATE_CLOSE.get(), SoundRegistry.RUNEWOOD_FENCE_GATE_OPEN.get())); public static final WoodType SOULWOOD = WoodType.register(new WoodType("malum:soulwood", MalumBlockSetTypes.SOULWOOD)); @Mod.EventBusSubscriber(modid= MalumMod.MALUM, bus= Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) 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 96b1abc69..4524f02e2 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 @@ -276,18 +276,26 @@ public static RegistryObject register(String name, Item.Prop public static final RegistryObject RUNEWOOD_PLANKS = register("runewood_planks", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PLANKS.get(), p)); public static final RegistryObject VERTICAL_RUNEWOOD_PLANKS = register("vertical_runewood_planks", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.VERTICAL_RUNEWOOD_PLANKS.get(), p)); - public static final RegistryObject RUNEWOOD_PANEL = register("runewood_panel", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PANEL.get(), p)); public static final RegistryObject RUNEWOOD_TILES = register("runewood_tiles", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_TILES.get(), p)); + public static final RegistryObject RUSTIC_RUNEWOOD_PLANKS = register("rustic_runewood_planks", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUSTIC_RUNEWOOD_PLANKS.get(), p)); + public static final RegistryObject VERTICAL_RUSTIC_RUNEWOOD_PLANKS = register("vertical_rustic_runewood_planks", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.VERTICAL_RUSTIC_RUNEWOOD_PLANKS.get(), p)); + public static final RegistryObject RUSTIC_RUNEWOOD_TILES = register("rustic_runewood_tiles", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUSTIC_RUNEWOOD_TILES.get(), p)); + + public static final RegistryObject RUNEWOOD_PANEL = register("runewood_panel", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PANEL.get(), p)); public static final RegistryObject RUNEWOOD_PLANKS_SLAB = register("runewood_planks_slab", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PLANKS_SLAB.get(), p)); public static final RegistryObject VERTICAL_RUNEWOOD_PLANKS_SLAB = register("vertical_runewood_planks_slab", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.VERTICAL_RUNEWOOD_PLANKS_SLAB.get(), p)); - public static final RegistryObject RUNEWOOD_PANEL_SLAB = register("runewood_panel_slab", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PANEL_SLAB.get(), p)); public static final RegistryObject RUNEWOOD_TILES_SLAB = register("runewood_tiles_slab", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_TILES_SLAB.get(), p)); + public static final RegistryObject RUSTIC_RUNEWOOD_PLANKS_SLAB = register("rustic_runewood_planks_slab", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUSTIC_RUNEWOOD_PLANKS_SLAB.get(), p)); + public static final RegistryObject VERTICAL_RUSTIC_RUNEWOOD_PLANKS_SLAB = register("vertical_rustic_runewood_planks_slab", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.VERTICAL_RUSTIC_RUNEWOOD_PLANKS_SLAB.get(), p)); + public static final RegistryObject RUSTIC_RUNEWOOD_TILES_SLAB = register("rustic_runewood_tiles_slab", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUSTIC_RUNEWOOD_TILES_SLAB.get(), p)); public static final RegistryObject RUNEWOOD_PLANKS_STAIRS = register("runewood_planks_stairs", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PLANKS_STAIRS.get(), p)); public static final RegistryObject VERTICAL_RUNEWOOD_PLANKS_STAIRS = register("vertical_runewood_planks_stairs", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.VERTICAL_RUNEWOOD_PLANKS_STAIRS.get(), p)); - public static final RegistryObject RUNEWOOD_PANEL_STAIRS = register("runewood_panel_stairs", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PANEL_STAIRS.get(), p)); public static final RegistryObject RUNEWOOD_TILES_STAIRS = register("runewood_tiles_stairs", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_TILES_STAIRS.get(), p)); + public static final RegistryObject RUSTIC_RUNEWOOD_PLANKS_STAIRS = register("rustic_runewood_planks_stairs", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUSTIC_RUNEWOOD_PLANKS_STAIRS.get(), p)); + public static final RegistryObject VERTICAL_RUSTIC_RUNEWOOD_PLANKS_STAIRS = register("vertical_rustic_runewood_planks_stairs", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.VERTICAL_RUSTIC_RUNEWOOD_PLANKS_STAIRS.get(), p)); + public static final RegistryObject RUSTIC_RUNEWOOD_TILES_STAIRS = register("rustic_runewood_tiles_stairs", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUSTIC_RUNEWOOD_TILES_STAIRS.get(), p)); public static final RegistryObject CUT_RUNEWOOD_PLANKS = register("cut_runewood_planks", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.CUT_RUNEWOOD_PLANKS.get(), p)); public static final RegistryObject RUNEWOOD_BEAM = register("runewood_beam", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_BEAM.get(), p)); @@ -296,11 +304,11 @@ public static RegistryObject register(String name, Item.Prop public static final RegistryObject RUNEWOOD_TRAPDOOR = register("runewood_trapdoor", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_TRAPDOOR.get(), p)); public static final RegistryObject SOLID_RUNEWOOD_TRAPDOOR = register("solid_runewood_trapdoor", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.SOLID_RUNEWOOD_TRAPDOOR.get(), p)); - public static final RegistryObject RUNEWOOD_PLANKS_BUTTON = register("runewood_planks_button", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_BUTTON.get(), p)); - public static final RegistryObject RUNEWOOD_PLANKS_PRESSURE_PLATE = register("runewood_planks_pressure_plate", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PRESSURE_PLATE.get(), p)); + public static final RegistryObject RUNEWOOD_BUTTON = register("runewood_planks_button", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_BUTTON.get(), p)); + public static final RegistryObject RUNEWOOD_PRESSURE_PLATE = register("runewood_planks_pressure_plate", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_PRESSURE_PLATE.get(), p)); - public static final RegistryObject RUNEWOOD_PLANKS_FENCE = register("runewood_planks_fence", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_FENCE.get(), p)); - public static final RegistryObject RUNEWOOD_PLANKS_FENCE_GATE = register("runewood_planks_fence_gate", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_FENCE_GATE.get(), p)); + public static final RegistryObject RUNEWOOD_FENCE = register("runewood_planks_fence", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_FENCE.get(), p)); + public static final RegistryObject RUNEWOOD_FENCE_GATE = register("runewood_planks_fence_gate", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_FENCE_GATE.get(), p)); public static final RegistryObject RUNEWOOD_ITEM_STAND = register("runewood_item_stand", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_ITEM_STAND.get(), p)); public static final RegistryObject RUNEWOOD_ITEM_PEDESTAL = register("runewood_item_pedestal", NATURE_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_ITEM_PEDESTAL.get(), p)); @@ -452,8 +460,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 TAINTED_ROCK_TABLET = register("tainted_rock_tablet", DEFAULT_PROPERTIES(), Item::new); + public static final RegistryObject VOID_TABLET = register("void_tablet", 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); diff --git a/src/main/java/com/sammy/malum/registry/common/item/ItemTagRegistry.java b/src/main/java/com/sammy/malum/registry/common/item/ItemTagRegistry.java index 25d8f9cc6..dec436ce8 100644 --- a/src/main/java/com/sammy/malum/registry/common/item/ItemTagRegistry.java +++ b/src/main/java/com/sammy/malum/registry/common/item/ItemTagRegistry.java @@ -11,8 +11,17 @@ public class ItemTagRegistry { public static final TagKey SOUL_HUNTER_WEAPON = malumTag("soul_hunter_weapon"); public static final TagKey SCYTHE = malumTag("scythe"); public static final TagKey STAFF = malumTag("staff"); + public static final TagKey RUNEWOOD_LOGS = malumTag("runewood_logs"); + public static final TagKey RUNEWOOD_PLANKS = malumTag("runewood_planks"); + public static final TagKey RUNEWOOD_SLABS = malumTag("runewood_slabs"); + public static final TagKey RUNEWOOD_STAIRS = malumTag("runewood_stairs"); + public static final TagKey SOULWOOD_LOGS = malumTag("soulwood_logs"); + public static final TagKey SOULWOOD_PLANKS = malumTag("soulwood_planks"); + public static final TagKey SOULWOOD_SLABS = malumTag("soulwood_slabs"); + public static final TagKey SOULWOOD_STAIRS = malumTag("soulwood_stairs"); + public static final TagKey SAPBALLS = malumTag("sapballs"); public static final TagKey GROSS_FOODS = malumTag("gross_foods"); public static final TagKey PROSPECTORS_TREASURE = malumTag("prospectors_treasure"); diff --git a/src/main/java/com/sammy/malum/visual_effects/ScreenParticleEffects.java b/src/main/java/com/sammy/malum/visual_effects/ScreenParticleEffects.java index 4cc460168..752435136 100644 --- a/src/main/java/com/sammy/malum/visual_effects/ScreenParticleEffects.java +++ b/src/main/java/com/sammy/malum/visual_effects/ScreenParticleEffects.java @@ -30,9 +30,9 @@ public static void spawnRuneParticles(ScreenParticleHolder target, MalumSpiritTy var rand = Minecraft.getInstance().level.getRandom(); ScreenParticleBuilder.create(LodestoneScreenParticleRegistry.SPARKLE, target) .setTransparencyData(GenericParticleData.create(0.03f, 0f).setEasing(Easing.SINE_IN_OUT).build()) - .setScaleData(GenericParticleData.create(0.6f + rand.nextFloat() * 0.1f, 0).setEasing(Easing.SINE_IN_OUT, Easing.BOUNCE_IN_OUT).build()) + .setScaleData(GenericParticleData.create(0.5f + rand.nextFloat() * 0.1f, 0).setEasing(Easing.SINE_IN_OUT, Easing.BOUNCE_IN_OUT).build()) .setColorData(spiritType.createMainColorData().build()) - .setLifetime(10 + rand.nextInt(10)) + .setLifetime(RandomHelper.randomBetween(rand, 20, 30)) .setRandomOffset(0.05f) .setRandomMotion(0.05f, 0.05f) .spawnOnStack(1, -2); @@ -40,15 +40,15 @@ public static void spawnRuneParticles(ScreenParticleHolder target, MalumSpiritTy ScreenParticleBuilder.create(LodestoneScreenParticleRegistry.WISP, target) .setTransparencyData(GenericParticleData.create(0.015f, 0f).setEasing(Easing.SINE_IN_OUT).build()) .setSpinData(SpinParticleData.create(nextFloat(rand, 0.2f, 0.4f)).setEasing(Easing.EXPO_OUT).build()) - .setScaleData(GenericParticleData.create(0.4f + rand.nextFloat() * 0.4f, 0).setEasing(Easing.EXPO_OUT).build()) + .setScaleData(GenericParticleData.create(0.3f + rand.nextFloat() * 0.3f, 0).setEasing(Easing.EXPO_OUT).build()) .setColorData(spiritType.createMainColorData().build()) - .setLifetime(20 + rand.nextInt(8)) + .setLifetime(RandomHelper.randomBetween(rand, 20, 30)) .setRandomOffset(0.1f) .setRandomMotion(0.4f, 0.4f) .spawnOnStack(0, 0) - .setLifetime(10 + rand.nextInt(2)) + .setLifetime(RandomHelper.randomBetween(rand, 8, 12)) .setSpinData(SpinParticleData.create(nextFloat(rand, 0.05f, 0.1f)).build()) - .setScaleData(GenericParticleData.create(0.8f + rand.nextFloat() * 0.4f, 0f).build()) + .setScaleData(GenericParticleData.create(0.6f + rand.nextFloat() * 0.3f, 0f).build()) .setRandomMotion(0.01f, 0.01f) .spawnOnStack(1, -2); } diff --git a/src/main/resources/assets/malum/sounds.json b/src/main/resources/assets/malum/sounds.json index 76d34c952..0c5f7a0ed 100644 --- a/src/main/resources/assets/malum/sounds.json +++ b/src/main/resources/assets/malum/sounds.json @@ -62,6 +62,8 @@ "spirit_altar_absorbs_item": { "sounds":["malum:altar/altar_consume1", "malum:altar/altar_consume2"], "subtitle": "malum.subtitle.spirit_altar_absorbs_item" }, "alteration_plinth_alters": { "sounds":["malum:plinth/alter1","malum:plinth/alter2","malum:plinth/alter3"], "subtitle": "malum.subtitle.alteration_plinth_alters" }, + "runic_workbench_crafts": { "sounds":["malum:runic_workbench/craft1","malum:runic_workbench/craft2"], "subtitle": "malum.subtitle.runic_workbench_crafts" }, + "ritual_begins": { "sounds":["malum:ritual/ritual_start"], "subtitle": "malum.subtitle.ritual_begins" }, "ritual_absorbs_item": { "sounds":["malum:ritual/ritual_absorb_item1", "malum:ritual/ritual_absorb_item2", "malum:ritual/ritual_absorb_item3"], "subtitle": "malum.subtitle.ritual_absorbs_item" }, "ritual_forms": { "sounds":["malum:ritual/ritual_stage2"], "subtitle": "malum.subtitle.ritual_forms" }, @@ -94,6 +96,28 @@ "the_deep_beckons": { "sounds":["malum:suspicious_sound"], "subtitle": "malum.subtitle.the_deep_beckons" }, "the_heavens_sing": { "sounds":["malum:heavenly_organs"], "subtitle": "malum.subtitle.the_heavens_sing" }, + "runewood_break": { "sounds":["malum:blocks/runewood/break1","malum:blocks/runewood/break2","malum:blocks/runewood/break3","malum:blocks/runewood/break4","malum:blocks/runewood/break5","malum:blocks/runewood/break6"], "subtitle": "malum.subtitle.runewood_break" }, + "runewood_step": { "sounds":["malum:blocks/runewood/hit1","malum:blocks/runewood/hit2","malum:blocks/runewood/hit3","malum:blocks/runewood/hit4","malum:blocks/runewood/hit5","malum:blocks/runewood/hit6"], "subtitle": "malum.subtitle.runewood_step" }, + "runewood_place": { "sounds":["malum:blocks/runewood/break1","malum:blocks/runewood/break2","malum:blocks/runewood/break3","malum:blocks/runewood/break4","malum:blocks/runewood/break5","malum:blocks/runewood/break6"], "subtitle": "malum.subtitle.runewood_place" }, + "runewood_hit": { "sounds":["malum:blocks/runewood/hit1","malum:blocks/runewood/hit2","malum:blocks/runewood/hit3","malum:blocks/runewood/hit4","malum:blocks/runewood/hit5","malum:blocks/runewood/hit6"], "subtitle": "malum.subtitle.runewood_hit" }, + + "runewood_hanging_sign_break": { "sounds":["malum:blocks/runewood/hanging_sign/break1","malum:blocks/runewood/hanging_sign/break2","malum:blocks/runewood/hanging_sign/break3","malum:blocks/runewood/hanging_sign/break4"], "subtitle": "malum.subtitle.runewood_hanging_sign_break" }, + "runewood_hanging_sign_step": { "sounds":["malum:blocks/runewood/hanging_sign/hit1","malum:blocks/runewood/hanging_sign/hit2","malum:blocks/runewood/hanging_sign/hit3","malum:blocks/runewood/hanging_sign/hit4"], "subtitle": "malum.subtitle.runewood_hanging_sign_step" }, + "runewood_hanging_sign_place": { "sounds":["malum:blocks/runewood/hanging_sign/break1","malum:blocks/runewood/hanging_sign/break2","malum:blocks/runewood/hanging_sign/break3","malum:blocks/runewood/hanging_sign/break4"], "subtitle": "malum.subtitle.runewood_hanging_sign_place" }, + "runewood_hanging_sign_hit": { "sounds":["malum:blocks/runewood/hanging_sign/hit1","malum:blocks/runewood/hanging_sign/hit2","malum:blocks/runewood/hanging_sign/hit3","malum:blocks/runewood/hanging_sign/hit4"], "subtitle": "malum.subtitle.runewood_hanging_sign_hit" }, + + "runewood_button_click_off": { "sounds":["malum:blocks/runewood/button/runewood_button"], "subtitle": "malum.subtitle.runewood_button_click_off" }, + "runewood_button_click_on": { "sounds":["malum:blocks/runewood/button/runewood_button"], "subtitle": "malum.subtitle.runewood_button_click_on" }, + "runewood_pressure_plate_click_off": { "sounds":["malum:blocks/runewood/button/runewood_button"], "subtitle": "malum.subtitle.runewood_pressure_plate_click_off" }, + "runewood_pressure_plate_click_on": { "sounds":["malum:blocks/runewood/button/runewood_button"], "subtitle": "malum.subtitle.runewood_pressure_plate_click_on" }, + "runewood_fence_gate_close": { "sounds":["malum:blocks/runewood/fence_gate/toggle1", "malum:blocks/runewood/fence_gate/toggle2", "malum:blocks/runewood/fence_gate/toggle3"], "subtitle": "malum.subtitle.runewood_fence_gate_close" }, + "runewood_fence_gate_open": { "sounds":["malum:blocks/runewood/fence_gate/toggle1", "malum:blocks/runewood/fence_gate/toggle2", "malum:blocks/runewood/fence_gate/toggle3"], "subtitle": "malum.subtitle.runewood_fence_gate_open" }, + "runewood_door_close": { "sounds":["malum:blocks/runewood/door/toggle1", "malum:blocks/runewood/door/toggle2", "malum:blocks/runewood/door/toggle3"], "subtitle": "malum.subtitle.runewood_door_close" }, + "runewood_door_open": { "sounds":["malum:blocks/runewood/door/toggle1", "malum:blocks/runewood/door/toggle2", "malum:blocks/runewood/door/toggle3"], "subtitle": "malum.subtitle.runewood_door_open" }, + "runewood_trapdoor_close": { "sounds":["malum:blocks/runewood/trapdoor/toggle1", "malum:blocks/runewood/trapdoor/toggle2", "malum:blocks/runewood/trapdoor/toggle3"], "subtitle": "malum.subtitle.runewood_trapdoor_close" }, + "runewood_trapdoor_open": { "sounds":["malum:blocks/runewood/trapdoor/toggle1", "malum:blocks/runewood/trapdoor/toggle2", "malum:blocks/runewood/trapdoor/toggle3"], "subtitle": "malum.subtitle.runewood_trapdoor_open" }, + + "arcane_rock_break": { "sounds":["malum:blocks/arcane_rock/break1","malum:blocks/arcane_rock/break2","malum:blocks/arcane_rock/break3","malum:blocks/arcane_rock/break4","malum:blocks/arcane_rock/break5","malum:blocks/arcane_rock/break6"], "subtitle": "malum.subtitle.arcane_rock_break" }, "arcane_rock_step": { "sounds":["malum:blocks/arcane_rock/hit1","malum:blocks/arcane_rock/hit2","malum:blocks/arcane_rock/hit3","malum:blocks/arcane_rock/hit4","malum:blocks/arcane_rock/hit5","malum:blocks/arcane_rock/hit6", "block/basalt/step1","block/basalt/step2","block/basalt/step3","block/basalt/step4","block/basalt/step5","block/basalt/step6"], "subtitle": "malum.subtitle.arcane_rock_step" }, "arcane_rock_place": { "sounds":["malum:blocks/arcane_rock/break1","malum:blocks/arcane_rock/break2","malum:blocks/arcane_rock/break3","malum:blocks/arcane_rock/break4","malum:blocks/arcane_rock/break5","malum:blocks/arcane_rock/break6"], "subtitle": "malum.subtitle.arcane_rock_place" }, diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/break1.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/break1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..28740e6285979efd081f6724999d34e477d83e18 GIT binary patch literal 16808 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 z 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

QXzYEl(j`972IRgKgwQ+5V21M~9j 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/break4.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/break4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..275f141e5de07bfb75cba18de478cb1451ac069b GIT binary patch literal 12827 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/break6.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/break6.ogg new file mode 100644 index 0000000000000000000000000000000000000000..136de26e980c480818af93c8ce5f980ebc0f47fc GIT binary patch literal 10670 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%0DZ==q$ujXB4jom;GrW@~7W3;PCk`?s z!2VuI*^?C|jl-EWMnng&lGJ>n<)|nUG%e`omMEKovNgbEBEwtU%;|({1wS^O13o~k4&j3?nf<} z`jp7<30jZy`~QycuYSwK*iV-hmDjkz9WlNK@t2!mV;h3-+S*sV+zgQ z8(ordv(*jiVcWuM`A_DDCIt-?W+Qso{cQbUQeD=z)SQZMOC(qHJIg%|2K{Q9Iimz| zlcIXfl`MyX$DXJROy1lS%FKF-ja+Rwc$H4TGzI7QTC~PlPT@;o^ZD6jn1Bj>o15h_ z6i?g!NeD1&G_=dBLAE8(=Aa)TNK7X?fob2Xpx{f7BG}kElw}$AKD%b!u%x9JhIa^} zy*YECy=>dav8PI3o&MO+*&a3NoGO4Jcm}YXQFM=2#J& zUW0VNU#>2Q^6L>Soj@Wjcs2C!&*=%;_Os5`2>}z@m-%e6CsXh1rQf%GZ(v@p%$Rz0 z=%R@eu^8vrWT~MR%{H;)8+ATkTkZ*M6y_6a-q0i{=E0?qv5sxcWEY+w2v{WY)^&cw zrkvcVGLJoXpSdpX8h3|SlbaCpHn6$9T)2FNJj`5FHD8y zP1+hc(gMA1oxa^u(8be-)!-I7MFsGVlX6~dwz1vVXWF1Qo|9g6+2O!V?xyD*idSMo z9O^X}9-X8TF17xg&`aKS@Ab{z(o2fDr_JHa<$Mma3oQIUrJ z+Y_|3G!!q%LfY=YJ8+g&oMkeGNAy*cR$D13by!;i7<9)V@+mOwd}{oHaym}IL{2WL zux64%(NulY6<$wZ=cS$vcsoXkk=r4>A5v;W{6Jc2)yOQcc|xPL(WHeS)j{)Q!1zVY z6HJ6jV@s;T1h=kbF$|fEx8)8t@|H^qpK9&6HDfeo6yC9w*JWH=jlEy_i5XIvQb9+! zn%S(=f6-iUwi>W@e`Dn-k32e!1pRa{iUMEH{hq&u*=)?OnmgaL3tiuIF4*kiPgpya$@ z4@|(Q!46Sd%D^OHRGlSm8+nBBI`N`34T02itSGif*#cL3F!He_3T(xg!-xvCSd7=V zV`VY1UTpC7*zfrlKR_i5XU!niza~PgBh0AKf7OJV!PYhh*gVxOq8YCS;Qg5%371aM zv8$t~x6>Qn3M<^~@Y6pZfZ>(XLy4a4fkQ#*O7^9Ee{K2n&^0zDF$l{vze0l}h5Jiy p{X8-a7tWZlK&Oe2sl}~3M3N9eP%y#)towg00Ydz*Wc)u#{{icuviSf2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/button/runewood_button.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/button/runewood_button.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a7d4bc9ee5a9005a2b9af45878cca6f3f1aaa3db GIT binary patch literal 7374 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/door/toggle1.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/door/toggle1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4690e3a41adef5ec908a63bc897780298aa19c17 GIT binary patch literal 18712 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 A{r~^~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/door/toggle2.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/door/toggle2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..27293f942b4f85549006b088db93aece85ed1511 GIT binary patch literal 11945 zcmbt(2~?9;+VGo%B|v}#5CR5B!WyR)tO}@|03n1etZG0| z!YU{riVBQ&*n^4|M1AOA74cMpoc>SVD5VjbG|v?2!ac$nN%7FD#izvLlj+c3AV}^ZY+6K>?hP0{`56 zUH#~8OlNlnHZVPdn{Z4v5aboaaC4SH9&Wx&H)ll16>4;>Dp%|xjU4hg>YZCJ&kfJFzT;T_YMqpiKINk<V!G}qM4n1}=wXXB!L+g88>;|KyJ=guz#yMsuw+Dr9*>d&Wt_(@iGNykEf1|x^FD}+Y8UgNSuBaAP&0tL7-mSB}C@r24IuhzK4 zu7vY9<1gR*^8Pie`_~Y=Q$Piglbr@=NT_Z7ziM3g+1UTRQsXBq04m5!X$nS~V(i8= zmZn-M?s9kn0A)<8*VrJkluAG$*inq|@(KGakHSsDBcIOzZ$aC1J)=Fn2+2Fs)}& z?LyO>=hA%UKvu{&@;{fHU3~!w!PUo|P2|CC%h|hZ;ep$tC2&{7$1i~sgpyTk?NsgC z2M%hr&l}pc&d&@L2AwzSZx^56mEe(wx+|b83HNHo8fvC$(;j*uYFj=+SsLdRJKGO%$P#-2xy*XLqSixfCoxK>=1L3){5RRd{)&}>jDa`$e} z^JnUswWR0nQjP_U9J#B-pPF4&{;0*xl|>f!%&$+9?_0^5D>TH zEiS#Wb|J0H!857l#*+xkmTIOqq2;4RfkMS{%Uu+7ca20KPQ6EH1Fhme1-EVd4N8Cd zKk7HHF##GTV4Wsg2iiIZ2L*>7|1$hs#&@^!Bj+=Im^=N$TR}Ol!IYP<#USL{9I?n9+_6 z+!r}x7dsOiJ9|9#+nce6Zk-Ol`G>)LG@BphGXBGIWF~@l5UqGt%Kh7N8q7t@_97#% zO5^ZK)2y?H3v1hJE^M?nD*rdji7#ps7qtnCUI<0zg=Z5AYdiWIkKF6p8u(x9pO)j1 zY7AD;a@NBi--3(K zU8UZAOcEg9a$?%FXp_aSThdBgJ{#|2(#(h8pxcuJ0suh43-4v@^@h^u`Of%(QIQjh zXPoU+_QLDJ#M?{*z)LI3;F~IX#f#TYU|@o%fq&XG3C^v)Wzsf_aAp=q5Wh2DsndWZ(Y-ZQUF=^6gFBcc9rD z`vv;c#??|DPzoCpX~8BBY=b|c?X+O$!1T!0jRD3?Mt_%;>sjY%5N-bx1<&Srp{)a4 zn^2pe;TD*m==~pPaDIFC$F()BTdA?(0_&51qLq>10xK8*OfhE87B;@raGQ&*?NXVW zWdzuZ=4*_L_0}h9U{S zaJY7g5)c#|Ukh?h7Wn{W4EXQJRCO4pL8b&$Pk=X)Vs#Ll{+14!Qq@Y>*%yV4=3rRp zumE@bX4k-Gf`ZSsBwR2nYK*V#=;)ZDeC!6*3EWsVwWDLe29zJDT3}zKPVHKjZ06=b zmx`00mQP@C@4Nir}A$WS1@j0LU$2mN>k? z*trwN>(WGeOW4{HdkAW)upL1y>(@N*t`XtSC>}J+zsg7?bTo(rX|Q5 zL`6&s6L6Us09+b`0N6qIiU&&Wxyq{HN~UqMI|+WD!=cFD49vo4vU}g z2C$$~krZ%T1Z@J%*P_7*El3RjATEMgQZ!B1oWeB$%9X)j*HjILEUy-tkn{pu{fL>5 zjCtr{-qLc3G>)yVWF`f~l(?9iv^;4{!hxuFr`sG&hDH=KJA%9uJIBy1LG9HbO7d<` z^9IqFYUWSX5yd@E%v;jQV7Aryz~KcK%)25~0BU?P0PMfY&fr%y_6&mJf&y7!w5NH? zvN9yD1syXA(l{nY4LmxSvnk@h4PMmcA!YkLbb;5WiNLe+ryQi>G$ids zUCg8dT#{BoTB`$-5~xhU_qy#fLn~RxXhec813e;6D{)Y$=PTo0VAIuT7VSZB2SrI5 z(%Y*&Q_Ycp1LK#)7>FuKs;eU`Z3Ikj^Ookv%nA}83~V5^MWj}KIn%rSMo0-s!VdyF zZ*odX!6~5b?1?#IWpYNQMc`SJ2sgB2u7F%%9c*twCs~c7S578ckB7y8G+jKDNN8oL z0K}|hfaiTRMR2D1`tbDPE+6{AOjgDRF{m#xMe=Gv%ajYtm*s=i-XLjd4_y>-AZjkt zx?Kp2dH&2zahjSe`pM?CJpQx-L_u+Ytok^>uV#LNz!lwSr?%NlqYDHJiy4pdeqmp z%L(eCMP^X*1y|$%CaC?g^MKRrN&eS zeSy~pq5u?G>O+SX(1t+$s`ey+`sM3QaF)rVo?o54D<}eC2kmN(1DUhcBk*;ExAZePd=zPPUnMfF4IC;?I`lE=XJ1-UvS`fycX8-7LtCGpE)&`h^lx zpjrB89CxB6XmXW4Wn}l5V=^z<^ZlZHv@9k7WB?cqxMDXRWywMFD-*3$T}oUE`(ww= zpBt||0l!og7C2GOoD45ANoNq;39TBm@#m zs5H8}r#HjbpBV(k2(Tc50{~FD2aB(*aS*AMsh1-wP?Z{0n$=oh7DL^=?E*+D0EK?M zKFfS66#DU243e>1WVd43sF^M8sX=mbVq(hGyN_S2@{(H;s$A1_6UP(_$ zOMQpTp9zC*RrUC&2iTXITs@%s9V6+A|5*a4i6n8jw>I~1z#%E7quywLaq0Yi_GfBG zMwbW2H>Wy63PSdJs981MRQr--B^VngzIxSZAttsHop(A3+WYsa$N)X< zVq6UVCQ#>nGLUxkE!A(~xWy|UrTzyn=dAB6EH5X8v|{&lpJ5UzsW_p0PP0%9H?cAG zEi4MaFVoFUwKO8=)R9Eg$%5s+`uc>V`K75R$=sNy=LPH=PwfYL?U8|BB2G$2QC(74 zS4`A)U(_i_n`>WbLarn}Cj@@})%~f3j*tuFjFnr6SEr3EJ$nQ1wriTUP>0?$|6(;F z=@r6JZSsv)cvDjah$c=|!fUl|joF-dlK9k-eK_K!j~(XHiv2Y)M^8<)=SIN({g*r0 z9rjwT!6fNc2C-idN_K~pguM2`&;9eH``!ofdoCKMKKT3L-s!s73=Q4(*5Db*Xc2S! z7pGxOjV`g6XG*Jun-`50qE$(8JgD|bOj>+T#`g<@3lEi27N(4@Z(v2UBw3#lm72b0jLpoBo({cpfg$GYu(Lecz?1 zI6Atn9tk|%phPQu3sY{GNf^|)rl>X8M7|bRdL!seQEhCZiN}^hYU7gL*%bguW9)h84%jQz_(^&m)J`g8gJHiL4 zXq9T*l@ed0Rk4l(xqmGpOjXjg9Zrm@$zpV|(vk-Q_|yFu7Y{s3!YeT6Ky%^IWgRfm zODbc8V*Os<#iL{bm|M*#UvXTxH1;pLM}Z34YJIV>#8>jq)5untbPg zizxZFQt8Wyjh*To$boA%Ry_&7&C@j3H{B#N)ACK0IbT@+HBFDW-qh4?t9MxS53boB|Lv|!nv$-g@l#)wLMhuGk5yVRS zeN;*fGG2e2&K=z+*)cPX@IYeAxC)|%(xcd-UZkpf({<_+DrOxxYu`Kw`zNriQJ|H{ zGXxd_1D-GgTw;S`AKYu4oKUU__n#1&e~umL|A(=D+8NJEf|VB*5=Zs)95Pm-QQ-u+ zgF}_LFn>-X9@-jKCoB{OG~5xfmNHIfvR3cK3L6~nd7@c{Q5ah%5m6B~o&Qbl46)Y1 z)K!7})*C+OBuGwS$r((Z`dQAFE6P*qHmaH2>04X0Qx{7SSK%rsNBvXAE5^wih$h#S zDS5p|`<+WJRFq#Gpd#$xCZi+vMRMevJXZPKc5aOl#z73D(e&!w^i6!%hc&)k&(MYo zAD%e0CDe?`C2v|0`!H_gZH~rTZMg%q3ex5Erj|J1nO$75BN!5wkMbSaPP7b#h4sY} zA!3=+VAD3nM&S4)&br!f+Bjd~=^Rf(nkIFGj#ZG@J?TixWCyro>S6vVNr%X zOyec4Fw7fzS5SOc!xyWCtoA9E%U_}*v6Y_>DZ`b{J@<#)K$5SiVbsa^8RCNEe(dlu zR&&$->3o}99AacJ!K!ipv?Ah7gPQTi2iJXhPM2U_1OF<2(1{B)&SH9arm!5pVff{< z?y(64u_>q=Djb#L&!83;_6T`GIDL$+|7|$N{%FkMFwFe7_Q{KVE290WtAiXg=x$+( zYT!@`=Hi+rrWm$=f3dJ|Yiw&~Yo^Wbq77V%GLWu>VHf=5fPZepSA6SQ`}qyVqksJy zT)2k!!f}i9_r+eb%<$~V9f@^d4J*gPArgC6bEHI`mQt&Mf>?X!XuwD5@!sZIRCA<# zdUO&hWiq9pRrRJ|_91C+aRO;9J%4rQ=U)4`9`U?5G3J=Cqy7%(5?fC+M@rLww;-{7 z_bb5FJ2N{SX&gCm_!IC$<26Pls~zUh+;>#Yk8sez$;J<^yi9@E7Au(-37ItQmQnKn z!6kEZ)V+rf6$)B4_qDQnZlw)Z+$o)n3bIxk4S9v(+(;SrAK}bLV9J(wm-ne1L7-lv zJ#9(=JV1X#foi>xB6aT0!2Kr-UB7Q0IBP{VQo7S)4B&)?E#<|Eid&nDj%4*kJ6kEA zO?(Wst46xdlxkWF;dsbg9`FICwf0X9biKU!j2Z$<+@-Kf_P^tRx&DRBb4T-0aH)r&&3oHWS zGA6RggxHg)39a)R>uL#mc}%23yd zhn<4`_x0{g-fO@IQ2HlVRhg#J=R=dZ;l!$FLU@s|7_MY(fkbNS==j2;;kjJrX|yFkd|02AM&0}ezM%OX@ z>8L)@>Y2PyQ@&ESgPLhKUkP-DFoWBoyt(mliuHWVP%pXzf4j1HrFNySvRKOEC%qA8 zal2M3RJs^~oWdfsnrd-JL*v@w;vRrJNv!ee3Qg6gt}QPv4;hCJ%f(IHu4FBHaqBOj zy?1~nUv<}vY~t`1x?V^J{8)ghp%B==iC&`$XKshS(%15V)4?8c_=Jmm0z!7oj{ zu0KC$g+#8FJyKix{JcWC;v0DD!Tk<@gHJts#X{8=PnHx~X`eUN-~r1}oLeE7eKGhH zlssyWkf*JQ(%d5yswioCv&@nHj6$R-^w3^2OlUx{^LuR)!bQwizbz`Z>|V*9BrQ2s zvL^HH61mZ)p}ahtoPji@0--ycahohn>Jx7-%2U^d&RB+~vTC>np>U@OqJk?*ka=ze z-De=zSE>0`+q45A#@rxnGR4_*c#>gXS==vL8B1yRRaE~5y)2B_Qnr;Mej)aYbS2wD zo?6b5cjj&Kb@)2qPK+j}v9eg92Hb7Qfy(K<^{xua8u#XP8mFG3t=DU(3N)ZUx)|ct zBkA39c_d-a4?1{SwjVI1&W5@o=(O87`eBmB4YX4qk4!T;mEh?t1`BJ7 z+yfsYpcIOQwys!HQ(5|3HzwZzSD|7BIL@&i+n1eDM5HbEjnFf7Zp$l8jzaVQ1(d&wtt~_|#LW_!J-PDkmm6DYh3~Yqo7lD-#T1 z=?{>ci%5wfAFaq~$m7ie@882X%I?MuCBJ0k=}kua?Sic z79Tsl+Hrn97zsU)3>A_y=?3{0(bs-yeal4efj*+ef{)l`$N$Q7wCibWV4Ex08{y!t{^6eOO zV?{-2k_K9wY%)2x-M8qtw#WX!Dxg44;|@DTvHRHR>&FqIVm~Q$ZRWN8n`~~Tk4>r% zIeC)5<(6u)ntR~X=*Hu}!AlBXQlb>q^$Ou0QDvbvru|S`X$DJ5T*^R5<+|9J&ITyu zdyC~mN>w%e28=%JMUl$z*0SC(t8E54n?Ephk@&&=hxP*3w!jyJl!(V3M7pWmX`Ot;ye}3ddDWj=Wy`YMs84e`hH(G}zrcB1F(Zi|cJ4?`3);LMC1?xA_!n

5V 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 J5aj=J`kzl(S?d4* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/fence_gate/toggle1.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/fence_gate/toggle1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9298af9f81e6bd4ef074106b820466b76167e654 GIT binary patch literal 13719 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 fFh3H%+M=f=F&{!Qff696%mzitwGCj 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/fence_gate/toggle3.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/fence_gate/toggle3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..caa59e420df52ffae30b923040ee3c29eac594e8 GIT binary patch literal 17117 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 B2(ADC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/break1.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/break1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1f85f792a0720d5a99ae0525ea73321e6237946d GIT binary patch literal 17641 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 XZ4u;v82}{!q>>6PI0iuduhRbq17YFp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/step1.ogg b/src/main/resources/assets/malum/sounds/blocks/runewood/hanging_sign/step1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c3509ce47ade603dd531a6357baacb879ae8efac GIT binary patch literal 19601 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