From 7c1b9d0113f11191bf448d01d42ef93aef90b37d Mon Sep 17 00:00:00 2001 From: SammySemicolon <69329424+SammySemicolon@users.noreply.github.com> Date: Thu, 28 Dec 2023 02:29:52 +0100 Subject: [PATCH] Need boyfriend --- .../malum/blockstates/ritual_plinth.json | 7 + .../resources/assets/malum/lang/en_us.json | 13 +- .../malum/models/item/ritual_plinth.json | 3 + .../loot_tables/blocks/ritual_plinth.json | 21 ++ .../minecraft/tags/blocks/mineable/axe.json | 1 + .../ritual_plinth/RitualPlinthBlock.java | 84 ++++++++ .../RitualPlinthBlockEntity.java | 83 ++++++++ .../malum/data/block/MalumBlockStates.java | 2 +- .../common/block/BlockEntityRegistry.java | 2 + .../registry/common/block/BlockRegistry.java | 2 + .../registry/common/item/ItemRegistry.java | 1 + .../malum/models/block/ritual_plinth.json | 193 ++++++++++++++++++ .../arcane_rock/tainted/tainted_rock.png | Bin 396 -> 372 bytes .../tainted/tainted_rock_item_pedestal.png | Bin 411 -> 414 bytes .../tainted/tainted_rock_item_stand.png | Bin 291 -> 291 bytes .../twisted/chiseled_twisted_rock.png | Bin 471 -> 426 bytes .../arcane_rock/twisted/cut_twisted_rock.png | Bin 456 -> 429 bytes .../twisted/polished_twisted_rock.png | Bin 450 -> 393 bytes .../twisted/runic_twisted_rock_bricks.png | Bin 456 -> 435 bytes .../twisted/runic_twisted_rock_tiles.png | Bin 528 -> 444 bytes .../twisted/small_twisted_rock_bricks.png | Bin 423 -> 450 bytes .../twisted/smooth_twisted_rock.png | Bin 351 -> 333 bytes .../arcane_rock/twisted/twisted_rock.png | Bin 390 -> 363 bytes .../twisted/twisted_rock_bricks.png | Bin 381 -> 405 bytes .../twisted/twisted_rock_column.png | Bin 447 -> 321 bytes .../twisted/twisted_rock_column_cap.png | Bin 510 -> 489 bytes .../twisted/twisted_rock_column_cap_top.png | Bin 456 -> 333 bytes .../twisted/twisted_rock_column_top.png | Bin 465 -> 315 bytes .../twisted/twisted_rock_item_pedestal.png | Bin 393 -> 393 bytes .../twisted/twisted_rock_item_stand.png | Bin 285 -> 285 bytes .../twisted/twisted_rock_tiles.png | Bin 438 -> 357 bytes .../malum/textures/block/ritual_plinth.png | Bin 0 -> 1251 bytes 32 files changed, 409 insertions(+), 3 deletions(-) create mode 100644 src/generated/resources/assets/malum/blockstates/ritual_plinth.json create mode 100644 src/generated/resources/assets/malum/models/item/ritual_plinth.json create mode 100644 src/generated/resources/data/malum/loot_tables/blocks/ritual_plinth.json create mode 100644 src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlock.java create mode 100644 src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlockEntity.java create mode 100644 src/main/resources/assets/malum/models/block/ritual_plinth.json create mode 100644 src/main/resources/assets/malum/textures/block/ritual_plinth.png diff --git a/src/generated/resources/assets/malum/blockstates/ritual_plinth.json b/src/generated/resources/assets/malum/blockstates/ritual_plinth.json new file mode 100644 index 000000000..706f436ad --- /dev/null +++ b/src/generated/resources/assets/malum/blockstates/ritual_plinth.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "malum:block/ritual_plinth" + } + } +} \ 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 41c099a4e..75ee5070a 100644 --- a/src/generated/resources/assets/malum/lang/en_us.json +++ b/src/generated/resources/assets/malum/lang/en_us.json @@ -64,6 +64,7 @@ "block.malum.primordial_soup": "The Weeping Well", "block.malum.revealed_runewood_log": "Revealed Runewood Log", "block.malum.revealed_soulwood_log": "Revealed Soulwood Log", + "block.malum.ritual_plinth": "Ritual Plinth", "block.malum.runewood": "Runewood", "block.malum.runewood_beam": "Runewood Beam", "block.malum.runewood_door": "Runewood Door", @@ -627,8 +628,8 @@ "malum.gui.book.entry.page.text.corrupt_arcane_rite": "Now already scarred, the power bleeds from the soulwood totem, corrupting and warping the nearby area. Any nearby block placed atop that blighted substance will be altered.", "malum.gui.book.entry.page.text.corrupt_arcane_rite.hover": "Transmutes nearby blocks placed atop blighted gunk.", "malum.gui.book.entry.page.text.corrupt_earthen_rite": "A simple aura rite, nearby friendly beings will find their attacks deal more damage.", - "malum.gui.book.entry.page.text.corrupt_greater_aerial_rite": "An advanced rite, while active it will slowly ease the stress of time on the mind, offsetting the effects of insomnia for those around it.", - "malum.gui.book.entry.page.text.corrupt_greater_aerial_rite.hover": "Passively reduces the insomnia value of nearby players.\n - Assuming phantoms are just barely able to spawn, it will take a single totem two and two fifths of a minute to fully cleanse insomnia.", + "malum.gui.book.entry.page.text.corrupt_greater_aerial_rite": "An advanced rite, while active it will slowly ease the stress of time on the mind, offsetting the effects of insomnia for those around it over time.", + "malum.gui.book.entry.page.text.corrupt_greater_aerial_rite.hover": "Passively reduces the insomnia value of nearby players.\n - Assuming phantoms are just starting to appear, it will take a single totem executing the rite two and two fifths of a minute to fully cleanse insomnia.\n - Naturally, the totem will take longer to fully cleanse insomnia if the player has already been suffering from it for some time.", "malum.gui.book.entry.page.text.corrupt_greater_aqueous_rite": "Zombies near this rite will find themselves choking on their own breath, drowning even on land.", "malum.gui.book.entry.page.text.corrupt_greater_earthen_rite": "The earth coalesces, and like lava meeting water, cobblestone is created before the totem base.", "malum.gui.book.entry.page.text.corrupt_greater_infernal_rite": "Instead of generating heat, this rite compresses it, causing furnaces to operate more quickly.", @@ -827,6 +828,10 @@ "malum.gui.rite.corrupted_aqueous_rite": "Rite of the Seas", "malum.gui.rite.corrupted_arcane_rite": "Unchained Rite", "malum.gui.rite.corrupted_earthen_rite": "Rite of the Challenger", + "malum.gui.rite.corrupted_greater_aerial_rite": "Rite of Unwinding", + "malum.gui.rite.corrupted_greater_aqueous_rite": "Rite of ", + "malum.gui.rite.corrupted_greater_earthen_rite": "Rite of ", + "malum.gui.rite.corrupted_greater_infernal_rite": "Rite of ", "malum.gui.rite.corrupted_greater_sacred_rite": "Rite of Lust", "malum.gui.rite.corrupted_greater_wicked_rite": "Rite of Culling", "malum.gui.rite.corrupted_infernal_rite": "Rite of the Extinguisher", @@ -835,6 +840,10 @@ "malum.gui.rite.coverage": "Coverage: ", "malum.gui.rite.earthen_rite": "Rite of Warding", "malum.gui.rite.effect": "Effect: ", + "malum.gui.rite.greater_aerial_rite": "Rite of Gravity", + "malum.gui.rite.greater_aqueous_rite": "Rite of ", + "malum.gui.rite.greater_earthen_rite": "Rite of ", + "malum.gui.rite.greater_infernal_rite": "Rite of ", "malum.gui.rite.greater_sacred_rite": "Rite of Growth", "malum.gui.rite.greater_wicked_rite": "Rite of Exorcism", "malum.gui.rite.infernal_rite": "Rite of Haste", diff --git a/src/generated/resources/assets/malum/models/item/ritual_plinth.json b/src/generated/resources/assets/malum/models/item/ritual_plinth.json new file mode 100644 index 000000000..d83ff1c98 --- /dev/null +++ b/src/generated/resources/assets/malum/models/item/ritual_plinth.json @@ -0,0 +1,3 @@ +{ + "parent": "malum:block/ritual_plinth" +} \ No newline at end of file diff --git a/src/generated/resources/data/malum/loot_tables/blocks/ritual_plinth.json b/src/generated/resources/data/malum/loot_tables/blocks/ritual_plinth.json new file mode 100644 index 000000000..bbc398469 --- /dev/null +++ b/src/generated/resources/data/malum/loot_tables/blocks/ritual_plinth.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "malum:ritual_plinth" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "malum:blocks/ritual_plinth" +} \ 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 c099616ca..7f0271f4b 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -56,6 +56,7 @@ "malum:ether_torch", "malum:runewood_sign", "malum:spirit_altar", + "malum:ritual_plinth", "malum:runewood_planks_button", "malum:cut_runewood_planks", "malum:revealed_soulwood_log", diff --git a/src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlock.java b/src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlock.java new file mode 100644 index 000000000..84f968b36 --- /dev/null +++ b/src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlock.java @@ -0,0 +1,84 @@ +package com.sammy.malum.common.block.curiosities.ritual_plinth; + +import com.sammy.malum.common.block.curiosities.spirit_altar.*; +import net.minecraft.core.*; +import net.minecraft.world.level.*; +import net.minecraft.world.level.block.entity.*; +import net.minecraft.world.level.block.state.*; +import net.minecraft.world.phys.shapes.*; +import net.minecraftforge.common.capabilities.*; +import net.minecraftforge.items.*; +import net.minecraftforge.items.wrapper.*; +import team.lodestar.lodestone.systems.block.*; + +public class RitualPlinthBlock extends WaterLoggedEntityBlock { +// public static final VoxelShape SHAPE = makeShape(); +// public static final VoxelShape RENDER_SHAPE = makeRenderShape(); + + public RitualPlinthBlock(Properties properties) { + super(properties); + } + +// @Override +// public VoxelShape getInteractionShape(BlockState p_60547_, BlockGetter p_60548_, BlockPos p_60549_) { +// return SHAPE; +// } +// +// @Override +// public VoxelShape getCollisionShape(BlockState p_60572_, BlockGetter p_60573_, BlockPos p_60574_, CollisionContext p_60575_) { +// return SHAPE; +// } +// +// @Override +// public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) { +// return RENDER_SHAPE; +// } + + @Override + public int getAnalogOutputSignal(BlockState pState, Level pLevel, BlockPos pPos) { + BlockEntity be = pLevel.getBlockEntity(pPos); + if (be instanceof RitualPlinthBlockEntity altar) { + return ItemHandlerHelper.calcRedstoneFromInventory(altar.getCapability(ForgeCapabilities.ITEM_HANDLER).orElse(new EmptyHandler())); + } + return 0; + } + + @Override + public boolean hasAnalogOutputSignal(BlockState pState) { + return true; + } + +// public static VoxelShape makeShape() { +// VoxelShape shape = Shapes.empty(); +// shape = Shapes.join(shape, Shapes.box(0.0625, 0, 0.0625, 0.9375, 0.25, 0.9375), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.1875, 0.25, 0.1875, 0.8125, 0.625, 0.8125), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0, 0.625, 0, 1, 1, 1), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0, 1, 0, 0.1875, 1.0625, 0.1875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0, 1, 0.8125, 0.1875, 1.0625, 1), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.8125, 1, 0, 1, 1.0625, 0.1875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.8125, 1, 0.8125, 1, 1.0625, 1), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.8125, 0, 0.3125, 1, 0.375, 0.6875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.3125, 0, 0, 0.6875, 0.375, 0.1875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.3125, 0, 0.8125, 0.6875, 0.375, 1), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0, 0, 0.3125, 0.1875, 0.375, 0.6875), BooleanOp.OR); +// +// return shape; +// } +// +// public static VoxelShape makeRenderShape() { +// VoxelShape shape = Shapes.empty(); +// shape = Shapes.join(shape, Shapes.box(0.0625, 0, 0.0625, 0.9375, 0.25, 0.9375), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.1875, 0.25, 0.1875, 0.8125, 0.625, 0.8125), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0, 0.625, 0, 1, 1, 1), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(-0.125, 0.5625, -0.125, 0.1875, 1.0625, 0.1875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(-0.125, 0.5625, 0.8125, 0.1875, 1.0625, 1.125), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.8125, 0.5625, -0.125, 1.125, 1.0625, 0.1875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.8125, 0.5625, 0.8125, 1.125, 1.0625, 1.125), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.8125, 0, 0.3125, 1, 0.375, 0.6875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.3125, 0, 0, 0.6875, 0.375, 0.1875), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0.3125, 0, 0.8125, 0.6875, 0.375, 1), BooleanOp.OR); +// shape = Shapes.join(shape, Shapes.box(0, 0, 0.3125, 0.1875, 0.375, 0.6875), BooleanOp.OR); +// +// return shape; +// } +} diff --git a/src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlockEntity.java b/src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlockEntity.java new file mode 100644 index 000000000..d2d65bc56 --- /dev/null +++ b/src/main/java/com/sammy/malum/common/block/curiosities/ritual_plinth/RitualPlinthBlockEntity.java @@ -0,0 +1,83 @@ +package com.sammy.malum.common.block.curiosities.ritual_plinth; + +import com.sammy.malum.common.block.*; +import com.sammy.malum.common.block.curiosities.spirit_altar.*; +import com.sammy.malum.common.block.storage.*; +import com.sammy.malum.common.item.spirit.*; +import com.sammy.malum.common.recipe.*; +import com.sammy.malum.core.systems.recipe.*; +import com.sammy.malum.registry.common.*; +import com.sammy.malum.registry.common.block.*; +import com.sammy.malum.visual_effects.*; +import com.sammy.malum.visual_effects.networked.altar.*; +import com.sammy.malum.visual_effects.networked.data.*; +import net.minecraft.core.*; +import net.minecraft.nbt.*; +import net.minecraft.sounds.*; +import net.minecraft.util.*; +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 net.minecraft.world.phys.*; +import net.minecraftforge.common.capabilities.*; +import net.minecraftforge.common.util.*; +import net.minecraftforge.items.*; +import net.minecraftforge.items.wrapper.*; +import org.jetbrains.annotations.*; +import team.lodestar.lodestone.helpers.*; +import team.lodestar.lodestone.systems.blockentity.*; +import team.lodestar.lodestone.systems.easing.*; +import team.lodestar.lodestone.systems.recipe.*; + +import javax.annotation.Nullable; +import javax.annotation.*; +import java.util.*; + +public class RitualPlinthBlockEntity extends LodestoneBlockEntity { + public RitualPlinthBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + public RitualPlinthBlockEntity(BlockPos pos, BlockState state) { + super(BlockEntityRegistry.RITUAL_PLINTH.get(), pos, state); + } + + @Override + protected void saveAdditional(CompoundTag compound) { + } + + @Override + public void load(CompoundTag compound) { + super.load(compound); + } + + @Override + public void onBreak(@Nullable Player player) { + } + + @Override + public InteractionResult onUse(Player player, InteractionHand hand) { + if (level.isClientSide) { + return InteractionResult.CONSUME; + } + return super.onUse(player, hand); + } + + @Override + public void tick() { + super.tick(); + } + +// public Vec3 getItemPos() { +// final BlockPos blockPos = getBlockPos(); +// final Vec3 offset = getCentralItemOffset(); +// return new Vec3(blockPos.getX() + offset.x, blockPos.getY() + offset.y, blockPos.getZ() + offset.z); +// } +// +// public Vec3 getCentralItemOffset() { +// return ALTAR_ITEM_OFFSET; +// } +} 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 d194be153..57e65988f 100644 --- a/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java +++ b/src/main/java/com/sammy/malum/data/block/MalumBlockStates.java @@ -181,7 +181,7 @@ protected void registerStatesAndModels() { BlockStateSmithTypes.CUSTOM_MODEL.act(data, MalumItemModelSmithTypes.GENERATED_OVERLAY_ITEM, this::simpleBlock, this::etherModel, IRIDESCENT_ETHER); BlockStateSmithTypes.CUSTOM_MODEL.act(data, ItemModelSmithTypes.BLOCK_MODEL_ITEM, this::simpleBlock, this::predefinedModel, - SPIRIT_ALTAR, SPIRIT_JAR); + SPIRIT_ALTAR, SPIRIT_JAR, RITUAL_PLINTH); BlockStateSmithTypes.CUSTOM_MODEL.act(data, ItemModelSmithTypes.BLOCK_MODEL_ITEM, this::horizontalBlock, this::predefinedModel, WEAVERS_WORKBENCH); 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 c6c6c1ee0..867955bdf 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 @@ -3,6 +3,7 @@ import com.sammy.malum.*; import com.sammy.malum.client.renderer.block.*; import com.sammy.malum.common.block.curiosities.obelisk.*; +import com.sammy.malum.common.block.curiosities.ritual_plinth.*; import com.sammy.malum.common.block.curiosities.spirit_altar.*; import com.sammy.malum.common.block.curiosities.spirit_crucible.*; import com.sammy.malum.common.block.curiosities.spirit_crucible.catalyzer.*; @@ -33,6 +34,7 @@ public class BlockEntityRegistry { public static final RegistryObject> VOID_CONDUIT = BLOCK_ENTITY_TYPES.register("void_conduit", () -> BlockEntityType.Builder.of(VoidConduitBlockEntity::new, BlockRegistry.VOID_CONDUIT.get()).build(null)); public static final RegistryObject> SPIRIT_ALTAR = BLOCK_ENTITY_TYPES.register("spirit_altar", () -> BlockEntityType.Builder.of(SpiritAltarBlockEntity::new, BlockRegistry.SPIRIT_ALTAR.get()).build(null)); public static final RegistryObject> SPIRIT_JAR = BLOCK_ENTITY_TYPES.register("spirit_jar", () -> BlockEntityType.Builder.of(SpiritJarBlockEntity::new, BlockRegistry.SPIRIT_JAR.get()).build(null)); + public static final RegistryObject> RITUAL_PLINTH = BLOCK_ENTITY_TYPES.register("ritual_plinth", () -> BlockEntityType.Builder.of(RitualPlinthBlockEntity::new, BlockRegistry.RITUAL_PLINTH.get()).build(null)); public static final RegistryObject> WEAVERS_WORKBENCH = BLOCK_ENTITY_TYPES.register("weavers_workbench", () -> BlockEntityType.Builder.of(WeaversWorkbenchBlockEntity::new, BlockRegistry.WEAVERS_WORKBENCH.get()).build(null)); 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 24a36adcd..6a0e5a2b1 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 @@ -3,6 +3,7 @@ import com.sammy.malum.*; import com.sammy.malum.common.block.blight.*; import com.sammy.malum.common.block.curiosities.obelisk.*; +import com.sammy.malum.common.block.curiosities.ritual_plinth.*; import com.sammy.malum.common.block.curiosities.spirit_altar.*; import com.sammy.malum.common.block.curiosities.spirit_crucible.*; import com.sammy.malum.common.block.curiosities.spirit_crucible.catalyzer.*; @@ -53,6 +54,7 @@ public class BlockRegistry { //region useful blocks public static final RegistryObject SPIRIT_ALTAR = BLOCKS.register("spirit_altar", () -> new SpiritAltarBlock<>(MalumBlockProperties.RUNEWOOD().setCutoutRenderType().noOcclusion()).setBlockEntity(BlockEntityRegistry.SPIRIT_ALTAR)); public static final RegistryObject SPIRIT_JAR = BLOCKS.register("spirit_jar", () -> new SpiritJarBlock<>(MalumBlockProperties.SPIRIT_JAR().setCutoutRenderType().noOcclusion()).setBlockEntity(BlockEntityRegistry.SPIRIT_JAR)); + public static final RegistryObject RITUAL_PLINTH = BLOCKS.register("ritual_plinth", () -> new RitualPlinthBlock<>(MalumBlockProperties.SOULWOOD().setCutoutRenderType().noOcclusion()).setBlockEntity(BlockEntityRegistry.RITUAL_PLINTH)); public static final RegistryObject WEAVERS_WORKBENCH = BLOCKS.register("weavers_workbench", () -> new WeaversWorkbenchBlock<>(MalumBlockProperties.RUNEWOOD().setCutoutRenderType().noOcclusion()).setBlockEntity(BlockEntityRegistry.WEAVERS_WORKBENCH)); 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 815f66131..e93f9859a 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 @@ -392,6 +392,7 @@ public static RegistryObject register(String name, Item.Prop public static final RegistryObject SPIRIT_CATALYZER = register("spirit_catalyzer", DEFAULT_PROPERTIES(), (p) -> new MultiBlockItem(BlockRegistry.SPIRIT_CATALYZER.get(), p, SpiritCatalyzerCoreBlockEntity.STRUCTURE)); public static final RegistryObject RUNEWOOD_TOTEM_BASE = register("runewood_totem_base", DEFAULT_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RUNEWOOD_TOTEM_BASE.get(), p)); public static final RegistryObject SOULWOOD_TOTEM_BASE = register("soulwood_totem_base", DEFAULT_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.SOULWOOD_TOTEM_BASE.get(), p)); + public static final RegistryObject RITUAL_PLINTH = register("ritual_plinth", DEFAULT_PROPERTIES(), (p) -> new BlockItem(BlockRegistry.RITUAL_PLINTH.get(), p)); //endregion //region materials diff --git a/src/main/resources/assets/malum/models/block/ritual_plinth.json b/src/main/resources/assets/malum/models/block/ritual_plinth.json new file mode 100644 index 000000000..89c3bf707 --- /dev/null +++ b/src/main/resources/assets/malum/models/block/ritual_plinth.json @@ -0,0 +1,193 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "ambientocclusion": false, + "texture_size": [32, 32], + "textures": { + "plinth": "malum:block/ritual_plinth", + "particle": "malum:block/soulwood/soulwood_planks" + }, + "elements": [ + { + "from": [1, 0, 1], + "to": [15, 4, 15], + "faces": { + "north": {"uv": [0, 14, 7, 16], "texture": "#plinth"}, + "east": {"uv": [0, 14, 7, 16], "texture": "#plinth"}, + "south": {"uv": [0, 14, 7, 16], "texture": "#plinth"}, + "west": {"uv": [0, 14, 7, 16], "texture": "#plinth"}, + "up": {"uv": [0, 0, 7, 7], "texture": "#plinth"}, + "down": {"uv": [0, 7, 7, 14], "texture": "#plinth", "cullface": "down"} + } + }, + { + "from": [3, 4, 3], + "to": [13, 11, 13], + "faces": { + "north": {"uv": [10, 12, 15, 15.5], "texture": "#plinth"}, + "east": {"uv": [10, 12, 15, 15.5], "texture": "#plinth"}, + "south": {"uv": [10, 12, 15, 15.5], "texture": "#plinth"}, + "west": {"uv": [10, 12, 15, 15.5], "texture": "#plinth"} + } + }, + { + "from": [-2, 11, -2], + "to": [5, 16, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 3.5, 15.5, 0], "rotation": 90, "texture": "#plinth"}, + "east": {"uv": [15.5, 0, 12, 2.5], "texture": "#plinth"}, + "south": {"uv": [12, 0, 15.5, 2.5], "texture": "#plinth"}, + "west": {"uv": [13, 0, 15.5, 3.5], "rotation": 90, "texture": "#plinth"}, + "up": {"uv": [12, 3.5, 15.5, 7], "rotation": 270, "texture": "#plinth"}, + "down": {"uv": [12, 7, 15.5, 10.5], "rotation": 180, "texture": "#plinth"} + } + }, + { + "from": [0, 11, 5], + "to": [3, 18, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 10.5, 15.5, 12], "rotation": 270, "texture": "#plinth"}, + "south": {"uv": [12, 12, 15.5, 10.5], "rotation": 270, "texture": "#plinth"}, + "west": {"uv": [7, 9, 10, 12.5], "texture": "#plinth"}, + "up": {"uv": [7, 12.5, 10, 14], "rotation": 270, "texture": "#plinth"}, + "down": {"uv": [7, 14, 10, 15.5], "rotation": 90, "texture": "#plinth"} + } + }, + { + "from": [-2, 11, 11], + "to": [5, 16, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [15.5, 0, 12, 2.5], "texture": "#plinth"}, + "east": {"uv": [12, 0, 15.5, 2.5], "texture": "#plinth"}, + "south": {"uv": [13, 0, 15.5, 3.5], "rotation": 90, "texture": "#plinth"}, + "west": {"uv": [13, 3.5, 15.5, 0], "rotation": 90, "texture": "#plinth"}, + "up": {"uv": [12, 3.5, 15.5, 7], "rotation": 180, "texture": "#plinth"}, + "down": {"uv": [12, 7, 15.5, 10.5], "rotation": 270, "texture": "#plinth"} + } + }, + { + "from": [5, 11, 13], + "to": [11, 18, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [12, 12, 15.5, 10.5], "rotation": 270, "texture": "#plinth"}, + "south": {"uv": [7, 9, 10, 12.5], "texture": "#plinth"}, + "west": {"uv": [12, 10.5, 15.5, 12], "rotation": 270, "texture": "#plinth"}, + "up": {"uv": [7, 12.5, 10, 14], "rotation": 180, "texture": "#plinth"}, + "down": {"uv": [7, 14, 10, 15.5], "rotation": 180, "texture": "#plinth"} + } + }, + { + "from": [11, 11, 11], + "to": [18, 16, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 0, 15.5, 2.5], "texture": "#plinth"}, + "east": {"uv": [13, 0, 15.5, 3.5], "rotation": 90, "texture": "#plinth"}, + "south": {"uv": [13, 3.5, 15.5, 0], "rotation": 90, "texture": "#plinth"}, + "west": {"uv": [15.5, 0, 12, 2.5], "texture": "#plinth"}, + "up": {"uv": [12, 3.5, 15.5, 7], "rotation": 90, "texture": "#plinth"}, + "down": {"uv": [12, 7, 15.5, 10.5], "texture": "#plinth"} + } + }, + { + "from": [13, 11, 5], + "to": [16, 18, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 12, 15.5, 10.5], "rotation": 270, "texture": "#plinth"}, + "east": {"uv": [7, 9, 10, 12.5], "texture": "#plinth"}, + "south": {"uv": [12, 10.5, 15.5, 12], "rotation": 270, "texture": "#plinth"}, + "up": {"uv": [7, 12.5, 10, 14], "rotation": 90, "texture": "#plinth"}, + "down": {"uv": [7, 14, 10, 15.5], "rotation": 270, "texture": "#plinth"} + } + }, + { + "from": [11, 11, -2], + "to": [18, 16, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 0, 15.5, 3.5], "rotation": 90, "texture": "#plinth"}, + "east": {"uv": [13, 3.5, 15.5, 0], "rotation": 90, "texture": "#plinth"}, + "south": {"uv": [15.5, 0, 12, 2.5], "texture": "#plinth"}, + "west": {"uv": [12, 0, 15.5, 2.5], "texture": "#plinth"}, + "up": {"uv": [12, 3.5, 15.5, 7], "texture": "#plinth"}, + "down": {"uv": [12, 7, 15.5, 10.5], "rotation": 90, "texture": "#plinth"} + } + }, + { + "from": [5, 11, 0], + "to": [11, 18, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 9, 10, 12.5], "texture": "#plinth"}, + "east": {"uv": [12, 10.5, 15.5, 12], "rotation": 270, "texture": "#plinth"}, + "west": {"uv": [12, 12, 15.5, 10.5], "rotation": 270, "texture": "#plinth"}, + "up": {"uv": [7, 12.5, 10, 14], "texture": "#plinth"}, + "down": {"uv": [7, 14, 10, 15.5], "texture": "#plinth"} + } + }, + { + "from": [3, 16, 3], + "to": [13, 18, 13], + "faces": { + "north": {"uv": [7, 5, 12, 6], "texture": "#plinth"}, + "east": {"uv": [7, 5, 12, 6], "texture": "#plinth"}, + "south": {"uv": [7, 5, 12, 6], "texture": "#plinth"}, + "west": {"uv": [7, 5, 12, 6], "texture": "#plinth"}, + "up": {"uv": [7, 0, 12, 5], "texture": "#plinth"} + } + }, + { + "from": [13, 0, 5], + "to": [17, 6, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 6, 12, 9], "texture": "#plinth"}, + "east": {"uv": [7, 6, 10, 9], "texture": "#plinth"}, + "south": {"uv": [12, 6, 10, 9], "texture": "#plinth"}, + "up": {"uv": [12, 9, 10, 12], "rotation": 180, "texture": "#plinth"}, + "down": {"uv": [2, 14, 5, 16], "rotation": 90, "texture": "#plinth"} + } + }, + { + "from": [5, 0, -1], + "to": [11, 6, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [7, 6, 10, 9], "texture": "#plinth"}, + "east": {"uv": [12, 6, 10, 9], "texture": "#plinth"}, + "west": {"uv": [10, 6, 12, 9], "texture": "#plinth"}, + "up": {"uv": [12, 9, 10, 12], "rotation": 90, "texture": "#plinth"}, + "down": {"uv": [2, 14, 5, 16], "rotation": 180, "texture": "#plinth"} + } + }, + { + "from": [5, 0, 13], + "to": [11, 6, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [10, 6, 12, 9], "texture": "#plinth"}, + "south": {"uv": [7, 6, 10, 9], "texture": "#plinth"}, + "west": {"uv": [12, 6, 10, 9], "texture": "#plinth"}, + "up": {"uv": [12, 9, 10, 12], "rotation": 270, "texture": "#plinth"}, + "down": {"uv": [2, 14, 5, 16], "texture": "#plinth"} + } + }, + { + "from": [-1, 0, 5], + "to": [3, 6, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 6, 10, 9], "texture": "#plinth"}, + "south": {"uv": [10, 6, 12, 9], "texture": "#plinth"}, + "west": {"uv": [7, 6, 10, 9], "texture": "#plinth"}, + "up": {"uv": [12, 9, 10, 12], "texture": "#plinth"}, + "down": {"uv": [2, 14, 5, 16], "rotation": 270, "texture": "#plinth"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/tainted/tainted_rock.png b/src/main/resources/assets/malum/textures/block/arcane_rock/tainted/tainted_rock.png index 888918c8f93cc15e4abd2bba38acc86974059887..062d3b71ff7405d6019eaafc8053964370416593 100644 GIT binary patch delta 345 zcmV-f0jBPiPs1<}h2s&EilKy7LRCc;B>os93@mi3R5lhC z{$Gbmg_HrcgfZw{_}r@%FR{UHCFc8!QB{2J8v`|fp1o)GtUMGjDivc1b>Iu31V!2_eDG#B}Lbhd6EsNVhI4&+|Z$tyrKjkR57DM5;q@fEBEtjYijTa1v)1W z2=e&$<}OK=!7Ax$JTq2U3pdsW^KhAceXKbZpGXL?WD rAV8f!$uR&wvO~W!9_4pB{{d)0H^6IedvpK*002ovPDHLkV1fVuQ0t!e delta 369 zcmV-%0gnFk0*nKYB!5v!L_t(IPj!+(OT$1Ag*P`%QV-%n5TR86ooBrYz3bIKR#5QP zO9^c0!6wmLkH})q`{S)JD0Ce?T z6k{R*sJp6Ss(G8^u*Yb=GJkvNYIv z8<*j`PiCpk%xVQcvJ$0>0MP-vDc0Kn;5XSf@x{u`=f-qk5)YOqIA3KinC=>%9K@A{ z5_Pu9EDo#f-*O4=5*fO)RTeiD`@QfYvfAFxETUgw_JZZ|{Luit{s8-iO*#U<%D4ak P002ovPDHLkV1fVu>dCbe diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/tainted/tainted_rock_item_pedestal.png b/src/main/resources/assets/malum/textures/block/arcane_rock/tainted/tainted_rock_item_pedestal.png index 5a78dbbbd407a6a3efa01f74f8a910bf86dce49a..75c7c7386c855d303f2df7d7e2b870976c68044f 100644 GIT binary patch delta 387 zcmV-}0et?O1D*qrB!6Q`L_t(IPo+{ZF9bmpe%smET}Pa=i9&zkh$t`7pwamyS~>}x zMnk2&Mj{%OMB^HX2q!jCSQ5=;?}W3vv$~b+ivH6efk$Z1?(k_@91flih2NtO*Yfegv>-W8N=GKKM- zKo~lcfDCIz&~UEEv<&uv&m*4#Kg>_yKDhi4kGLeu_+1Go6OvH|$~`>V*ZyQ8ynx|* z2epJCZyPZeH+**vt8njcX}7lXsUXiFjgE}b$>}jw$`b@by9iXD@yp;qkA=41w z3GfI2**rnF*Co>u>;r)M-Kk1X(0_U6hj_##S>kskpiD?c87TMix~cuiM0f$in-^yx zLE1KAE*=N>ta+k8c%swulP?8n25HS+r`GKi6$?dzp)rD}&-i5}muGX{#v`6eNCuV? zz!U_ZYZ1c~KO7`~I0hNmhvgBnMLX>DxyJJ}!Q+8W=2Ur0YHwS}?f;t1pWgr8dy?h21M>YV&mlBsk7=Li->P3ccU%x{Q;AGI# z)<-b_W;o25AWNug07YJ)C=e-*#{Be>|DY)3;o@fC;o<^^(U))E7`}Y_$^eSWi8Ff` zu_gkjAS1F11O-IE!tX!4VSpv1_6ha)4ZvqQF>-iKA2ooO5MW>c03i~v5l+_;d;kCd O07*qoM6N<$f&l=+^mDra delta 264 zcmV+j0r&o+0;2+uB!B8jL_t(IPh%|2YWy!DBFezWEy{olK7D=7@Z!yDhS#rOF!1nl zqsYNHUp{|jVC=1%_W%BqdkmZ$yeNvk|M<+HD5Jyxk^?FH^!+0PA16Op4U7#k7;FH@ zrn`@BGJOB~1FV3Pn}b1FPMrbdGLQk!UOfYgBO3tXONmJ#41c(C{UXD+uiwE6xwttQ zbTsu*41gI9b0)|V>KZ_i7bpruilZ?nspLN>3VFD=8F;w3z+v>|+c$;gf45wP(4k8c=Y38{NpJ$?i5nNExxUeiYnASMJD7ywe!uhDZ{VYmPQ O002ovPDHLkU;%we8;`hO*$b*D~;Mzb*uhEHTvoOax59Hy=Uw#vle_=8}2 z4j=}hEdauf uau~TNhkqtql9ep&%f5l^yAV-$AHRk6;je!Bg-rke00{s|MNUMnLSTZp(Y>eu delta 445 zcmV;u0Yd(&1J?tPB!8VrL_t(IPlc1sPr^_T#1|1-sC*`Tm;i#oL}G|Hy?XaA*NX?^ z!Dx&M2eBpsra(c&{9d!QM51$g?Dox@*&Skst>cwM;Lqk_*~w@rJa6j7TDzT9cmF*6 zXu5cl*G9LF0 zNjz?Cw6I+Irk>5##GiXI9u9sKXrWf^N+I1?Bfu8GTL0x*cn}N*j{yOf{4YE3+?);Q9ywKA?+^$8g&auk4{`u7)>SLXl~eA zjQ;|RurpPi`lcl5R!~H4Ob(O)Z$Q%)O{3P7lpdQ1lQyW5^aI$5HsH+a6kG({Y`*CG*FziPVXDcCJ8W$mxprz0000fd2sS3PT0GoaGKqHJMYcz@WwpeKj#2oZG}rAk|f*W+-t1TNVaeD z5zL_flplJ50RItDa+Iy{9nCfZJEZ|Ife}=yU;z@xafrb45r3tz+=Z(tO#kj7XA%j# zV1fp5jWU^e@6!*M>zhHYBvp3L>z_n4ss~oYRg{9G@N*-eNlZKmnnIwMOLo6WJWe7c zNeXk;z1{YJfE(6&``RN!4by0M3r+NF6=||YdEKi7Km?fVMp;1b6z5s@COGQI3;f#g zPUUzR3b*3c6oa1#o#6`O&_H}U%jtX4T1*)3icorL`0;Qco2`C1dpEm z5&mAuL9r%U+l0-hHS#8zbsIgomrQ1M-oAPBtn1*uaff>(C$HZ)Eb5G$;aJBA$}dIs zmdCk88q)hBBJ1|@q4`hqdR@|TwIT})0I(`!Dl5fUpLM1gZGU$xB!~a9_~80He)$22 z(oi=cut(l6Kr|ztBu_LL*z`OPHyLaoVCG6O8_)Cg?9d^O9%=0Dv;bGLy9Q!m1oNO7 zuQ8iWIK)X2QL=m`+ZnYZ1m`ymE*(O55o&$vefoG+j*Q1XfD_?B2nmG`_s=$5 z2;s2%i9e(MT?P;nfimb#Cl}gSVjzqF0P`+#3;+|!%3u>;ssC z=dTn~1pwA6HbxHfV>G#|RLsI!r_(@hK~^WKi)auTF(woy>sz+|1?@VF?o1@NK(7O$^E>n4bNYFYl`{9^N0rm zR{c5x>&Y|%++iQ{Zs^Va&zs)6KtM2=Q4BES6c}%jp#9xSCw~MK01Oa1G3v6CJY?gH zSZv;df|pfeuBwYt{z32u`gGq%;zQ7_s?YB>y5IU?=Hv{6L%)<6zZq+ofyM`{<$2 z&&otxIhB9_)8bu!bicW{DwlqA=7%vjcc}-*?_npFEc=k)c7OO-0}+LwvJbPq293I3v0KF*C z&hu1(!svJl@cI3+Lk}12@PDB2DotJ+1~kx`Xlau&jfG@L^C{Q_Xf>(!`{&*Z`anQ$ zBJ-yEbedA&!GC@a5;R6gV9t!mCV)W{dhmr&L&lB=lf_8gC1qm0D9x`r~#mMW^K35(&v{6=E_Qfo2!S~?mtstk48c}<6|1L`CNkG;I4*V z3@C$*QAh?oNWj_x$b)ZoKmjf<2Ksll1!}CNTk5eJb|D4lvT9O6MV+4f0pwz4S|27r Sh5!Hn07*qoM6N<$f&c&rzsI=% diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/runic_twisted_rock_bricks.png b/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/runic_twisted_rock_bricks.png index bd3d689456fe424d2a48c939ee233d1e3c63ea8c..5379e8625c291a3ff2dd7e6b3884993ae918a5e8 100644 GIT binary patch delta 409 zcmV;K0cQTl1G58=B!75GL_t(IPjypGOT$1Edwb;1F%IL#8SuYMe5 zE+un1xM2dIzGEp0LN67|0xV)lfMvj3Tn-B?;dJ>$LzHNBAlQ%gSQYRzef}rl!8|Kv z|Ea(`mY_@|pLP2DNiUycnk4Tffi$rk+VVm*L@sJ^qs6UcIVb0GGQE>4e+MXNSR3#V zfMVv&)jDE;*5mFaerEQuTSz?sJ&71eW{WYu^e_Xft1c43>(x~KimUHNDG1;t4chZ3E6MN|L)002ovPDHLkV1fVu DI%l}R delta 430 zcmV;f0a5<51IPoAB!7=dL_t(IPmNPePr^_T+=@`3kr=f^jc6eFK?osS>cNSW=Ey#$L^40yVU8oNI6Rv86Xr=xk1x(Aw-Tl@M|@q@c@=$yEJr$ zWV;qAm!%soNUJoX5eM4qA63$m8Lq+d=;&Mv_7AfGV_xsaSxpYJJ~ zI`^}I-SG~VHG@qdQ}HJwXp1>fin%KW2=W=yB$>-{;sc1!i#rhQvZqAiU@j+$QLHe7 zAfFqJ8XX@Qfw7jHunXcdrXwigGu{t&3;g3Ov-+2f2q%;H41l<{@n^{97|dp2l^kF{ YKOc-OsX9}Am;e9(07*qoM6N<$f?UeZCIA2c diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/runic_twisted_rock_tiles.png b/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/runic_twisted_rock_tiles.png index 0bd480c6311113bd9dd1d2edd4e578e3a06c04b2..b2320d9f41d13368cf86899b1be0d15dff9f271f 100644 GIT binary patch delta 418 zcmV;T0bTx(1iS-~B!7cRL_t(IPjynyO9D|4o(0>*UCY!Gip4-O5N`z?JVcl17~Q;g z=-=%k9TtQvtjyIccV#zW(^NI2S5;p1F*>5QtM4aF5RtnN$3o_ZtB4br?v00YoxDgvQ_E0{{R3 M07*qoM6N<$f`UlGF#rGn delta 502 zcmVB1Jpt3Bb+W zSp>iqx!9%-P=5iI=W=p5PKmYLdnjDO%B}5&90+gM)|3)s-WauAF?r63_3Y4^7?}@Q zkg`)|4y~Z|Cl(olmgKcgV{32oFr++Oy*iV|OlIB4czSgNQc_hO3l|UoxgiD;AL`1~ zPBii6Bc6)q;tN$pW}rr*4^(FkEUpL#8&^Sn@LbGC0B^lI$F+`p@#_=HtVS~cP#?2GgUF7ZjK4W7R08Y}y4*?{3Ik~tpmjD0&07*qoM6N<$f`XFo>;M1& diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/small_twisted_rock_bricks.png b/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/small_twisted_rock_bricks.png index 56dee062f150c8a4bd859084397a3f265f5adb0b..deb2d384e0a27d701e80f6962b11c5de665065ab 100644 GIT binary patch delta 424 zcmV;Z0ayN~1HuE4B!7uXL_t(IPi>RIO9DX{#lHn}(UnTgf-nQAAS4o^4j!V5bc}A^ zJMI|*9 z-Oy(aYQCRS$%DZ>3FUSAF0IhmF-0A;-C|Wr`G3F~bgu49m_#y~kEKzm zOOPw*1_~EHvFrrpR1232`3xsg*zhID7p=ib>)J$dC~=&K@8_lHTW4q(SmOW&453rQ z+N&R37#zlcfn{LVuEsSl;@a!oJ}N|e@DCn=W_5ml3XujpOi-ZDBA5Vb7PKCWG;tc0~0gS^-!sRZ?SgLfg2mklnx@I|6{^&GP>? z(vt1W(qGpVUZ4z^DjaUqoNq<2(7p3^*MKJ5G?`6OP>gOi<^&7fs~wyfMj_ay&i)f_bhA)dhxr%QWfux& SP9Y!w0000*n!wBCMEvRzS> zgk&2YMbR7i{uS9Hk8^;TyWSwH)hu6L#Y^(r7u0EW8AME%uYYu0Z*qZg_(DyuMQ5!p zr9Uy_rgz!Ttka-0+3*1pJTKsX=?o9-b}8o|*E*++f1?8_z!(0CFiOP9`fQ!91@_$bMnq+Nb$^~~-Tf4xfu8eqFk}xP#0OfFqEDED%vp?bVuMm20LKWmX1S5T83BQ+ zd{Bm0Y5<`S^TpyoBH@o5gI&5+8>~Uq%!R8KLFWSh1!botpN&~kP5=M^07*qoLwX-sb>tSr>PU zZ5+5Z_W;rWT~z6^O7B$x5dXT;;Z3pX0n`f|kO4q-Jhe<`6@N{GK5W!GeFo-rb#6J# z6!jEroF)1Qum?ay7cBNS(flHedH@}iXuj*Ex&1`!1cVtYhKSODL#*OX_I@ zo~ml@GIbncSThA`3;{X{J>sZ3mMNfob)6t>=0<=+9fU>z$+O9_voiH0u1;6$CW7Rr zKXxN^Ry7wm9Ae#r=r+f>JC<0V$FjX)fm@K4%+X9m^a0c W?LlJ4zw`hA002ovPDHLkV1fXxY?O@v diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock.png b/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock.png index 20b53f023d806196678e98e196d95bfd0d2aa663..1804ef47c10a24c8f90bf005516959e3214d1f04 100644 GIT binary patch delta 336 zcmV-W0k8gs1M32iB!4nVL_t(IPi>PiPs30Qg!3dQYElUhRgoA#>cG+gCWa1domu(+ zTdN`#l8SI|RdSb0m|bL_kG*)31cn|@K>R66bNp=ytv-F2Et{r7t|wQn8|@3MY* z>y@Ch>pr}YmYco5lEZT!?R%RLlz)Vw+9gaP+KvMQ_c{gZNM1v{BF|kyrfh2FFD^MHs zFQ7O|-U8D-f=QSMktN?{o}^QhH`V~+(vX1bQC0MVB`c4sS5pw@%$K;HX}6*u*T<-4vm0ROJm*Y|@0I{J|NmoS?}D^!=1R)3ZgsPe>k8vtE>7sZ%J z0O~FmpeWRY1>Tomj^~;?me~m_ zFydbT12pB%Z#K4mp*ren$T?S#=^tH&B_g52+K8LHLQyE`J~O#_D7D7u(mD@1$F&lR zM;HJd0#eoaaC5iEGS>M7Gr>q06e)!(mUPvh&1(E1n7U$$?T YdG3tGUt|sd0000 z`4RoSRR<(cLR-=(A8u%k?x>wm#Sy9}`>gl;?%p$d@L#3VI|jA#@{_hjnStHw>pgD7 zCIx=rQf;10VKxteJ>8AvKH&9Qz*igtLj_0>iwMLjC9dx>(|?M(TNSE?XHhIb6f0OH zvx*>0rUc^FuSAl(Lx^C!kHQIX+k%hi9oYTNi^N`0L4DQ1u6v?;$2lyQZ- zoetL=S(?x*D3z4iR;6rPqZY0PzT5|lY`MsRU7UHci5)NN%i+$Sv$`i2&~uZ|qd@>| zIiVpoftAm`_gk!AZVDN@_5va>`Fwl%NCc*w5J4Th>$4&-<%C>l^LaE3=uen(LN1tm z#z_y)efl^itBp1)pN|etTSI14@ShxDHhusMVIiriODz@v00000one)1Hl52B!37=L_t(IPqmX<3xYrpg~x}KvXU+qMMXqCMgRYo^b|xy6wyVx zXjl)%*_dTb*L-PT7G?IEnR8|gw?B(&)fxq%PbJGH@9NQ{Ga?-S8Hn39OX8ld=G1n( zu~>rvB7%tahb>Kq(-?pui`|ltj1Q6}09h4i0hVQo@^R40pnu+z5}*q64JZ~YDI!1;0B!7iTL_t(IPkob7O9DX@h3`hTi;J5YyBb(&5ET)<_5c4v^w3L4 z`H(A_tgL8e#&_ioQ%dtP?9SYC&pG!@aMin8hfzaV;Xy2;{8>8fTZt-FnJ;JhpSAcd z^(@WKb+5)XnUzxs0MO#7;Q+XF7^YhQMKO>h=?FXbhr_-Ey?^8DHE676tt*4K2giVa zu%J7O!nA%V<7r>^D^)2b!wo=EZ#fAsua9zZcCSU@UhJgsy%V6_?5>ZRnZ$7_i_cO~ zk-$QR&jRh%OnsSuY#2~LH@}N-o}IytX3*aPD9e$oRtr5qrw;%#n-G2hVBfzy_*%|% zG|)_^4Tsf-V!mL^^UdnmoC?TMX{NER=;+`dm4jvHGkqY6_dFDL2okfzO9wb z|ChfGDVL2qHyb(d1Bim$2D6~dxDy9kqWe7~_jX$WCsq!GKoQW9!1OWLj@cjBh$#{~R0S578 zHleH2MgWI8dw<|JtTpUV-yD#psh(V{@mA5S|h&5+$ZmJSz(|hM}X6D>et=+r~iaT`@n=jue9^K_D&fe1Hv;XOk zzi>#8S(MWA>_bdDYh48h{s%Jg?Ty6%(T=Ol!1orU8!?JRbbs28nv^sOWJJwBlT5un zeJovCt$aca12k&wz_QjO@u&-j3W@o-vEG#)C#gQoKPg>EhayasC7Dh=9j_! a3;c%^rCY-gN&o-=07*qoM6N<$f&c)959B-m diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock_column_cap_top.png b/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock_column_cap_top.png index f7efb0e75f7ca3e99191fdd7099936e0502bfe3d..04ced80ca657688dd4387e4facd8869af84f89fe 100644 GIT binary patch delta 306 zcmV-20nPr%1I+@EB!3b~L_t(IPpwnC3c^4T+<+QPl%VkeA_{_q_y<-tVr`e+!Y>vJ zK~O~SP0&Q5LSzp1xFlM|t!_8BvomuWZ8DsOx}KpRc+>sq5r^@F8GpJ-`KV!Z delta 430 zcmV;f0a5}f9B!7-cL_t(IPi2!aPr`5z#jhX~s1!7!4#v1T85b7g=w#yP?1%8X zx*Fr4Vibx63IgVL`bxoD+Ft+n?!9;S53ag*%X($c#u%tltLG)zHWq5phyMm53B z#r=}x=jbUvED!)UBU_}NI@~_>X8?mi*0Zn_89&psXY+Yx<$rQ$yUi0nL_V9Q_B|U} z6m|Tpm;{&Sw@aZ?OpMZ@g|+HGkR*BbToJ?pDEb&adS^v8nfhzoKJX{q#f)!2T4Co` z0$P*Fn}yZLC5Xj18(TfBTO(?E4gi2*7sp5I0LVZaKy*_9PiP~HkTl8gDHJCFK+=Ep zgOb5}e=x||V1KTBbAXqx2k(v#bb@-j)mj4p3_s%9{>rCCx*DU#r>^LhsYoEUDh&sa zT=pd&BO{VQDiE8Zk!WWp0NQCBThKkb_A$zRjf!pre#ks=*OKK7v~7~Xh_r3m57=p( zuyD{)wAzCr2;JFzJ9B00000NkvXXu0mjf0PL~KQ~&?~ diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock_column_top.png b/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock_column_top.png index 8b63d1869b750d27087ca7bafae3ea9d853c6e16..869b07963a9d965ad2d9a39f91afd2627a97c08c 100644 GIT binary patch delta 288 zcmV+*0pI@71G@r{B!2)&L_t(IPo-0_3c@fDO_mld2o;McDkA7oL?;IaH)p@zNe~fH zM6n>W(k_*Ec=3#)V6!C6y}rDAcc+8)F!w9I;uT#Z)o=9ZGtLs)J*Q0j>abQeRu95i zo}{rVyB>j#r@ach;ZFkohX{b?3rS#PJr1luK4=JJ3XlnqTz^oA^kfQ%Yj|M4WP>C* z&RKe+E5|JCc3G2~#P6|*e zCV-KUC#B+C51OP71YF|c1k!`QQYdU9$|!S%AHT{d4KChDb}P$avP-$#EKMbNcHV~R m+cYwPoE>WAA{pa+2g54U8#BqWcK`qY07*qoM6N<$f&c(0hJ0=S delta 439 zcmV;o0Z9J40?`AIB!8AkL_t(IPjyqlPQpMCor18XjRg-y4|vd+s4=GD!p+2sC-0v9 zXYa-X2c?NZNudj3%^Q516=N^m%+9=>_ufo!bvCNwI2C+lnaiS_OWHpb(}*Q(MH;Wx z3;mB@pJZ@!t!MjHYJM=v?rXa$<#WA|&BltYRxXK&07F4Od4G1`iXtMx&G4bdWl@Y7 zlO!1kK@r?*MPk~q0wlddJp)t$KmiB7jx&+zPc3L zjUH>*R8$kk3x7!j>2m+{t%3n`tMcLr1!1J3G!s3=9pb5EhPB5@9Y46t?NY^&1k82BaXF9Dgr1`p zayJC|UX{x9d$`d@y#{3YE0FeEv1+)ptXanue!oKw<6X696e;Qpc2+EETdog$&vWnp} zprC*CrJ&3r?Pqv3x(vE>>^BI8<_OH3@fRU%Hb<$Hw-S9v)|5A4HP%>Ce3#js-F^G!&1n7ZRW7z1GIg7PB%5 z#&;Z#+7|@@6hO{o;!%?*+ zc>ArO&LHgymuH@X8*=x~2!{S3P<_TPmVU_Q#MvuPB_soD31AG`Qspw*2H7B}ETMhS z$uV&X!Zdg(lk_Wx2|YdT7x`5aOM|y|**zcRm2Ip`@Yg+V#ec8_W@q@Z-|MR&00000 MNkvXXu0mjf075CPRR910 diff --git a/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock_item_stand.png b/src/main/resources/assets/malum/textures/block/arcane_rock/twisted/twisted_rock_item_stand.png index cf8c32ea5976b2d57f42985077f3f60f1800fde5..cd8a8fc58afdbf1a98517016a7764ae5ee458aee 100644 GIT binary patch delta 257 zcmV+c0sj7-0-XYoB!A>dL_t(IPwkSw3c@fD#=k;MXe){cB3;zQ#X)BWx4wh#>gE&Z z;Nqe#MTA@J$jLGeT~#w7_5L|53nT+_Nl z#4x=1GC$pXSPfnRqz{2X+XdA~D1-#(OlkC;zzRT}{NM~JQhFs|+=AQfgC-+Dcn?*+ z2%xyr>bwC*|A0&;N@y}0Lw8gHXt*Aen*0_}>j|}%Slh<&WRa7F4zuBymfBIArHEw$ zvU0y$8zp}~0;4zq=jO}j4EiH&H>+wu75$r9CH)WhW&^+zo}H>mysgpN00000NkvXX Hu0mjfzh!zI delta 257 zcmV+c0sj7-0-XYoB!A;cL_t(IPwkSw55Yhb$G=s2{ShJ}x^}RLK`b_jzrx>Zwi(1? z=vonkw7qLldB;VGG?E(KbnnM~-n;jG+MqYd8fFJ(%|`z4G{TW@Aow1-&R$~5xLgFZ z@o<{$PClw{fO8t5Rrf$KN)$W+GY$Dx-3crKROxsK5Q|tQSbEGtqv?V=BR~|Mq(2WJ z+ji5kJa)FLfbvtmFI{hL@J{SWwN0>BOX_o^50YE%6H0000W3 z5eW!@Q9iUNGWy6APo+-oMg=KwxKV5c1LCBepj z=YVe=HidHFY(p&PfU_`q8&h)8-N->XC&3)d(swK1=ip4m?i=|2IcQ(qnub(XwJHO^ cw_)I{0my1Spu0!5Y5)KL07*qoM6N<$f_D;`ga7~l delta 412 zcmV;N0b~B<0=5H?B!7EJL_t(IPlc0DPr^VD#ivFnEs0TMA_qZZ@L&ufUh2V^aPdUq z(X$`Iud3b*ibiaeK%sxOh&69;YAI0nvgy9vw=?^G)hn1h|I}4lK&?a~APW9>;Wpy0(JcmB}Hh(1sz3~H^sL12_YvPmd zjcBjZpi;r4p>h^)yIx_>5gqyJehxKBaT=#_r z!yy}>_x`Ap92ULjyv+=tpl1mBTA3eE4374#IgQ)=)!D#mwquk&ohnjc#JA|B;;i2= zqK(a6u56i(3V*fA_5oL5=tdGzpn|z?j!^}y%Rc$muFh{`VIZ6HbN7zl05LA(1UefC zD3}Ezw1pT2q%2H$v#0L;{~QQN%Q)c}LE@^Mvmj+TNeouyj8{gCd7Ll@X$I0ci$NYI zTJyLS=jB|ho-pFM9Hbc#7$j#-Ci?r06Ih6-R5a-a5*6KlIqROS~qAszmT5Yv-*;z$9N-EzOXH3U*vzZm=WoQ2XpZ|RS`Oo>jv!2b%YlgKUV(b4t zK&`Kuj2D}QW-O$Pab6x((}?Ezg4C@?`Ms|7CTaa~V=lu-)uHA5oTvEBHL@MXVEFdf zwNoC?`o%TF9ldR&j`7o2pOO&3kGM|S&nOk;lv1TXNDa|2y@))abY(oHdllYza6qR) z{Tt0HDC0G-mUx(daZvce_rZ+JKLBEV8ohk~)bZr@!I@L%Qf8LQ8{p({4u`6mX*khh z=9okx+#h2wE6Voqnj3E$sQ3L913=}%b;B4OE%Z)Tfw8V0<5c?hAsW!Xkv^pJyOO4m zR~b*rxHNvRC@tfY1HkV6J818rigd# z3{62|as=Fp5t0buMf6}o&(^R9CU{2xfCg|h(hOa=bg$Oq3FVhF6RO_HJb5Qv&vk3J zCBap^P8;~dQ{^Sa)bUQE+o#V^>_Hw?pIA*r(^T^_Il1J5L<$R#yoe4*Kmf$`7=PT^ z_r?)GAgho8_!J}b0$^v=L5gTSRM&Xi1km~QkE{a#oHcj0F=e9+Q2{V6L!2z4wVTLM zDozH05i3wjIOIq~=@G2YSl8HU+a&SB67DZ@=AD``*N5%&P(DjdgS$ z$^)fl70AgU)fhLa*lh#=K$44-^7p1EZ(T6SX2bl|CR0jJi4qjBoP?sd&wt z1$5!j4YLCV%_8doAllo*R1K4VUDB2{x4$NTPVV0T5{VJ?Lgpom0N_*w0-$JmF?YZK z21ETr4Ljc209dZ z1ppKf8;XgZLx6DKFx)GINyhGk>m93NNpKafHFH235>Yb%5FwErawg?509hjdFfXl{ zsG@vx>0YfPfc1-OcpS~hh$NKNIK5qx5k~0)WL;}lvt!@j=rzIMFE$|(PWW1Y&;S4c N07*qoM6N<$f&e34Jx~Au literal 0 HcmV?d00001