From 5d337b93a66632c6f8e8d74460ca8c71946f9029 Mon Sep 17 00:00:00 2001 From: WinDanesz <31292708+WinDanesz@users.noreply.github.com> Date: Fri, 9 Sep 2022 23:51:30 +0200 Subject: [PATCH] refactor: Flattened the runestone blocks --- .../wizardry/block/BlockCrystal.java | 6 +- .../wizardry/block/BlockRunestone.java | 63 ++++------------- ...estal.java => BlockRunestonePedestal.java} | 65 ++++++------------ .../wizardry/client/model/WizardryModels.java | 17 +---- .../wizardry/item/ItemCrystal.java | 19 +++-- .../wizardry/registry/WizardryBlocks.java | 33 ++++++++- .../wizardry/registry/WizardryItems.java | 26 ++++--- .../tileentity/TileEntityShrineCore.java | 12 ++-- .../wizardry/worldgen/WorldGenObelisk.java | 5 +- .../wizardry/worldgen/WorldGenShrine.java | 11 +-- .../ebwizardry/advancements/visit_shrine.json | 3 +- .../assets/ebwizardry/lang/de_de.lang | 16 ++++- .../assets/ebwizardry/lang/en_gb.lang | 16 ++++- .../assets/ebwizardry/lang/en_us.lang | 16 ++++- .../assets/ebwizardry/lang/fr_fr.lang | 16 ++++- .../assets/ebwizardry/lang/hu_hu.lang | 16 ++++- .../assets/ebwizardry/lang/ko_kr.lang | 16 ++++- .../assets/ebwizardry/lang/pl_pl.lang | 16 ++++- .../assets/ebwizardry/lang/ru_ru.lang | 16 ++++- .../assets/ebwizardry/lang/zh_cn.lang | 16 ++++- .../assets/ebwizardry/lang/zh_tw.lang | 16 ++++- ...unestone_ice.json => earth_runestone.json} | 6 +- ...rth.json => earth_runestone_pedestal.json} | 6 +- ...nestone_earth.json => fire_runestone.json} | 6 +- ...fire.json => fire_runestone_pedestal.json} | 6 +- ...stone_fire.json => healing_runestone.json} | 6 +- ...g.json => healing_runestone_pedestal.json} | 6 +- ...estone_healing.json => ice_runestone.json} | 6 +- ...l_ice.json => ice_runestone_pedestal.json} | 6 +- .../recipes/lightning_runestone.json | 21 ++++++ .../recipes/lightning_runestone_pedestal.json | 21 ++++++ .../recipes/necromancy_runestone.json | 21 ++++++ .../necromancy_runestone_pedestal.json | 21 ++++++ .../recipes/runestone_lightning.json | 23 ------- .../recipes/runestone_necromancy.json | 23 ------- .../recipes/runestone_pedestal_lightning.json | 23 ------- .../runestone_pedestal_necromancy.json | 23 ------- .../recipes/runestone_pedestal_sorcery.json | 23 ------- .../ebwizardry/recipes/runestone_sorcery.json | 23 ------- .../ebwizardry/recipes/sorcery_runestone.json | 21 ++++++ .../recipes/sorcery_runestone_pedestal.json | 21 ++++++ .../ebwizardry/structures/obelisk_0.nbt | Bin 578 -> 568 bytes .../ebwizardry/structures/obelisk_1.nbt | Bin 615 -> 603 bytes .../ebwizardry/structures/obelisk_2.nbt | Bin 601 -> 590 bytes .../ebwizardry/structures/obelisk_3.nbt | Bin 609 -> 598 bytes .../ebwizardry/structures/obelisk_4.nbt | Bin 660 -> 649 bytes .../assets/ebwizardry/structures/shrine_0.nbt | Bin 742 -> 730 bytes .../assets/ebwizardry/structures/shrine_1.nbt | Bin 743 -> 732 bytes .../assets/ebwizardry/structures/shrine_2.nbt | Bin 744 -> 733 bytes .../assets/ebwizardry/structures/shrine_3.nbt | Bin 748 -> 738 bytes .../assets/ebwizardry/structures/shrine_4.nbt | Bin 741 -> 731 bytes .../assets/ebwizardry/structures/shrine_5.nbt | Bin 743 -> 732 bytes .../assets/ebwizardry/structures/shrine_6.nbt | Bin 745 -> 735 bytes .../assets/ebwizardry/structures/shrine_7.nbt | Bin 754 -> 743 bytes 54 files changed, 399 insertions(+), 333 deletions(-) rename src/main/java/electroblob/wizardry/block/{BlockPedestal.java => BlockRunestonePedestal.java} (56%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_ice.json => earth_runestone.json} (71%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_pedestal_earth.json => earth_runestone_pedestal.json} (70%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_earth.json => fire_runestone.json} (71%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_pedestal_fire.json => fire_runestone_pedestal.json} (70%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_fire.json => healing_runestone.json} (71%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_pedestal_healing.json => healing_runestone_pedestal.json} (70%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_healing.json => ice_runestone.json} (71%) rename src/main/resources/assets/ebwizardry/recipes/{runestone_pedestal_ice.json => ice_runestone_pedestal.json} (70%) create mode 100644 src/main/resources/assets/ebwizardry/recipes/lightning_runestone.json create mode 100644 src/main/resources/assets/ebwizardry/recipes/lightning_runestone_pedestal.json create mode 100644 src/main/resources/assets/ebwizardry/recipes/necromancy_runestone.json create mode 100644 src/main/resources/assets/ebwizardry/recipes/necromancy_runestone_pedestal.json delete mode 100644 src/main/resources/assets/ebwizardry/recipes/runestone_lightning.json delete mode 100644 src/main/resources/assets/ebwizardry/recipes/runestone_necromancy.json delete mode 100644 src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_lightning.json delete mode 100644 src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_necromancy.json delete mode 100644 src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_sorcery.json delete mode 100644 src/main/resources/assets/ebwizardry/recipes/runestone_sorcery.json create mode 100644 src/main/resources/assets/ebwizardry/recipes/sorcery_runestone.json create mode 100644 src/main/resources/assets/ebwizardry/recipes/sorcery_runestone_pedestal.json diff --git a/src/main/java/electroblob/wizardry/block/BlockCrystal.java b/src/main/java/electroblob/wizardry/block/BlockCrystal.java index ff43ff8f..3a00c910 100644 --- a/src/main/java/electroblob/wizardry/block/BlockCrystal.java +++ b/src/main/java/electroblob/wizardry/block/BlockCrystal.java @@ -1,5 +1,6 @@ package electroblob.wizardry.block; +import electroblob.wizardry.api.IElemental; import electroblob.wizardry.constants.Element; import electroblob.wizardry.registry.WizardryTabs; import net.minecraft.block.Block; @@ -11,7 +12,7 @@ import net.minecraft.world.IBlockAccess; import java.util.EnumMap; -public class BlockCrystal extends Block { +public class BlockCrystal extends Block implements IElemental { private static final EnumMap map_colours = new EnumMap<>(Element.class); @@ -26,6 +27,9 @@ public class BlockCrystal extends Block { map_colours.put(Element.HEALING, MapColor.YELLOW); } + @Override + public Element getElement() { return element; } + private final Element element; public BlockCrystal(Element element) { diff --git a/src/main/java/electroblob/wizardry/block/BlockRunestone.java b/src/main/java/electroblob/wizardry/block/BlockRunestone.java index c480565c..491bbf20 100644 --- a/src/main/java/electroblob/wizardry/block/BlockRunestone.java +++ b/src/main/java/electroblob/wizardry/block/BlockRunestone.java @@ -5,24 +5,15 @@ import electroblob.wizardry.registry.WizardryTabs; import net.minecraft.block.Block; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; -import java.util.Arrays; import java.util.EnumMap; public class BlockRunestone extends Block { - public static final PropertyEnum ELEMENT = PropertyEnum.create("element", Element.class, - Arrays.copyOfRange(Element.values(), 1, Element.values().length)); // Everything except MAGIC - private static final EnumMap map_colours = new EnumMap<>(Element.class); static { @@ -34,54 +25,24 @@ public class BlockRunestone extends Block { map_colours.put(Element.SORCERY, MapColor.GRAY); map_colours.put(Element.HEALING, MapColor.YELLOW_STAINED_HARDENED_CLAY); } - - public BlockRunestone(Material material){ + + private final Element element; + + public BlockRunestone(Material material, Element element) { super(material); - this.setDefaultState(this.blockState.getBaseState().withProperty(ELEMENT, Element.FIRE)); - this.setCreativeTab(WizardryTabs.WIZARDRY); + this.setCreativeTab(WizardryTabs.WIZARDRY); this.setHardness(1.5F); this.setResistance(10.0F); - } - - @Override - public int damageDropped(IBlockState state){ - return state.getValue(ELEMENT).ordinal(); - } - - @Override - public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos){ - return map_colours.get(state.getProperties().get(ELEMENT)); - } - - @Override - public void getSubBlocks(CreativeTabs tab, NonNullList items){ - if(this.getCreativeTab() == tab){ - for(Element element : Arrays.copyOfRange(Element.values(), 1, Element.values().length)){ - items.add(new ItemStack(this, 1, element.ordinal())); - } - } + this.element = element; } + public Element getElement() { return element; } + @Override - public BlockRenderLayer getRenderLayer(){ + public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos) { return map_colours.get(element); } + + @Override + public BlockRenderLayer getRenderLayer() { return BlockRenderLayer.CUTOUT; // Required to shade parts of the block faces differently to others } - - @Override - public IBlockState getStateFromMeta(int metadata){ - Element element = Element.values()[metadata]; - if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState(); - return this.getDefaultState().withProperty(ELEMENT, element); - } - - @Override - public int getMetaFromState(IBlockState state){ - return state.getValue(ELEMENT).ordinal(); - } - - @Override - protected BlockStateContainer createBlockState(){ - return new BlockStateContainer(this, ELEMENT); - } - } diff --git a/src/main/java/electroblob/wizardry/block/BlockPedestal.java b/src/main/java/electroblob/wizardry/block/BlockRunestonePedestal.java similarity index 56% rename from src/main/java/electroblob/wizardry/block/BlockPedestal.java rename to src/main/java/electroblob/wizardry/block/BlockRunestonePedestal.java index 53bb1bb4..f3e762ca 100644 --- a/src/main/java/electroblob/wizardry/block/BlockPedestal.java +++ b/src/main/java/electroblob/wizardry/block/BlockRunestonePedestal.java @@ -1,5 +1,6 @@ package electroblob.wizardry.block; +import electroblob.wizardry.api.IElemental; import electroblob.wizardry.constants.Element; import electroblob.wizardry.registry.WizardryTabs; import electroblob.wizardry.tileentity.TileEntityShrineCore; @@ -8,28 +9,20 @@ import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import javax.annotation.Nullable; -import java.util.Arrays; import java.util.EnumMap; -public class BlockPedestal extends Block implements ITileEntityProvider { - - public static final PropertyEnum ELEMENT = PropertyEnum.create("element", Element.class, - Arrays.copyOfRange(Element.values(), 1, Element.values().length)); // Everything except MAGIC +public class BlockRunestonePedestal extends Block implements ITileEntityProvider, IElemental { // A 'natural' pedestal is one that was generated as part of a structure, is unbreakable and has a tileentity public static final PropertyBool NATURAL = PropertyBool.create("natural"); @@ -46,80 +39,66 @@ public class BlockPedestal extends Block implements ITileEntityProvider { map_colours.put(Element.HEALING, MapColor.YELLOW_STAINED_HARDENED_CLAY); } - public BlockPedestal(Material material){ + private final Element element; + + public BlockRunestonePedestal(Material material, Element element) { super(material); - this.setDefaultState(this.blockState.getBaseState().withProperty(ELEMENT, Element.FIRE).withProperty(NATURAL, false)); + this.setDefaultState(this.blockState.getBaseState().withProperty(NATURAL, false)); this.setCreativeTab(WizardryTabs.WIZARDRY); this.setHardness(1.5F); this.setResistance(10.0F); + this.element = element; } @Override - public int damageDropped(IBlockState state){ - return state.getValue(ELEMENT).ordinal(); // Ignore the NATURAL state here, it's unobtainable + public Element getElement() { + return element; } @Override - public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos){ - return map_colours.get(state.getProperties().get(ELEMENT)); + public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos) { + return map_colours.get(element); } @Override - public void getSubBlocks(CreativeTabs tab, NonNullList items){ - // Ignore the NATURAL state here, it's unobtainable - if(this.getCreativeTab() == tab){ - for(Element element : Arrays.copyOfRange(Element.values(), 1, Element.values().length)){ - items.add(new ItemStack(this, 1, element.ordinal())); - } - } - } - - @Override - public BlockRenderLayer getRenderLayer(){ + public BlockRenderLayer getRenderLayer() { return BlockRenderLayer.CUTOUT; // Required to shade parts of the block faces differently to others } @Override - public float getBlockHardness(IBlockState state, World world, BlockPos pos){ + public float getBlockHardness(IBlockState state, World world, BlockPos pos) { return state.getValue(NATURAL) ? -1 : super.getBlockHardness(state, world, pos); } @Override - public float getExplosionResistance(World world, BlockPos pos, @Nullable Entity exploder, Explosion explosion){ + public float getExplosionResistance(World world, BlockPos pos, @Nullable Entity exploder, Explosion explosion) { return world.getBlockState(pos).getValue(NATURAL) ? 6000000.0F : super.getExplosionResistance(world, pos, exploder, explosion); } @Override - public boolean hasTileEntity(IBlockState state){ + public boolean hasTileEntity(IBlockState state) { return state.getValue(NATURAL); // Only naturally-generated pedestals have a (shrine core) tile entity } @Nullable @Override - public TileEntity createNewTileEntity(World world, int meta){ + public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityShrineCore(); } @Override - public IBlockState getStateFromMeta(int metadata){ - boolean natural = false; - if(metadata > ELEMENT.getAllowedValues().size()){ - natural = true; - metadata -= ELEMENT.getAllowedValues().size(); - } - Element element = Element.values()[metadata]; - if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState().withProperty(NATURAL, natural); - return this.getDefaultState().withProperty(ELEMENT, element).withProperty(NATURAL, natural); + public IBlockState getStateFromMeta(int meta) { + return this.getDefaultState().withProperty(NATURAL, meta == 1); } @Override - public int getMetaFromState(IBlockState state){ - return state.getValue(ELEMENT).ordinal() + (state.getValue(NATURAL) ? ELEMENT.getAllowedValues().size() : 0); + public int getMetaFromState(IBlockState state) { + return state.getValue(NATURAL) ? 1 : 0; } @Override - protected BlockStateContainer createBlockState(){ - return new BlockStateContainer(this, ELEMENT, NATURAL); + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, NATURAL); } } diff --git a/src/main/java/electroblob/wizardry/client/model/WizardryModels.java b/src/main/java/electroblob/wizardry/client/model/WizardryModels.java index 43f848e5..de23d73b 100644 --- a/src/main/java/electroblob/wizardry/client/model/WizardryModels.java +++ b/src/main/java/electroblob/wizardry/client/model/WizardryModels.java @@ -1,13 +1,9 @@ package electroblob.wizardry.client.model; import electroblob.wizardry.Wizardry; -import electroblob.wizardry.block.BlockCrystal; -import electroblob.wizardry.block.BlockPedestal; -import electroblob.wizardry.block.BlockRunestone; +import electroblob.wizardry.block.BlockRunestonePedestal; import electroblob.wizardry.item.IMultiTexturedItem; import electroblob.wizardry.item.ItemBlockMultiTextured; -import electroblob.wizardry.item.ItemCrystal; -import electroblob.wizardry.item.ItemSpectralDust; import electroblob.wizardry.registry.WizardryBlocks; import electroblob.wizardry.registry.WizardryItems; import net.minecraft.block.BlockPlanks; @@ -50,17 +46,6 @@ public final class WizardryModels { @SubscribeEvent public static void register(ModelRegistryEvent event){ - // ItemBlocks - ModelLoader.setCustomStateMapper(WizardryBlocks.runestone, new StateMap.Builder() - .withName(BlockRunestone.ELEMENT).withSuffix("_runestone").build()); - ItemBlockMultiTextured runestoneItem = (ItemBlockMultiTextured)Item.getItemFromBlock(WizardryBlocks.runestone); - registerMultiTexturedModel(runestoneItem); - - ModelLoader.setCustomStateMapper(WizardryBlocks.runestone_pedestal, new StateMap.Builder() - .withName(BlockPedestal.ELEMENT).ignore(BlockPedestal.NATURAL).withSuffix("_runestone_pedestal").build()); // Don't care about NATURAL property - ItemBlockMultiTextured pedestalItem = (ItemBlockMultiTextured)Item.getItemFromBlock(WizardryBlocks.runestone_pedestal); - registerMultiTexturedModel(pedestalItem); - ModelLoader.setCustomStateMapper(WizardryBlocks.gilded_wood, new StateMap.Builder() .withName(BlockPlanks.VARIANT).withSuffix("_gilded_wood").build()); ItemBlockMultiTextured gildedWoodItem = (ItemBlockMultiTextured)Item.getItemFromBlock(WizardryBlocks.gilded_wood); diff --git a/src/main/java/electroblob/wizardry/item/ItemCrystal.java b/src/main/java/electroblob/wizardry/item/ItemCrystal.java index 2ad0e5f8..ee6a0cd8 100644 --- a/src/main/java/electroblob/wizardry/item/ItemCrystal.java +++ b/src/main/java/electroblob/wizardry/item/ItemCrystal.java @@ -1,16 +1,21 @@ package electroblob.wizardry.item; +import electroblob.wizardry.api.IElemental; +import electroblob.wizardry.constants.Element; import electroblob.wizardry.registry.WizardryTabs; import net.minecraft.item.Item; -/** Note that in 1.13, the flattening will make this class redundant, much like ItemCoal, which is probably its - * closest analog in vanilla. */ -public class ItemCrystal extends Item { +public class ItemCrystal extends Item implements IElemental { - public ItemCrystal(){ + private final Element element; + + public ItemCrystal(Element element) { super(); - this.setMaxDamage(0); - this.setCreativeTab(WizardryTabs.WIZARDRY); - } + this.setMaxDamage(0); + this.setCreativeTab(WizardryTabs.WIZARDRY); + this.element = element; + } + @Override + public Element getElement() { return element; } } diff --git a/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java b/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java index 90892dba..692a07c7 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java @@ -68,7 +68,21 @@ public final class WizardryBlocks { public static final Block permafrost = placeholder(); public static final Block runestone = placeholder(); - public static final Block runestone_pedestal = placeholder(); + public static final Block fire_runestone = placeholder(); + public static final Block ice_runestone = placeholder(); + public static final Block lightning_runestone = placeholder(); + public static final Block necromancy_runestone = placeholder(); + public static final Block earth_runestone = placeholder(); + public static final Block sorcery_runestone = placeholder(); + public static final Block healing_runestone = placeholder(); + + public static final Block fire_runestone_pedestal = placeholder(); + public static final Block ice_runestone_pedestal = placeholder(); + public static final Block lightning_runestone_pedestal = placeholder(); + public static final Block necromancy_runestone_pedestal = placeholder(); + public static final Block earth_runestone_pedestal = placeholder(); + public static final Block healing_runestone_pedestal = placeholder(); + public static final Block sorcery_runestone_pedestal = placeholder(); public static final Block gilded_wood = placeholder(); @@ -140,8 +154,21 @@ public final class WizardryBlocks { registerBlock(registry, "crystal_flower_pot", new BlockCrystalFlowerPot()); registerBlock(registry, "permafrost", new BlockPermafrost()); - registerBlock(registry, "runestone", new BlockRunestone(Material.ROCK)); - registerBlock(registry, "runestone_pedestal", new BlockPedestal(Material.ROCK)); + registerBlock(registry, "fire_runestone", new BlockRunestone(Material.ROCK, Element.FIRE)); + registerBlock(registry, "ice_runestone", new BlockRunestone(Material.ROCK, Element.ICE)); + registerBlock(registry, "lightning_runestone", new BlockRunestone(Material.ROCK, Element.LIGHTNING)); + registerBlock(registry, "necromancy_runestone", new BlockRunestone(Material.ROCK, Element.NECROMANCY)); + registerBlock(registry, "earth_runestone", new BlockRunestone(Material.ROCK, Element.EARTH)); + registerBlock(registry, "sorcery_runestone", new BlockRunestone(Material.ROCK, Element.SORCERY)); + registerBlock(registry, "healing_runestone", new BlockRunestone(Material.ROCK, Element.HEALING)); + + registerBlock(registry, "fire_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.FIRE)); + registerBlock(registry, "ice_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.ICE)); + registerBlock(registry, "lightning_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.LIGHTNING)); + registerBlock(registry, "necromancy_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.NECROMANCY)); + registerBlock(registry, "earth_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.EARTH)); + registerBlock(registry, "healing_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.HEALING)); + registerBlock(registry, "sorcery_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.SORCERY)); registerBlock(registry, "gilded_wood", new BlockGildedWood()); diff --git a/src/main/java/electroblob/wizardry/registry/WizardryItems.java b/src/main/java/electroblob/wizardry/registry/WizardryItems.java index 33ce171b..b52121f1 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryItems.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryItems.java @@ -569,8 +569,14 @@ public final class WizardryItems { registerItemBlock(registry, WizardryBlocks.sorcery_crystal_block); registerItemBlock(registry, WizardryBlocks.healing_crystal_block); - registerMultiTexturedItemBlock(registry, WizardryBlocks.runestone, false, elements); - registerMultiTexturedItemBlock(registry, WizardryBlocks.runestone_pedestal, false, elements); + registerItemBlock(registry, WizardryBlocks.fire_runestone); + registerItemBlock(registry, WizardryBlocks.ice_runestone); + registerItemBlock(registry, WizardryBlocks.lightning_runestone); + registerItemBlock(registry, WizardryBlocks.necromancy_runestone); + registerItemBlock(registry, WizardryBlocks.earth_runestone); + registerItemBlock(registry, WizardryBlocks.sorcery_runestone); + registerItemBlock(registry, WizardryBlocks.healing_runestone); + registerMultiTexturedItemBlock(registry, WizardryBlocks.gilded_wood, true, woodTypes); registerItemBlock(registry, WizardryBlocks.oak_bookshelf); @@ -592,14 +598,14 @@ public final class WizardryItems { // Items - registerItem(registry, "magic_crystal", new ItemCrystal()); - registerItem(registry, "earth_crystal", new ItemCrystal()); - registerItem(registry, "fire_crystal", new ItemCrystal()); - registerItem(registry, "healing_crystal", new ItemCrystal()); - registerItem(registry, "ice_crystal", new ItemCrystal()); - registerItem(registry, "lightning_crystal", new ItemCrystal()); - registerItem(registry, "necromancy_crystal", new ItemCrystal()); - registerItem(registry, "sorcery_crystal", new ItemCrystal()); + registerItem(registry, "magic_crystal", new ItemCrystal(Element.MAGIC)); + registerItem(registry, "earth_crystal", new ItemCrystal(Element.EARTH)); + registerItem(registry, "fire_crystal", new ItemCrystal(Element.FIRE)); + registerItem(registry, "healing_crystal", new ItemCrystal(Element.HEALING)); + registerItem(registry, "ice_crystal", new ItemCrystal(Element.ICE)); + registerItem(registry, "lightning_crystal", new ItemCrystal(Element.LIGHTNING)); + registerItem(registry, "necromancy_crystal", new ItemCrystal(Element.NECROMANCY)); + registerItem(registry, "sorcery_crystal", new ItemCrystal(Element.SORCERY)); registerItem(registry, "crystal_shard", new Item().setCreativeTab(WizardryTabs.WIZARDRY)); registerItem(registry, "grand_crystal", new Item().setCreativeTab(WizardryTabs.WIZARDRY)); diff --git a/src/main/java/electroblob/wizardry/tileentity/TileEntityShrineCore.java b/src/main/java/electroblob/wizardry/tileentity/TileEntityShrineCore.java index 6bde7079..331ba887 100644 --- a/src/main/java/electroblob/wizardry/tileentity/TileEntityShrineCore.java +++ b/src/main/java/electroblob/wizardry/tileentity/TileEntityShrineCore.java @@ -1,7 +1,9 @@ package electroblob.wizardry.tileentity; import electroblob.wizardry.Wizardry; -import electroblob.wizardry.block.BlockPedestal; +import electroblob.wizardry.api.IElemental; +import electroblob.wizardry.block.BlockRunestonePedestal; +import electroblob.wizardry.constants.Element; import electroblob.wizardry.entity.living.EntityEvilWizard; import electroblob.wizardry.entity.living.EntityWizard; import electroblob.wizardry.packet.PacketConquerShrine; @@ -101,7 +103,8 @@ public class TileEntityShrineCore extends TileEntity implements ITickable { } wizard.setLocationAndAngles(x1, y1 + 0.5, z1, 0, 0); - wizard.setElement(world.getBlockState(pos).getValue(BlockPedestal.ELEMENT)); + wizard.setElement(world.getBlockState(pos).getBlock() instanceof IElemental + ? ((IElemental) world.getBlockState(pos).getBlock()).getElement() : Element.MAGIC); wizard.onInitialSpawn(world.getDifficultyForLocation(pos), null); wizard.hasStructure = true; @@ -144,9 +147,8 @@ public class TileEntityShrineCore extends TileEntity implements ITickable { WizardryPacketHandler.net.sendToAllAround(new PacketConquerShrine.Message(this.pos), new NetworkRegistry.TargetPoint(this.world.provider.getDimension(), x, y, z, 64)); - if(world.getBlockState(pos).getBlock() == WizardryBlocks.runestone_pedestal){ - world.setBlockState(pos, WizardryBlocks.runestone_pedestal.getDefaultState() - .withProperty(BlockPedestal.ELEMENT, world.getBlockState(pos).getValue(BlockPedestal.ELEMENT))); + if(world.getBlockState(pos).getBlock() instanceof BlockRunestonePedestal){ + world.setBlockState(pos, world.getBlockState(pos).getBlock().getDefaultState()); }else{ Wizardry.logger.warn("What's going on?! A shrine core is being conquered but the block at its position is not a runestone pedestal!"); } diff --git a/src/main/java/electroblob/wizardry/worldgen/WorldGenObelisk.java b/src/main/java/electroblob/wizardry/worldgen/WorldGenObelisk.java index 486e8606..acb7610c 100644 --- a/src/main/java/electroblob/wizardry/worldgen/WorldGenObelisk.java +++ b/src/main/java/electroblob/wizardry/worldgen/WorldGenObelisk.java @@ -5,6 +5,7 @@ import electroblob.wizardry.block.BlockRunestone; import electroblob.wizardry.constants.Element; import electroblob.wizardry.entity.living.EntityRemnant; import electroblob.wizardry.integration.antiqueatlas.WizardryAntiqueAtlasIntegration; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.MobSpawnerBaseLogic; @@ -17,6 +18,7 @@ import net.minecraft.world.World; import net.minecraft.world.gen.structure.template.ITemplateProcessor; import net.minecraft.world.gen.structure.template.PlacementSettings; import net.minecraft.world.gen.structure.template.Template; +import net.minecraftforge.fml.common.registry.ForgeRegistries; import org.apache.commons.lang3.ArrayUtils; import java.util.Map; @@ -58,9 +60,10 @@ public class WorldGenObelisk extends WorldGenSurfaceStructure { public void spawnStructure(Random random, World world, BlockPos origin, Template template, PlacementSettings settings, ResourceLocation structureFile){ final Element element = Element.values()[1 + random.nextInt(Element.values().length-1)]; + Block runeStone = ForgeRegistries.BLOCKS.getValue(new ResourceLocation(Wizardry.MODID, element.getName().toLowerCase() + "_runestone")); ITemplateProcessor processor = (w, p, i) -> i.blockState.getBlock() instanceof BlockRunestone ? new Template.BlockInfo( - i.pos, i.blockState.withProperty(BlockRunestone.ELEMENT, element), i.tileentityData) : i; + i.pos, runeStone.getDefaultState(), i.tileentityData) : i; template.addBlocksToWorld(world, origin, processor, settings, 2 | 16); diff --git a/src/main/java/electroblob/wizardry/worldgen/WorldGenShrine.java b/src/main/java/electroblob/wizardry/worldgen/WorldGenShrine.java index 7e9b4d5d..1b8170f6 100644 --- a/src/main/java/electroblob/wizardry/worldgen/WorldGenShrine.java +++ b/src/main/java/electroblob/wizardry/worldgen/WorldGenShrine.java @@ -1,13 +1,14 @@ package electroblob.wizardry.worldgen; import electroblob.wizardry.Wizardry; -import electroblob.wizardry.block.BlockPedestal; +import electroblob.wizardry.block.BlockRunestonePedestal; import electroblob.wizardry.block.BlockRunestone; import electroblob.wizardry.constants.Element; import electroblob.wizardry.integration.antiqueatlas.WizardryAntiqueAtlasIntegration; import electroblob.wizardry.registry.WizardryBlocks; import electroblob.wizardry.spell.ArcaneLock; import electroblob.wizardry.tileentity.TileEntityShrineCore; +import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; @@ -15,6 +16,7 @@ import net.minecraft.world.World; import net.minecraft.world.gen.structure.template.ITemplateProcessor; import net.minecraft.world.gen.structure.template.PlacementSettings; import net.minecraft.world.gen.structure.template.Template; +import net.minecraftforge.fml.common.registry.ForgeRegistries; import org.apache.commons.lang3.ArrayUtils; import java.util.Map; @@ -50,9 +52,10 @@ public class WorldGenShrine extends WorldGenSurfaceStructure { public void spawnStructure(Random random, World world, BlockPos origin, Template template, PlacementSettings settings, ResourceLocation structureFile){ final Element element = Element.values()[1 + random.nextInt(Element.values().length-1)]; + Block runeStone = ForgeRegistries.BLOCKS.getValue(new ResourceLocation(Wizardry.MODID, element.getName().toLowerCase() + "_runestone")); ITemplateProcessor processor = (w, p, i) -> i.blockState.getBlock() instanceof BlockRunestone ? new Template.BlockInfo( - i.pos, i.blockState.withProperty(BlockRunestone.ELEMENT, element), i.tileentityData) : i; + i.pos, runeStone.getDefaultState(), i.tileentityData) : i; template.addBlocksToWorld(world, origin, processor, settings, 2 | 16); @@ -65,8 +68,8 @@ public class WorldGenShrine extends WorldGenSurfaceStructure { if(entry.getValue().equals(CORE_DATA_BLOCK_TAG)){ // This bit could have been done with a template processor, but we also need to link the chest and lock it - world.setBlockState(entry.getKey(), WizardryBlocks.runestone_pedestal.getDefaultState() - .withProperty(BlockPedestal.ELEMENT, element).withProperty(BlockPedestal.NATURAL, true)); + world.setBlockState(entry.getKey(), ForgeRegistries.BLOCKS.getValue(new ResourceLocation(Wizardry.MODID, element.getName().toLowerCase() + + "_runestone_pedestal")).getDefaultState().withProperty(BlockRunestonePedestal.NATURAL, true)); TileEntity core = world.getTileEntity(entry.getKey()); TileEntity container = world.getTileEntity(entry.getKey().up()); diff --git a/src/main/resources/assets/ebwizardry/advancements/visit_shrine.json b/src/main/resources/assets/ebwizardry/advancements/visit_shrine.json index 01060fb9..6e1057fc 100644 --- a/src/main/resources/assets/ebwizardry/advancements/visit_shrine.json +++ b/src/main/resources/assets/ebwizardry/advancements/visit_shrine.json @@ -7,8 +7,7 @@ "translate": "advancement.ebwizardry:visit_shrine.desc" }, "icon": { - "item": "ebwizardry:runestone", - "data": 5 + "item": "ebwizardry:ice_runestone" } }, "parent": "ebwizardry:defeat_evil_wizard", diff --git a/src/main/resources/assets/ebwizardry/lang/de_de.lang b/src/main/resources/assets/ebwizardry/lang/de_de.lang index 6acf0181..b4faefb0 100644 --- a/src/main/resources/assets/ebwizardry/lang/de_de.lang +++ b/src/main/resources/assets/ebwizardry/lang/de_de.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Position %s, %s, %s in der dimens tile.ebwizardry\:transportation_stone.forget=Position %s, %s, %s in der dimension %s vergessen tile.ebwizardry\:transportation_stone.invalid=Du musst zuerst einen Kreis mit 8 Teleportsteinen bilden! tile.ebwizardry\:spectral_block.name=Spektralblock -tile.ebwizardry\:runestone.name=Runenstein -tile.ebwizardry\:runestone_pedestal.name=Runenstein Sockel +tile.ebwizardry\:fire_runestone.name=Runenstein +tile.ebwizardry\:ice_runestone.name=Runenstein +tile.ebwizardry\:lightning_runestone.name=Runenstein +tile.ebwizardry\:necromancy_runestone.name=Runenstein +tile.ebwizardry\:earth_runestone.name=Runenstein +tile.ebwizardry\:healing_runestone.name=Runenstein +tile.ebwizardry\:sorcery_runestone.name=Runenstein +tile.ebwizardry\:fire_runestone_pedestal.name=Runenstein Sockel +tile.ebwizardry\:ice_runestone_pedestal.name=Runenstein Sockel +tile.ebwizardry\:lightning_runestone_pedestal.name=Runenstein Sockel +tile.ebwizardry\:necromancy_runestone_pedestal.name=Runenstein Sockel +tile.ebwizardry\:earth_runestone_pedestal.name=Runenstein Sockel +tile.ebwizardry\:healing_runestone_pedestal.name=Runenstein Sockel +tile.ebwizardry\:sorcery_runestone_pedestal.name=Runenstein Sockel tile.ebwizardry\:thorns.name=Dornen tile.ebwizardry\:obsidian_crust.name=Obsidian Kruste tile.ebwizardry\:dry_frosted_ice.name=Gefrohrenes Trockeneis diff --git a/src/main/resources/assets/ebwizardry/lang/en_gb.lang b/src/main/resources/assets/ebwizardry/lang/en_gb.lang index 645da6fe..88a61ef5 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_gb.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_gb.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Remembered the location %s, %s, % tile.ebwizardry\:transportation_stone.forget=Forgot the location %s, %s, %s in dimension %s tile.ebwizardry\:transportation_stone.invalid=You must make a circle with 8 stones of transportation first! tile.ebwizardry\:spectral_block.name=Spectral Block -tile.ebwizardry\:runestone.name=Runestone -tile.ebwizardry\:runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:fire_runestone.name=Runestone +tile.ebwizardry\:ice_runestone.name=Runestone +tile.ebwizardry\:lightning_runestone.name=Runestone +tile.ebwizardry\:necromancy_runestone.name=Runestone +tile.ebwizardry\:earth_runestone.name=Runestone +tile.ebwizardry\:healing_runestone.name=Runestone +tile.ebwizardry\:sorcery_runestone.name=Runestone +tile.ebwizardry\:fire_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:ice_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:lightning_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:necromancy_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:earth_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:healing_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:sorcery_runestone_pedestal.name=Runestone Pedestal tile.ebwizardry\:thorns.name=Thorns tile.ebwizardry\:obsidian_crust.name=Obsidian Crust tile.ebwizardry\:dry_frosted_ice.name=Dry Frosted Ice diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index 2fd5f1f8..639a219a 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Remembered the location %s, %s, % tile.ebwizardry\:transportation_stone.forget=Forgot the location %s, %s, %s in dimension %s tile.ebwizardry\:transportation_stone.invalid=You must make a circle with 8 stones of transportation first! tile.ebwizardry\:spectral_block.name=Spectral Block -tile.ebwizardry\:runestone.name=Runestone -tile.ebwizardry\:runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:fire_runestone.name=Runestone +tile.ebwizardry\:ice_runestone.name=Runestone +tile.ebwizardry\:lightning_runestone.name=Runestone +tile.ebwizardry\:necromancy_runestone.name=Runestone +tile.ebwizardry\:earth_runestone.name=Runestone +tile.ebwizardry\:healing_runestone.name=Runestone +tile.ebwizardry\:sorcery_runestone.name=Runestone +tile.ebwizardry\:fire_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:ice_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:lightning_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:necromancy_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:earth_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:healing_runestone_pedestal.name=Runestone Pedestal +tile.ebwizardry\:sorcery_runestone_pedestal.name=Runestone Pedestal tile.ebwizardry\:thorns.name=Thorns tile.ebwizardry\:obsidian_crust.name=Obsidian Crust tile.ebwizardry\:dry_frosted_ice.name=Dry Frosted Ice diff --git a/src/main/resources/assets/ebwizardry/lang/fr_fr.lang b/src/main/resources/assets/ebwizardry/lang/fr_fr.lang index 98a4c6b5..32acf336 100644 --- a/src/main/resources/assets/ebwizardry/lang/fr_fr.lang +++ b/src/main/resources/assets/ebwizardry/lang/fr_fr.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=La position %s, %s, %s a été ma tile.ebwizardry\:transportation_stone.forget=La position %s, %s, %s a été effacée dans la dimension %s tile.ebwizardry\:transportation_stone.invalid=Vous devez d'abord créer un cercle avec 8 pierres de téléportation! tile.ebwizardry\:spectral_block.name=Bloc spectral -tile.ebwizardry\:runestone.name=Pierre runique -tile.ebwizardry\:runestone_pedestal.name=Piédestal runique +tile.ebwizardry\:fire_runestone.name=Pierre runique +tile.ebwizardry\:ice_runestone.name=Pierre runique +tile.ebwizardry\:lightning_runestone.name=Pierre runique +tile.ebwizardry\:necromancy_runestone.name=Pierre runique +tile.ebwizardry\:earth_runestone.name=Pierre runique +tile.ebwizardry\:healing_runestone.name=Pierre runique +tile.ebwizardry\:sorcery_runestone.name=Pierre runique +tile.ebwizardry\:fire_runestone_pedestal.name=Piédestal runique +tile.ebwizardry\:ice_runestone_pedestal.name=Piédestal runique +tile.ebwizardry\:lightning_runestone_pedestal.name=Piédestal runique +tile.ebwizardry\:necromancy_runestone_pedestal.name=Piédestal runique +tile.ebwizardry\:earth_runestone_pedestal.name=Piédestal runique +tile.ebwizardry\:healing_runestone_pedestal.name=Piédestal runique +tile.ebwizardry\:sorcery_runestone_pedestal.name=Piédestal runique tile.ebwizardry\:thorns.name=Épines tile.ebwizardry\:obsidian_crust.name=Croûte d'obsidienne tile.ebwizardry\:dry_frosted_ice.name=Glace dépolie diff --git a/src/main/resources/assets/ebwizardry/lang/hu_hu.lang b/src/main/resources/assets/ebwizardry/lang/hu_hu.lang index 9cf76e28..eb58ef26 100644 --- a/src/main/resources/assets/ebwizardry/lang/hu_hu.lang +++ b/src/main/resources/assets/ebwizardry/lang/hu_hu.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=egjegyezve a hely: %s, %s, %s, %s tile.ebwizardry\:transportation_stone.forget=Elfelejtve a hely: %s, %s, %s, %s dimenzióban tile.ebwizardry\:transportation_stone.invalid=Előbb egy kört kell építened 8 Transzportáció Kövéből! tile.ebwizardry\:spectral_block.name=Spektrálblokk -tile.ebwizardry\:runestone.name=Rúnakő -tile.ebwizardry\:runestone_pedestal.name=Rúnakő Pedesztál +tile.ebwizardry\:fire_runestone.name=Rúnakő +tile.ebwizardry\:ice_runestone.name=Rúnakő +tile.ebwizardry\:lightning_runestone.name=Rúnakő +tile.ebwizardry\:necromancy_runestone.name=Rúnakő +tile.ebwizardry\:earth_runestone.name=Rúnakő +tile.ebwizardry\:healing_runestone.name=Rúnakő +tile.ebwizardry\:sorcery_runestone.name=Rúnakő +tile.ebwizardry\:fire_runestone_pedestal.name=Rúnakő Pedesztál +tile.ebwizardry\:ice_runestone_pedestal.name=Rúnakő Pedesztál +tile.ebwizardry\:lightning_runestone_pedestal.name=Rúnakő Pedesztál +tile.ebwizardry\:necromancy_runestone_pedestal.name=Rúnakő Pedesztál +tile.ebwizardry\:earth_runestone_pedestal.name=Rúnakő Pedesztál +tile.ebwizardry\:healing_runestone_pedestal.name=Rúnakő Pedesztál +tile.ebwizardry\:sorcery_runestone_pedestal.name=Rúnakő Pedesztál tile.ebwizardry\:thorns.name=Tövisek tile.ebwizardry\:obsidian_crust.name=Obszidián Kéreg tile.ebwizardry\:dry_frosted_ice.name=Száraz Fagyott Jég diff --git a/src/main/resources/assets/ebwizardry/lang/ko_kr.lang b/src/main/resources/assets/ebwizardry/lang/ko_kr.lang index 974970c9..1efc490d 100644 --- a/src/main/resources/assets/ebwizardry/lang/ko_kr.lang +++ b/src/main/resources/assets/ebwizardry/lang/ko_kr.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=%s, %s, %s의 %s의 위치를 지 tile.ebwizardry\:transportation_stone.forget=%s, %s, %s의 %s의 위치를 지웠습니다 tile.ebwizardry\:transportation_stone.invalid=먼저 전이의 돌 8개로 전이진을 만들어야 합니다! tile.ebwizardry\:spectral_block.name=허상 블록 -tile.ebwizardry\:runestone.name=룬스톤 -tile.ebwizardry\:runestone_pedestal.name=룬스톤 초석 +tile.ebwizardry\:fire_runestone.name=룬스톤 +tile.ebwizardry\:ice_runestone.name=룬스톤 +tile.ebwizardry\:lightning_runestone.name=룬스톤 +tile.ebwizardry\:necromancy_runestone.name=룬스톤 +tile.ebwizardry\:earth_runestone.name=룬스톤 +tile.ebwizardry\:healing_runestone.name=룬스톤 +tile.ebwizardry\:sorcery_runestone.name=룬스톤 +tile.ebwizardry\:fire_runestone_pedestal.name=룬스톤 초석 +tile.ebwizardry\:ice_runestone_pedestal.name=룬스톤 초석 +tile.ebwizardry\:lightning_runestone_pedestal.name=룬스톤 초석 +tile.ebwizardry\:necromancy_runestone_pedestal.name=룬스톤 초석 +tile.ebwizardry\:earth_runestone_pedestal.name=룬스톤 초석 +tile.ebwizardry\:healing_runestone_pedestal.name=룬스톤 초석 +tile.ebwizardry\:sorcery_runestone_pedestal.name=룬스톤 초석 tile.ebwizardry\:thorns.name=가시 tile.ebwizardry\:obsidian_crust.name=흑요석 껍질 tile.ebwizardry\:dry_frosted_ice.name=마른 반투명 얼음 diff --git a/src/main/resources/assets/ebwizardry/lang/pl_pl.lang b/src/main/resources/assets/ebwizardry/lang/pl_pl.lang index 7611a17a..cad9d3cb 100644 --- a/src/main/resources/assets/ebwizardry/lang/pl_pl.lang +++ b/src/main/resources/assets/ebwizardry/lang/pl_pl.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Zapamiętano lokalizację %s, %s, tile.ebwizardry\:transportation_stone.forget=Zapomniano lokalizację %s, %s, %s w wymiarze %s tile.ebwizardry\:transportation_stone.invalid=Najpierw musisz zrobić krąg z 8 kamieniami transportu! tile.ebwizardry\:spectral_block.name=Blok Spektralny -tile.ebwizardry\:runestone.name=Kamień Runiczny -tile.ebwizardry\:runestone_pedestal.name=Pilar Runicznego Kamienia +tile.ebwizardry\:fire_runestone.name=Kamień Runiczny +tile.ebwizardry\:ice_runestone.name=Kamień Runiczny +tile.ebwizardry\:lightning_runestone.name=Kamień Runiczny +tile.ebwizardry\:necromancy_runestone.name=Kamień Runiczny +tile.ebwizardry\:earth_runestone.name=Kamień Runiczny +tile.ebwizardry\:healing_runestone.name=Kamień Runiczny +tile.ebwizardry\:sorcery_runestone.name=Kamień Runiczny +tile.ebwizardry\:fire_runestone_pedestal.name=Pilar Runicznego Kamienia +tile.ebwizardry\:ice_runestone_pedestal.name=Pilar Runicznego Kamienia +tile.ebwizardry\:lightning_runestone_pedestal.name=Pilar Runicznego Kamienia +tile.ebwizardry\:necromancy_runestone_pedestal.name=Pilar Runicznego Kamienia +tile.ebwizardry\:earth_runestone_pedestal.name=Pilar Runicznego Kamienia +tile.ebwizardry\:healing_runestone_pedestal.name=Pilar Runicznego Kamienia +tile.ebwizardry\:sorcery_runestone_pedestal.name=Pilar Runicznego Kamienia tile.ebwizardry\:thorns.name=Ciernie tile.ebwizardry\:obsidian_crust.name=Obsydianowa Skorupa tile.ebwizardry\:dry_frosted_ice.name=Zaschły Lód diff --git a/src/main/resources/assets/ebwizardry/lang/ru_ru.lang b/src/main/resources/assets/ebwizardry/lang/ru_ru.lang index 9a572b25..5711e846 100644 --- a/src/main/resources/assets/ebwizardry/lang/ru_ru.lang +++ b/src/main/resources/assets/ebwizardry/lang/ru_ru.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Запомнил местопол tile.ebwizardry\:transportation_stone.forget=Забыл местоположение %s, %s, %s в измерении %s tile.ebwizardry\:transportation_stone.invalid=Первое, что Вы должны сделать, это круг с 8-ю камнями перемещения! tile.ebwizardry\:spectral_block.name=Спектральный блок -tile.ebwizardry\:runestone.name=Рунный камень -tile.ebwizardry\:runestone_pedestal.name=Пьедестал из рунного камня +tile.ebwizardry\:fire_runestone.name=Рунный камень +tile.ebwizardry\:ice_runestone.name=Рунный камень +tile.ebwizardry\:lightning_runestone.name=Рунный камень +tile.ebwizardry\:necromancy_runestone.name=Рунный камень +tile.ebwizardry\:earth_runestone.name=Рунный камень +tile.ebwizardry\:healing_runestone.name=Рунный камень +tile.ebwizardry\:sorcery_runestone.name=Рунный камень +tile.ebwizardry\:fire_runestone_pedestal.name=Пьедестал из рунного камня +tile.ebwizardry\:ice_runestone_pedestal.name=Пьедестал из рунного камня +tile.ebwizardry\:lightning_runestone_pedestal.name=Пьедестал из рунного камня +tile.ebwizardry\:necromancy_runestone_pedestal.name=Пьедестал из рунного камня +tile.ebwizardry\:earth_runestone_pedestal.name=Пьедестал из рунного камня +tile.ebwizardry\:healing_runestone_pedestal.name=Пьедестал из рунного камня +tile.ebwizardry\:sorcery_runestone_pedestal.name=Пьедестал из рунного камня tile.ebwizardry\:thorns.name=Шипы tile.ebwizardry\:obsidian_crust.name=Обсидиановая кора tile.ebwizardry\:dry_frosted_ice.name=Сухой матовый лёд diff --git a/src/main/resources/assets/ebwizardry/lang/zh_cn.lang b/src/main/resources/assets/ebwizardry/lang/zh_cn.lang index c32ad8c1..a0ecfbd1 100644 --- a/src/main/resources/assets/ebwizardry/lang/zh_cn.lang +++ b/src/main/resources/assets/ebwizardry/lang/zh_cn.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=你记住了位于 %4$s 维度 %1 tile.ebwizardry\:transportation_stone.forget=你遗忘了位于 %4$s 维度 %1$s,%2$s,%3$s的传送坐标 tile.ebwizardry\:transportation_stone.invalid=你必须用8个传送石围成一个圈! tile.ebwizardry\:spectral_block.name=幽冥方块 -tile.ebwizardry\:runestone.name=符石 -tile.ebwizardry\:runestone_pedestal.name=符石基座 +tile.ebwizardry\:fire_runestone.name=符石 +tile.ebwizardry\:ice_runestone.name=符石 +tile.ebwizardry\:lightning_runestone.name=符石 +tile.ebwizardry\:necromancy_runestone.name=符石 +tile.ebwizardry\:earth_runestone.name=符石 +tile.ebwizardry\:healing_runestone.name=符石 +tile.ebwizardry\:sorcery_runestone.name=符石 +tile.ebwizardry\:fire_runestone_pedestal.name=符石基座 +tile.ebwizardry\:ice_runestone_pedestal.name=符石基座 +tile.ebwizardry\:lightning_runestone_pedestal.name=符石基座 +tile.ebwizardry\:necromancy_runestone_pedestal.name=符石基座 +tile.ebwizardry\:earth_runestone_pedestal.name=符石基座 +tile.ebwizardry\:healing_runestone_pedestal.name=符石基座 +tile.ebwizardry\:sorcery_runestone_pedestal.name=符石基座 tile.ebwizardry\:thorns.name=荆棘 tile.ebwizardry\:obsidian_crust.name=黑曜石层 tile.ebwizardry\:dry_frosted_ice.name=干燥霜冰 diff --git a/src/main/resources/assets/ebwizardry/lang/zh_tw.lang b/src/main/resources/assets/ebwizardry/lang/zh_tw.lang index 59873014..e3109033 100644 --- a/src/main/resources/assets/ebwizardry/lang/zh_tw.lang +++ b/src/main/resources/assets/ebwizardry/lang/zh_tw.lang @@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=記憶座標位置 %s, %s, %s 於 tile.ebwizardry\:transportation_stone.forget=消除記憶座標位置 %s, %s, %s 於世界: %s tile.ebwizardry\:transportation_stone.invalid=你必須先用8個傳送石圍成一圈! tile.ebwizardry\:spectral_block.name=具現化方塊 -tile.ebwizardry\:runestone.name=符文石 -tile.ebwizardry\:runestone_pedestal.name=符文石座 +tile.ebwizardry\:fire_runestone.name=符文石 +tile.ebwizardry\:ice_runestone.name=符文石 +tile.ebwizardry\:lightning_runestone.name=符文石 +tile.ebwizardry\:necromancy_runestone.name=符文石 +tile.ebwizardry\:earth_runestone.name=符文石 +tile.ebwizardry\:healing_runestone.name=符文石 +tile.ebwizardry\:sorcery_runestone.name=符文石 +tile.ebwizardry\:fire_runestone_pedestal.name=符文石座 +tile.ebwizardry\:ice_runestone_pedestal.name=符文石座 +tile.ebwizardry\:lightning_runestone_pedestal.name=符文石座 +tile.ebwizardry\:necromancy_runestone_pedestal.name=符文石座 +tile.ebwizardry\:earth_runestone_pedestal.name=符文石座 +tile.ebwizardry\:healing_runestone_pedestal.name=符文石座 +tile.ebwizardry\:sorcery_runestone_pedestal.name=符文石座 tile.ebwizardry\:thorns.name=荊棘 tile.ebwizardry\:obsidian_crust.name=黑曜石殼 tile.ebwizardry\:dry_frosted_ice.name=乾的結凍冰 diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_ice.json b/src/main/resources/assets/ebwizardry/recipes/earth_runestone.json similarity index 71% rename from src/main/resources/assets/ebwizardry/recipes/runestone_ice.json rename to src/main/resources/assets/ebwizardry/recipes/earth_runestone.json index cce3b6de..bac8fbef 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_ice.json +++ b/src/main/resources/assets/ebwizardry/recipes/earth_runestone.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 2 + "item": "ebwizardry:earth_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone", - "data": 2, + "item": "ebwizardry:earth_runestone", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_earth.json b/src/main/resources/assets/ebwizardry/recipes/earth_runestone_pedestal.json similarity index 70% rename from src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_earth.json rename to src/main/resources/assets/ebwizardry/recipes/earth_runestone_pedestal.json index 740650c9..7992ed84 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_earth.json +++ b/src/main/resources/assets/ebwizardry/recipes/earth_runestone_pedestal.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 5 + "item": "ebwizardry:earth_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone_pedestal", - "data": 5, + "item": "ebwizardry:earth_runestone_pedestal", "count": 2 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_earth.json b/src/main/resources/assets/ebwizardry/recipes/fire_runestone.json similarity index 71% rename from src/main/resources/assets/ebwizardry/recipes/runestone_earth.json rename to src/main/resources/assets/ebwizardry/recipes/fire_runestone.json index e9c6525d..b1cc6752 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_earth.json +++ b/src/main/resources/assets/ebwizardry/recipes/fire_runestone.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 5 + "item": "ebwizardry:fire_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone", - "data": 5, + "item": "ebwizardry:fire_runestone", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_fire.json b/src/main/resources/assets/ebwizardry/recipes/fire_runestone_pedestal.json similarity index 70% rename from src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_fire.json rename to src/main/resources/assets/ebwizardry/recipes/fire_runestone_pedestal.json index 966acb1f..5979d9c6 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_fire.json +++ b/src/main/resources/assets/ebwizardry/recipes/fire_runestone_pedestal.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 1 + "item": "ebwizardry:fire_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone_pedestal", - "data": 1, + "item": "ebwizardry:fire_runestone_pedestal", "count": 2 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_fire.json b/src/main/resources/assets/ebwizardry/recipes/healing_runestone.json similarity index 71% rename from src/main/resources/assets/ebwizardry/recipes/runestone_fire.json rename to src/main/resources/assets/ebwizardry/recipes/healing_runestone.json index bbad7ccb..6c105b89 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_fire.json +++ b/src/main/resources/assets/ebwizardry/recipes/healing_runestone.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 1 + "item": "ebwizardry:healing_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone", - "data": 1, + "item": "ebwizardry:healing_runestone", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_healing.json b/src/main/resources/assets/ebwizardry/recipes/healing_runestone_pedestal.json similarity index 70% rename from src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_healing.json rename to src/main/resources/assets/ebwizardry/recipes/healing_runestone_pedestal.json index d61a20a3..327941a9 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_healing.json +++ b/src/main/resources/assets/ebwizardry/recipes/healing_runestone_pedestal.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 7 + "item": "ebwizardry:healing_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone_pedestal", - "data": 7, + "item": "ebwizardry:healing_runestone_pedestal", "count": 2 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_healing.json b/src/main/resources/assets/ebwizardry/recipes/ice_runestone.json similarity index 71% rename from src/main/resources/assets/ebwizardry/recipes/runestone_healing.json rename to src/main/resources/assets/ebwizardry/recipes/ice_runestone.json index 91a51a69..e6f47af5 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_healing.json +++ b/src/main/resources/assets/ebwizardry/recipes/ice_runestone.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 7 + "item": "ebwizardry:ice_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone", - "data": 7, + "item": "ebwizardry:ice_runestone", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_ice.json b/src/main/resources/assets/ebwizardry/recipes/ice_runestone_pedestal.json similarity index 70% rename from src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_ice.json rename to src/main/resources/assets/ebwizardry/recipes/ice_runestone_pedestal.json index c9bb2a29..9240f007 100644 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_ice.json +++ b/src/main/resources/assets/ebwizardry/recipes/ice_runestone_pedestal.json @@ -7,8 +7,7 @@ ], "key": { "y": { - "item": "ebwizardry:magic_crystal", - "data": 2 + "item": "ebwizardry:ice_crystal" }, "z": { "type": "forge:ore_dict", @@ -16,8 +15,7 @@ } }, "result": { - "item": "ebwizardry:runestone_pedestal", - "data": 2, + "item": "ebwizardry:ice_runestone_pedestal", "count": 2 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/lightning_runestone.json b/src/main/resources/assets/ebwizardry/recipes/lightning_runestone.json new file mode 100644 index 00000000..b5ca8a34 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/recipes/lightning_runestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "zzz", + "zyz", + "zzz" + ], + "key": { + "y": { + "item": "ebwizardry:lightning_crystal" + }, + "z": { + "type": "forge:ore_dict", + "ore": "stone" + } + }, + "result": { + "item": "ebwizardry:lightning_runestone", + "count": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/lightning_runestone_pedestal.json b/src/main/resources/assets/ebwizardry/recipes/lightning_runestone_pedestal.json new file mode 100644 index 00000000..6cb0023e --- /dev/null +++ b/src/main/resources/assets/ebwizardry/recipes/lightning_runestone_pedestal.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "zzz", + "yyy", + "zyz" + ], + "key": { + "y": { + "item": "ebwizardry:lightning_crystal" + }, + "z": { + "type": "forge:ore_dict", + "ore": "stone" + } + }, + "result": { + "item": "ebwizardry:lightning_runestone_pedestal", + "count": 2 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/necromancy_runestone.json b/src/main/resources/assets/ebwizardry/recipes/necromancy_runestone.json new file mode 100644 index 00000000..723f26ac --- /dev/null +++ b/src/main/resources/assets/ebwizardry/recipes/necromancy_runestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "zzz", + "zyz", + "zzz" + ], + "key": { + "y": { + "item": "ebwizardry:necromancy_crystal" + }, + "z": { + "type": "forge:ore_dict", + "ore": "stone" + } + }, + "result": { + "item": "ebwizardry:necromancy_runestone", + "count": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/necromancy_runestone_pedestal.json b/src/main/resources/assets/ebwizardry/recipes/necromancy_runestone_pedestal.json new file mode 100644 index 00000000..69921cc1 --- /dev/null +++ b/src/main/resources/assets/ebwizardry/recipes/necromancy_runestone_pedestal.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "zzz", + "yyy", + "zyz" + ], + "key": { + "y": { + "item": "ebwizardry:necromancy_crystal" + }, + "z": { + "type": "forge:ore_dict", + "ore": "stone" + } + }, + "result": { + "item": "ebwizardry:necromancy_runestone_pedestal", + "count": 2 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_lightning.json b/src/main/resources/assets/ebwizardry/recipes/runestone_lightning.json deleted file mode 100644 index d18ed59c..00000000 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_lightning.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "zzz", - "zyz", - "zzz" - ], - "key": { - "y": { - "item": "ebwizardry:magic_crystal", - "data": 3 - }, - "z": { - "type": "forge:ore_dict", - "ore": "stone" - } - }, - "result": { - "item": "ebwizardry:runestone", - "data": 3, - "count": 8 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_necromancy.json b/src/main/resources/assets/ebwizardry/recipes/runestone_necromancy.json deleted file mode 100644 index 2c90d6e1..00000000 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_necromancy.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "zzz", - "zyz", - "zzz" - ], - "key": { - "y": { - "item": "ebwizardry:magic_crystal", - "data": 4 - }, - "z": { - "type": "forge:ore_dict", - "ore": "stone" - } - }, - "result": { - "item": "ebwizardry:runestone", - "data": 4, - "count": 8 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_lightning.json b/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_lightning.json deleted file mode 100644 index f04d08ae..00000000 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_lightning.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "zzz", - "yyy", - "zyz" - ], - "key": { - "y": { - "item": "ebwizardry:magic_crystal", - "data": 3 - }, - "z": { - "type": "forge:ore_dict", - "ore": "stone" - } - }, - "result": { - "item": "ebwizardry:runestone_pedestal", - "data": 3, - "count": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_necromancy.json b/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_necromancy.json deleted file mode 100644 index 5b55f0cb..00000000 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_necromancy.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "zzz", - "yyy", - "zyz" - ], - "key": { - "y": { - "item": "ebwizardry:magic_crystal", - "data": 4 - }, - "z": { - "type": "forge:ore_dict", - "ore": "stone" - } - }, - "result": { - "item": "ebwizardry:runestone_pedestal", - "data": 4, - "count": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_sorcery.json b/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_sorcery.json deleted file mode 100644 index 3de61998..00000000 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_pedestal_sorcery.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "zzz", - "yyy", - "zyz" - ], - "key": { - "y": { - "item": "ebwizardry:magic_crystal", - "data": 6 - }, - "z": { - "type": "forge:ore_dict", - "ore": "stone" - } - }, - "result": { - "item": "ebwizardry:runestone_pedestal", - "data": 6, - "count": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/runestone_sorcery.json b/src/main/resources/assets/ebwizardry/recipes/runestone_sorcery.json deleted file mode 100644 index b32ec980..00000000 --- a/src/main/resources/assets/ebwizardry/recipes/runestone_sorcery.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "zzz", - "zyz", - "zzz" - ], - "key": { - "y": { - "item": "ebwizardry:magic_crystal", - "data": 6 - }, - "z": { - "type": "forge:ore_dict", - "ore": "stone" - } - }, - "result": { - "item": "ebwizardry:runestone", - "data": 6, - "count": 8 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/sorcery_runestone.json b/src/main/resources/assets/ebwizardry/recipes/sorcery_runestone.json new file mode 100644 index 00000000..b4c8e14f --- /dev/null +++ b/src/main/resources/assets/ebwizardry/recipes/sorcery_runestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "zzz", + "zyz", + "zzz" + ], + "key": { + "y": { + "item": "ebwizardry:sorcery_crystal" + }, + "z": { + "type": "forge:ore_dict", + "ore": "stone" + } + }, + "result": { + "item": "ebwizardry:sorcery_runestone", + "count": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/sorcery_runestone_pedestal.json b/src/main/resources/assets/ebwizardry/recipes/sorcery_runestone_pedestal.json new file mode 100644 index 00000000..6ea1eb9b --- /dev/null +++ b/src/main/resources/assets/ebwizardry/recipes/sorcery_runestone_pedestal.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "zzz", + "yyy", + "zyz" + ], + "key": { + "y": { + "item": "ebwizardry:sorcery_crystal" + }, + "z": { + "type": "forge:ore_dict", + "ore": "stone" + } + }, + "result": { + "item": "ebwizardry:sorcery_runestone_pedestal", + "count": 2 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/structures/obelisk_0.nbt b/src/main/resources/assets/ebwizardry/structures/obelisk_0.nbt index 97ba3e49c864812440bb6ee7bb86572f18ef8abe..4bfd98211c374d7f8b8bfdc329f7d88bb273abf3 100644 GIT binary patch delta 554 zcmX@avV&!UWc^wD6W5fS8_PJEROT|7I|rCVa(P+ZcFDPPJ->%drYs2yBhWC(+|w5-C4u4<@cwj zp9~8ZoQq^I=1Mrm_`67%@55(JHNJ!eS3kY{A(3G@zpwx0o`=adq}AG8#LQaX#A*IM z(am~@RZRNhsnVs}@1L@i%C=j{Bz|bm5`k{6bJLxYR{p$VwmvxF`<3KAvEB6<7xfZ% zxt!L{v+OzBm9O$j#Lau*)=TvV)a=#D1#1M1SDM`0Dy!R-uqR0RO2kFC8ID!knw@^$ zI;Uw;9q~c;m43W^FxOg*wE>$1eHt#lsx!5TUd7dT_nyr?lh6Kly;iQj=41SqXKSmm zqVBmZ8*abepC_Jd94@W5C3sRzr{ATk&ywP$lfUlTlHI%iwb&gmd(%r_zdt|bR{z{@ zbwG9`r=|9l`7az~7dy&6R`%H+smeYhFCu$wC4C3X zzR2zR@o=uB+t#u*?+@!e57d7<;d}LwnTGAk{r9KNd#HQzk4x@}Um+c`&Tjjb#qNK- Scir-TjI+|Zwgz%AFaQ8!kPM;# delta 564 zcmdnNa)@PuWc`at^%vH9$UfC51~KS_RitdDh-omo-}@ z!9#6+b-&HNB}EN9GsN^~FgX18zH8hpvQ*G*0o!#W3DK#u>|Wpb_j88hrjT9yH@2~y z+wzcYcSo%nSHdF(wkqBJzWzqL`R>P$yX>9Up2+w)^O{(|{9vB?FP6;D-kg4#ydZkI z{`CG%=F)RaGXfcm`68xg7dFiIH!Ngeo;%I|_;H8hKTB$S-t)>I{+C?jk&+m6;@uP@ z{yi%M^fp9vi~FhO?(-F2(fe-+*P50(KSeRsIoF*YP5E(V%VEt8*44*lbie&u=6bs& zv$t*fodSv1s`1`SMBKJ21l6e9P{4lcIc8`OXimI>uv_@ zGvbz>bvL}G`ODMS>9d=r_-aqdVHHj&E88D6@9HX-1oP|s*K_|T+Xq*#H}kpum!-GW zSdsUf=Zv#gS4SU>(7!T^yU1(O^%p9!xq4+=FSdmRZ&vzqH|F5nFUi_>_tbfR+MKNt2_61=Y@uJ8`@9k)0;(-|vf_{dnxuAD2ttd~R^% ZO1}P}9o=VMec1PUyhoH+T^0ue0|3jZ3oQTu diff --git a/src/main/resources/assets/ebwizardry/structures/obelisk_1.nbt b/src/main/resources/assets/ebwizardry/structures/obelisk_1.nbt index 6fd0cde26cce23fa36df49e30b782891ebf1b306..de9026c0eaae4e450c545a2a94946e1ba5948b73 100644 GIT binary patch literal 603 zcmb2|=3sz;-f6!1QicL;>3iAAR^IwDEB>NJm(teh8bOzWU5YzasZ2k0nlFJhCq+82 z=#_u}Uip?hhJMv8C+eQf{aRzd!&vknY+n)=!`pO;d6p?F=9CEOwoG;2KjZbsZrc<>T3;j}h*1hO3r%(TZFZKq`9-$A7PQ2ez#=mHW@|>iN)7BrFlJ+^- z#`*Od^VkP5x2E&V(0Q1mDB9OMW5+KG=DO$Urw=}PFBZ6|bcXJQ&L9g$=G`LMt!mBx zoTL`>ez>^)VlGqslaS2j?PpcIg(P&oO7Tv!Q@FFJ-t6@3uBo#tFaN32Gt1E1KfhAk zt$KUV>L>%&clY0IeD>36I>(=9zaH+oSD$tN%K6L3t@bDWmRxn=S&-!%sh4Kq{}1W1 zl`XsOG;6_F;~}=O1dT7a}W*|GYCh>hf#Jtf`;2t{45)C3jDHuZwWk6>q;IH`IlG+?wy4eLr{By3pYM zQ0JUlIh|#?pMJ`6UbSdhZ@+csqu%L1dyoCP^?l+EqkWUs|JiE)Rwg_;pZTDvm=_lV F0{}$KBP{>` literal 615 zcmb2|=3sz;-f8EvZySglpP#F`(RSOr4c`B|rW$hHUMg~HuGckZ$y|NszIdU)Xs$_4 z*XDg&?*FOZqmG{&4%1Y?R!eSmcqC7v+1D;s%L_^HflUvA|{kR>wNC+xlFqY%TFJC@?I=(OX-Yj8I>n>+dCsa_PWeH zv_mXPn>XiIah2>r_Kg#~9+#F+b`|sq%W9VL78gjnaQ1G&vYOoK=S+65{bBs-bAI}{ z*06JH12&2JH0)fyJHIk)wNPVh?7i4+ulfH@-u3&-zO(D&>sr*d%$y)59(Ch+_x^t( z!ka^+^|pjh+T*7GGP(GdlyvgfsVGeIng5r+y~*xlRBP1fpcAeO|G88@ zlHh$LA)ipD-G4M4DSMo< zFV<^sl=&3BHf%*L>oS9bT-o0;wC;$0jLp5bIp*H~ O8LacJG9+^`FaQAGX&`j~ diff --git a/src/main/resources/assets/ebwizardry/structures/obelisk_2.nbt b/src/main/resources/assets/ebwizardry/structures/obelisk_2.nbt index 0b2ec08ffd6225bf4f89dc2b59be49d66d450d63..4a7a06c811fdcce991b880bcc9537cc6111b0131 100644 GIT binary patch literal 590 zcmb2|=3sz;-f52cw+uv%#|trYUcMIlTXWY}gUsC_Q*X`Hy5?-Ub*~R!WkcwOiMdB! zWXkV7@5!UX`bJ%``S0idN6*(E=V9bZaNCo_#_%tA$F>HUrJ`XA7*|;Tej3voe`Z2m zjjlqp)?@V?<>q-C?<83#&-YZCVba97Ui1Q|;e*etB~Cm)%r<-znCxbt7t!L^QFyWY z0;i$fqz+r#qd%nPB~9W`>%EdF=%e5C(%qn$L#=;Bf49k_nz>1rIM|}rPVnn!oW}jK zMdE$$gFB%bHNTSoLAzBU)joLoEWK25`yQ7kQ}fcO#mBn14)FxtX7hcjZM}Hq(Z6%@1L}YOYYob9&1{|2 zo50pH@7>0SH=RN`-aPyDaM#QFPySxzmy;heUjKV%$~J*Zk3zV2@BH;V%+SDi>oX^7 z)sx~cRAO__m2Wi+TYs!<=|}(C-mRDXdrSWQ-MR7K%*$F=y~3RQyuX@T1{_}!eEbW? z=Kr70@EP1az4Y{f#+X>O-h>0ig6D-#i7vieYbkU3tNrH9zV~iC`?N`+|D$D8_q%-d z#cySIzP)QNEbLglDtywK^(vDVwttV(4Ycl`^r)pjQ@(L+rp%u|?`FO{m-RMcetYh@ z#c{Wkp6Z3bxt73k%?Opj)P6h@5=Gr2V literal 601 zcmb2|=3sz;-f52cvkgR!%Rf*#u%)y;_Lt_iuLhaBL#E!EyJ}5)R#x>)p9;@4O|m!p zBC2k=&zCju%oO_VDR|`1z5fS4-=86)z`W=Nw;IEPx|z0V6O^v|7>6+2K3Evod2{or zv-8(Ws%S5aagyiknX*i3cTcSvSHdF(wmH+>j~{PX{ruub!v}ry(!U!PG9)*%y!as@ zy_i8({;?9*jLX42uODiHR6EED9q3`2QOID-nQ*D$-;ECDYu7c^_!1Ue{`B&P#0!i0 zef@>^KG^Q=?_`#cR&h9f{DuVUi#@4D9u*6NPvo^;_`YR@z`2bXH@K%Rz4K>=ZeZru zNRbG`uXCKvcv-BLJU(+t@!dGT#yhjVe+g`UBdz<2dzoogRFH4tqOdIwHG(Cs`*ZUUX>ZNd3RS{K;7?uN2g3UG$plZ zdlRQXaXG)Pe^#KBxpUsjtw-!{=dPJtm$P*HbN{tp&#wtnytXH$Ca`1w#YQ`~X1inV zGyYCbFKUp?({pCyyCP*&$iUpky+b~Jt-#!eryoYFy?*ALS!VX^?(Q=cJz*4 Jo$ELm7yuoSBh>%^ diff --git a/src/main/resources/assets/ebwizardry/structures/obelisk_3.nbt b/src/main/resources/assets/ebwizardry/structures/obelisk_3.nbt index 8da474085603e27fb68b055f66a7ff07417a03fc..6fe68ceb2ca156f5209d8e66a6ecdfc36aea6b50 100644 GIT binary patch literal 598 zcmb2|=3sz;-f6!1QicL;$FrGthvZhBU7s=4Yw9g;5zUvHUd0`&mQ6o(nlFJhCq+82 z=#~HZ3j2mj8@4UI+VuCw+>aG$Tap`?T7u7?U{tVSu5x=A>(F;gd;JAR309udtut+Q z8vgwm!VoWcJ@?cCSsAu--u-X;lG{`bB3lyIYKmR#G_(n9S2s{PRHE!{5iWmNSYqM< zhiv_2!pRGEZ|?BxNsQGIey1chU*fRUe4%$HY1*#o6AthQ7dNXvsgXY{Tw1}TEc929 z(^m0V%74S;2fMylifljjgFRAD;M~SLE7CKycmK7Tx%l(DX3fHdcY^t5u6mHO(!_7g zoL^~{?1kQc-z<6DE`F$t?XzlCq^Ex3ldz)27oQo#Xl3`Z7JmQxuI-?;>E&aOd~e%I zHeWoIb0NvqQJC-LUA|jd*X#VEyMMRdS@ieMQ{|Z(+RkV#mUiT8+VlJ7honp`mcrVv z1y|45JKe5Y(SF^>_%HXXE80`OS!_O)um8U-xaZEDoF$taJx{B$ofMe;xi)9c_Sc>9 z(SKsM{|@`LapJoA>$iB$HHBqf+Z9w5Hp~9ak*9LU469W)O8&WR^OJL~U7NbWn#)}` zx(sa^U!I$)`s2>=61(q)kxYk$XPir)S0G-?logqZ*u0X*(&>~tiL5m_VDlgW9L51N~v2=dPPb@z`Bj=?%*`R6<@yk_3hXv_3)w_s_=Qcgw#rBWeG7! z{_Yo?ifTXmPd1)9v~0p%t-*Eiek((O5Vhh#sM_5aX1_waA|Qt^tnDRqm?)}`;@c`I?9Q7_i&o{Wxp P@P7t(zgJq{I2jlK%5)iN diff --git a/src/main/resources/assets/ebwizardry/structures/obelisk_4.nbt b/src/main/resources/assets/ebwizardry/structures/obelisk_4.nbt index 8353302767cdc5875b706cad9ccd3e6fa757ba5b..5062899bf3d7ab61ebfce8a4c7757acbbd733c6c 100644 GIT binary patch literal 649 zcmb2|=3sz;-f0K@ZySglo1eVh*DAN*>G~T-5-*iGdK}<1CjmjOIqUN0}vU@Ow)lFjvzP)F>@4ItP$}0^v;{*feXLCfA!!?&B7<{r%HZfF-OR|&xy9eg4s*7Hjysi>CE zkhOUtkJ|P2Pm3f@CKT1GJeIXS;=wjK+oLkDC&gfA+Z6GmC(LJF&(PYPVP(5Esqdv_ zTf@us+qwjcCM%^_m&^N{;oY8alP$oXo{BXC%XW6;^AEmfACMHG9I~uzG_NzSkzpQJ7j{NWB HVPF6ND`YVP literal 660 zcmb2|=3sz;-f4#Uw+#eZ`;~IN^=_5Cm=u3e$+@wNlSyS}lZkVHNi5f?eHJb`7Zoyh zoV+qWE=WlBdT*_}!vw|J?|wB~XN`(3EA5Gb=#y6@9oeh<~C$F)7YJ7A_9J8B#*F+w*uTn-;fjud&dL(>K zCTJbob8Bn*p7-q%C$9wZq#a0TJCh#P6SH(i)4>z}XBeJX#-|z*eyuG!_Pk)<#<1BMRfi<_v5Qu=PIrEy!rO#cfVx6T$K5KYT8S^|1D)JwJ)>G zu@s)?_kT%b&!6Vl?8lRW7K_hNnQVSs|K5)WVUsr${aAfBtor3{zg>UtW^r41MQx2W z4ZeIP>v!~M00cA;_Zxdd*8csTx!oM<3L^(b+Zqdp&i(Woi(q*~q zxdhWP|6J3ykG-3{OEjN&Nj#Jh|9D#F%HF~mOwX)X&$O=%DO;`fY+bHESyub^Dj{c< zD^~aJPkG1oEiZI_Yp%reS$`e3Io{i+pvigs!@oq~2C+ SF5SKNi}tX0&>0$Eu!;uisix?cuY}f1OZO`m|Jw z`m44JC%5#yd+TRy%P*|2CA;tOoC#Xn>O^NfGk^WaargS=^POwbo#!8$mV2Pb#p7-I z>!ZicnRcG;zTN%pk8ElG$q(}~e5!wiZ=R}QzVy0x`k%u;_gDSuTQ&8r=&`F4PbDpW zJz?d{%O{Ubse0DcYQK8V?Q?&wy}W-`dntGA^|rh^^Nqq*>ymxnZksc^$Z~7_WO1{b z4|`{QnLHyt`gMNy%c#rjws&V9KXmr);hQ;2wc~5ogz2eVc~cZgV z?0=W)-;p`XopC;8{S(_1m4sisC%+t(%-g^L9#gI-f6n88#(^WIPvQDvf;rc`oFLdRu_3Ub6Re9- z0-|rn97|;eWyZw^YF=#(IIxRfl5>WIdrbVCi48BGGt5X|xBmIF$eZ7vUe1*3I+C<@ z@Aa?$KPZV- zBW+=i@<#59zrVFF4X=Or_Hyg4Su&S@=U>zPn)>2Tds*m;*uy?w)Xp5Pl=wD#@9DEE O|NlSmHUE(S0|Nk_TW-Dp literal 742 zcmb2|=3sz;-s|V{FB^!kf0%xxY_gIBJKu+J24VIsr%f^+n@p8eJF;WJmfCFPTNOny zQ{Nt$-#7PIv?{`~Rtr~9PqhJlWYR?1l@E7gm<6Zp4#!JO>qn_be2zBSES z_vMYhaoPU@$D4EWoEEo~%~w&rdE-*i^`!ef43k@wh1Apjd==>sHjbQLY?Z*0pptOu zT#AF8vm1jOlN+O24U54##mS5i-m!Y2f*2u*>k|YUCN=~%oOGPr@Hptej^a#Z-S4CkazwM7#z%+3nj z{aO63u$5;<$@1+v74OvIOy2A}JZFNIdD+WZV&SVl%{zPj@p-*{7uTKly1u(Xl5_g4 z^K-?sZPSIGr(aLs{n`AAt=iq{MW(wi@4vOy#WgfKZpNv5^Z$LmY@Ri(Dmv_#`>NBX zzb9mxF6V!}>e)=q{I{OTXVcQm+v>NkpQ88WtX|3Qa%t;@%JSK(%)jngB_90OyfSUF z?7bD9_MJzUUi-Fd&bk@*K9@w>PD#sq=bz@Cm-BgJq}22adfOKtzjJG~-dFGGH#X0< zvVEan`|MdpyhF8Gwc>k4WyZ_-Cp_W}l^HL87k{aprjl^z>@3$$osx_aoD!@vJ|uKJ zl`&>A5HjF0$UMOv@jc?4p)%uQ2H|gQ4Bw7T00k=NYq`_vX(|aK35RAKgKONdOeo^A zqA~+m@ip6N#b-DUcpT6;(6U$Xv}GD7)dKKn54|osvd>e(IAgh|#AF7wRG%Kpw}wmxLI$x_RX$uZ zcnm;nE`uxAnv69Qj126VPWaCkY?#;(*dW=Y#^}Q}qsP#&UFbw2RIu}-hQd5MWyZ-{ z(hkgMF)UoGm@IT)345ALq~$kfsdZcQm$mA9_^i3?9HjktPN_=X{`+z2U(TI5UGR6; zUon3nDVtlpWmQr_YFe`QlIJYx+8W=o@aNr46_?(|K>#B?bqd3{N2Ty?wP!8dcEn>rFW*pouB*BU;O{8e%lpdWx*2R=R?G_WBq5& z(ww`_XQleO89zUt+Wqy&`nmt^%2>a>!hd_^?EABK3R|swE_J)q()4Lf&VRM_IemZG zbzV-IaX;eq`|giHm)ULa&3Jyu_wMDNDGRmZYuAYBv25vm`$ToyvpkN!YAoMgrQNBI zxUAg%@ZG|RvYorndmK2zK0mtKSjgaR)tRU{6B|5Ve)v$SD|e3LfX4xi14~LOB;;0$ ziyNn_B#0zjk`NCl*GoGGk~y+hv0?8;uyE4dofQ_!jEfnBvrip8EXgRrDZx4;BAD~a zmh%u(j_fKnEOujXV{&6ud&jGn1~J@V-Yzk&71i@6HgsA(y7s7t#b-LR!udN{G#w+(;|N37eIBU-BUG~;@U-qV{nWW~$w#l8CW>pfj*g9Q)>+0EO)*0vg zx|H|j;>~3- zw?pmUik~07b!Ntqr$^r&efLXtYy9?qI+YUhr@Izs>AdFXeFO zzMgq1>Fn1jE9YHo->O%c)xFbt^_;stcaME~|LjKQ@_n~`@7Cl!^Lw#mUUrh%Q=jSG zoj+&q*5n=k86`L+ zSV6qQ$zQvU$`}h7a2aHFaIdJ=c{XEWLtq1EwKGHY;`1H{G!C@vI{v6r5~Mufa)gbc zGJ`VXVg}(Xt;Sj3pvDAzk2nJp|K_IiY=&UN#D>5Gn^IkofbVw7jKW1C(b{P$3AN;GAKy zOtK^W1jhl70~!a8%wQGxJVCHwVnbj<=WLdB*(XvOAUsLNW%q;@$RAmfP$x2BzM?Xt z@bhezCj}>#+}&FIw?OS}*|`+`Gcz_7J#sgR%8oz76+dA{)N=PF*N$1f_K5krXP3u| z=Ex}zf4F`Z@fWh%u|4|j7af(*5UZMFuT?{H{ur5@T_1k5x$J)b{Q!fAQrgR~{Bk$C3E?>{59P#l@foZmxZo~bylkq{!}2P V_xtX-m(MQL$9~^##3snV007unVDkU~ literal 744 zcmb2|=3sz;-s|V{XB&vHe_+4CmvXEBFyHO?jcacuzFNBK%Da$K+mOq*PP17|w7kA;lc>4NTTau+ zmoMk1y{S9Hed=9_uvF@mT*;HircK)|)~?3rBW1WaZ-q*d(19flCzaGyf{ zO-NIir>M-J%($3AI7!UmjI$eq836PYkyQJGQr znKpZoMardjx03%J@wxTZaI&po@~KyyXEozD>!vT&_4L{LaL$!oMsCtV)9v-n3s(i} zW|jZhQ{AP`+57IxG~V+uL9U128OP|aEJ~ifF0*i}*87_^*1sP8GQZUu`LgPIqT8X? zZ`sd}MxCE=#(E$#RGu9tcC-G|)WcUG*(I?Ww?^Y`R>JJZE!E4Qbn*7%q1 zOuL^Nb@s*MU8^dyPVKbKTXWOr?XeH)j|{F;(D9dqU72BXD{t&DBHNVwr8#FYp4AM zjkdcJE;oO?Bp%oHoB#Kl)*bCVEI#{hC?y~5Vezq#OIb5xVgsjnl31sD8YpZ<5)S#w zcU!{P&KhFHXE+Xc9MCw>vQ@ERt6_>tf=I%lJ;xt)N^(lD&M;WMu_6f?-e*>_JS#Z? zRb1JBRK}ReK*)g0ATjqyQlBKF1g8Y+vB%Gy7(d&ks3bV`C4pTqpIPDj#*Oo4si)q* ze%`%RTj;cC^yz=~`y?*^IQ7EXY+uuv%p=-y#krnmv=8sA+WqC~?caM(oy^G!mw7qs z<$~OBqiw9&89$2lmfwgvdwS*S_Z~U1?`wY_p0&pQX*BC3UT5l7xsP25`3h(?q7exa-twbND8B+`+t;0^GJnLccF>ke1 zWA$N^V3gpLV4b0uup*X!o&32YKLro``63AsoDs=1^LGzJ4@(b|PmQKR@qEFCi47~` zITM18@kE&?fXy?!Ji(ANA?QF#b(%}0XpmW0?xkOWw7qu zN}XxD-Wiz&TgA-^@{jrWz+d})nDG9hU;f24TVwC%?#ip%cRy$T;$7=E#!d|mK6mU} ze9;4j+y9Kz@2WftzxL~P(w+-nJo~Rd+gT9&y~Jwf>r>(LSMTI*G`rasx7pO+`O9j7 zH)r+TcNxc3B{b*A>)dR-Q|rd0mS>WubI#*H$z#LhLN_M0rGJ~BuCf1(n6U*nQ<|L@bwU;>|5z9 z31IPE#WO9T;@{b(&opK-5HjF8vpL#BF6z6TGNbVG4(V=VA%nXz44=>RZq5I8YF~c5 z-=_c-G48i}*Zq%IaGF>gdp-Sl^wx{boUSvYr!HjMw3Kh^l^4fuy1#v;w0Skp>|I;3 zYd5U9ox4`9%TwdA#~SDNvA^$LT3!9&-&e<2-@X@*`Cq5~QsVjNy<6+bxmUu-Q+LfdK$eh*eww literal 748 zcmb2|=3sz;-W%urZySiPf0%xxY_gxU^_vZUMQ>l=6Bch_u~t0B=-YgH%C=>_*N&Yi zyn3+HzV;k{`>Lgt_dNnL|7`sG>&-R)o=zj7(2q-ml~%n!bAM6YS&gepwPO})FIwj4 zJ1y#<2YepQwVUfi7&_v^X%-An;jlPUx0+^=W!7p&M)&pW?0WM3Kgebe1>&-!oG+5dZW zeEYHUkux^Q8Yn(={(ZMMUG`h% zYO?Q{U2{aA)+GINW#`-QR=@a)y5VkX%#B#eCfv6(JuW zefy$!j_+#zzn9p*y_&9kZ>GN82FGpu)1Eloadu-;%Q4B*JLhrW%V)#lLN_M0Wq+HW zZmqCTW>98a%phEDE^eI8lAw|xlJH1Ce8an#GjqU!S?$bFoqPfu#--06J?vrWVe*Lx z){{F24S3V32WIg}GD>htu+9MMf<{7hbN5VRP$Y2mq;H>Kv*jJg1y4F=cN+^C)bcgh z6c@jpy?4|5+tVMP5%2sNWWD_LfAJ2(-t}uMFKk<<5G?g_Y23?86L;vZS+{!o>Rna8 zH-uW=EPdIn9GrFQ`^vco6y^|oubBrMli zS-f3*-t%#Q=&bMkBBGP#&yWA(^GiZdR3+>45@V&Tb4qg-{nXL8KGpo*i&-o7E2=htu+EsVnWae1h{-_6fXm=xfWtXwHwHH*HFlq3 z6$hDf0pZ4ad`U(Hyv4^<^v`r`%6e0LD*V>;%a^9Bs9k$G=gKLIblJ|=^4G&T_ZolJ zirN3_-Xl*ZcmA@)bLX`^>WFGTKZAK?(OdDvjKa-2@>_pb{jxk#ZgwU!XDjcFi5x5c z-m2QTDcJYXr$^tCs{i)w3eWtZmwEQvr`p|jR~SsaUY!2t@z4FwCicB*y*uTY>BLn< zOJ`45IrGxVQz2E4PR+Dmy*Jwb&#jmD-(L3<|CJ}b>+jFH=x>kJuH9I-dgaPz$-m7j zQUj^`$$aX8X1K(;hEf#$UC^(0}RdUB@?{bh^IpUxa>)N5<^iAB*$e-ktF4 z`-B^-rS0#|*0&9~ad&!2nZkQTWk%t6mpd_YCN{i$p8V`l4~x$&+v;Oa4nsq4i}lVq zmdXsujEfm2AKTNgtJt#GjmeEs?Hw=Un_fkbu<+}1PY+9iLOLQ?PyQUo0gnS32ae40 zTCfZp(r%1u*XEv{X$*;g!u$fuVo(IQHU4~KUf%x7E=48bkyK%Ep&Qe(c;wKkvTqB*y&j&69rlCdLaji(hMfaoBcg;bf`17QYw7UQYQo zH}UrLZ;Sc2mHu9Qbv%Vv0F7J=O-yZk3cl&wsS$Rb+@ApTVU!R`%Y5uLN3(I-6 cFV5b;_x$0;`)}^#>HlS)ls5e)n;-)N0A?^{^8f$< literal 741 zcmb2|=3sz;-s|W6ZySiPf0%y6%yao)i#Hqoir&7!CoJB=Vy$?L(YN{Zlx=z0YkMa? zUe$d0-xo{!m{m@n_f1^n^y%a0?)jeb%8Qy@a^*_hT+T+e1e?rfeY)$@G3i+0t>#xM zGS%x}1^!443nj_X9_3629E2c9%! z_OWyvmVA|c?5Lv;+q%SaGoH+p3=He7_511dyC~|{q$5YH=1z{1e7;7x@ayAON(;@? z;#yye|BbfseDUI5-j>Uk17reUe~>Iz2wnGAiAQ(c^ry{b_xtv@{5aQU*}HaEgJkD~ zTkFqtPo0}3^gP`>{qEQ3SMf_9?p|Vg_v!Ak-GPZ(>z|+d(SEu9tg`G??%kTb*-D{L zz04JZjhFUo2fyspPXD*$Tb}L5?B(^_4vm3I83k2J>6~$QoC_kjNKe)1ei{B@NMs50IOYN zJ>58+B|#-YB;nD$2Sv{y!k=&EzvH`Fd&1+u5z|M{9`&%CDdTM@efF#>Z{F70czb#A zg`PUoZ&ly@Ghg4$WLMd@xZTT|&%E@||LPS!@5mX8yCwPIzTdyqEiW#5t!3iA?a~(W zZTXV7+f4av?!157AGWzj=$Ez7Y=K(qy8Y_6?^XOQS)6I?{^i~7(&AbIFZ>0619nkFQuAF)`F`NnAJ+RU|E4U1w* z3vSJ~d*1GR)#={$pesW4fBqy{pG%y&*nKMK_+`C(qu$<+Zs9Jz&9m0M zdE;-&S^r|rCidu~ewe+l>F$koS9&giMAH8+Xw6pv3?a$x-$d>k>{4g)Wr}|g;W?v2SrPsOB|2)3A|JNk9tC#Y) zAHVWQ-FU6^#FaBID{{STi;wQLU%Th_nLo!~-ao6ol)LtNTV9>{Mq#T}$-Zxw&6!8V_KR`z91^ku1_ z{al@UcdY!L|LaTZ?8TLgZ)d!jx~IK|#iypBAi2i8NepB=L@ zVNbn3-Cw;@L#TV|x47&74|fMViMjsu=10HWl6v?{`>LsXxXIehJlWYuJO+i3@jG;Cvdjh(K6i6`mAZ-?FGxU zjeiIC|Fw?^C`*5JL381|$tfz?;a2ae-^>?ui~CD z@x#i$Z}vpYww!EXzuWHhx%&bCXMB0zd97r5{npzpT(OpM5pUo5|2Lg(vTAx-bk=Q` zRi{kN6@zV;^Jm9?JTqLX7_umfplK-`g`|iKH$NXNb=rlE*owaWD(JOy^ z=iN+cH_zHM`^ck966LXe;XdyxcU|RQI`{VP$u}ouhu5!}eog(#)3Pr!qHn(n-v6c3 zcK1sD{9j*Y&R$&0_;%)-);;Y#EIt(tM~-z#a?ZG0F>zy(8Gj5*EoG>pr+1Awm z)IRYfhH&u9ugdWmN2wzh83qgJSz1 j{M)wbXZ;m<+cSSbu)X~HZ?kR(|7Y}@UR&{7fPn!3?-+1P diff --git a/src/main/resources/assets/ebwizardry/structures/shrine_6.nbt b/src/main/resources/assets/ebwizardry/structures/shrine_6.nbt index d699d08c485a46f9e0bde301bc5e0de835d953f2..7a48a511e126bccf2d8da2be938a04ac18148f50 100644 GIT binary patch literal 735 zcmb2|=3sz;-s_J3w+$rN9_V+zHJfWzCbK_D`c~qjrU?nlI}06z3ua!rmb-SVVNpzJ z!7cy!laDRbHn}gYsioro#(Z0$y_<_==P8?)Jsq!%`IoP-FP3_BNjks8^~#-q$4lq_ zS?Bg}dZgdY=CzNUCAYe}ZTi%D{jKnCHAbIPGaPS+9-7f&_|apg%^bmoi463*QC_tvyL47dG_bGU$R?o=l;;!dAF~$_UF7=ndf|8e!V04zvA2Wx}}a=H_Se? zW7pD65ifV0yyEk+BGt>b@aUQOVfWUm*S-C+{#o|&++TUOOFn=8Tb3zvHMjTet~s-c z?6%cU3KvVV?buzv!qdFtXL)e-7EPvf5^@PRY~N{Z|jQI^522KYw%9 zZpB~U1>Rh3o&WCZbh#Nf?)q9;PuP9lmb>S5_&@|jbv$Da-g?MHKpDlI@EyqH1w zc?eVSEodw}+EYB!5-NV3ZTd_|gq+zNuOc_=yPYzl@NtO!cO@7epZWUr(jJZ9`)aIC zI!}zy+4_CgKl}I=rRS^Go$o8pT0E1}b!PPRg>0La@=d++;?_;}x382oujZM(YfJU7 zgvjmxx6Bfq9B^#njh1V>pMUpW|L)lB=hCI7mW#gMUo-o4_l2MSZ&wBEZkzbRN1}c6 WhgnKF6BY4^E;ffmK}T_0v%4hUaYvUFYNEa|L0 zCX?@fJ@Mb@wB~N}(wr%Q*ua}eS6#MXU}(kyILXrOKNth zsqX5ZH~x6WRR|tddG~Lj+HKD>`aOl$k5;UF*({fT>i8kQw}(HbEX)qCUnPExJ!|vc z+Edr=e7&e&vq3!mPf7lsF9#02%e!>5@lLH9lUkn3orpOT8*cU;?>Q>TIb%!px1N)S zK|v+KI%A9V&NFi$A?TT`mvDFInK|IleBZ`!uh$M7$k*qdJ}k*8!8&8dvKYB@90xoO zXdF0VI`zP;Z%{LKyo*VLiI+E@J_8Ycc2i%7e{J>ri4C2_M|wdPzm;M5e5Uv79UJZ6 z`|9jY)lQ7i*;;J%XTH9h$*xV$;%)~x@?|cVUbR%)Jt-_ocGdRN0ekn}UpeQ^u1`lN zt~7bO^{v;jWeL5!{MW00uf4iv#*bfpM~;2pm%BfHa&G>fx?O^&&Is=Po%beY{?CK; iS<$~2UGu+q?FXmT$Il24x-HU*D{*r9s{UC%us(gtt4pHmE{FyeJNAmF zecCSd)Bc&Hs{b;sUXfCFr%gpWFUNN03LC1u+SMr`%&5lZb7;nrZgn{WCIcaZLJviO z^AiLcCN=~%csdF*s-^jy=x6w3oWhczk|2_BNU`y^lo4kFg!f9BDLKsHjI$e)8mlkM z3<(3yU~Pj-9NwX>)+_d$8~&emd%*( zVd3Ary%DoksuflimS3E=fBCzqZ@w=%wq?2eELG3QKr7qLt<`q*Yx7^Om^HgJ?#8a= zM)9w9o!&9y(#cI4UynTNf48Qn%(PH@^?#Gw;n%;`-Y)(8dtvOkqouwmVf)1V|0D$YP;~_*UVYT)^*)$cfNAo z|E=+Dt;M6YA0OHBM{f2o^C?nzr>M**92a&cV$Q^dm&cQjJ?dfc@!2hXWnYDbGJ`VX zVg}*M@7gLe_U)Kq3Ffu$XsCRi^sI-ahsh^Gnkhos*^SAKQSFSiIDa}g(B~9=EO29h z2(Dy#R&s*lfX4xi11(@(3{ZVBXXb#TEy3ot>!XF0@rvkLZSVKD+r8KSJM?=ycd4o6qJI0Hxi7u#f9U6G$M62-^X1s{ Xhj;FO+ueKm?8^Tlocoph1Q{3rjYekX literal 754 zcmb2|=3sz;-W%uhZyAWNf0%y6jPr7xOxcZpUAb5Jg7rg}mMvfPdf}{VamyIiC-6Qx zWtj9fv;Nl{f#4(kKcqPsPagmF_-5yP2_aFHtiNX@1x?o<+VAo?F5ukM%YMbaSKxsLcpT6;@MM7}!(=y~6a5UIE~m33s3eFa98zq&e>L6c07QX_JJYc>4KsfC zu=w!JVlmK6*wn#!ek0=tneLe;Nlta2Iy}FfnXoDANzp0sH>W&bdI=>bTdHrpa81hl z(XZoQQ=Rg^Z29zDfA?Jl&x{WlVL6qL)B~=(x$n%gu^sC|J&=gx?5)&basEf{rT%p>sN9o>-@9M{`yk8TV>^isgGA)efRQB{O8GR zU(c-Z%AGxLRnbA;=_}`5INrLhBIh)Fd6e~TncYjD-hcb;YH98Ecf0=9?2kK_KYO2B zTBL7@sqD=CCmWC6QYrl1=5OYyv#zIb`_qhbUmD%D|Hj%Kw%*>Ig_GbT0!Hh4P69N2R_sZWwqf_26QGnNfzzj|1Dn0#h@kFYUR zW?al5{LDnm{|qF^TP&v@nDb4NQ39mc;QhuK$!-j8Om2*7YkDKj7%DR;GcG<*QPzDV z`SZPWl?120q~xPLEN9f%9p)t`zn#5z)BD%YCm#~;d^%_D<7fYw43|9YHSN!t&1JNl z@qFdMsmdQ0=$c=>T^hW1@BLMC-fa4GbmGbxWw**ylcP7ZwH<%G_wKb<3uS))>N|4k z`@YQm(UWua_SEgXFlDB5)%UwMG~<69tlzY@Ht==u7DGG7bUXR=+w`_C|HsU6A*DK9 HkbwaJDt3cs