From b7ffd610201670462259d74ca5b77d3c851c47ee Mon Sep 17 00:00:00 2001 From: WinDanesz <31292708+WinDanesz@users.noreply.github.com> Date: Sat, 10 Sep 2022 00:58:33 +0200 Subject: [PATCH] feat: flattened the gilded wood blocks --- .../wizardry/block/BlockGildedWood.java | 23 ++++++++++++++---- .../wizardry/client/model/WizardryModels.java | 5 ---- .../wizardry/registry/WizardryBlocks.java | 14 +++++++++-- .../wizardry/registry/WizardryItems.java | 15 +++++++++++- .../worldgen/WoodTypeTemplateProcessor.java | 22 ++++++++++++++--- .../assets/ebwizardry/lang/en_us.lang | 2 +- .../ebwizardry/recipes/acacia_bookshelf.json | 3 +-- .../ebwizardry/recipes/acacia_lectern.json | 3 +-- .../ebwizardry/recipes/birch_bookshelf.json | 3 +-- .../ebwizardry/recipes/birch_lectern.json | 3 +-- .../recipes/dark_oak_bookshelf.json | 3 +-- .../ebwizardry/recipes/dark_oak_lectern.json | 3 +-- .../recipes/gilded_acacia_wood.json | 3 +-- .../ebwizardry/recipes/gilded_birch_wood.json | 3 +-- .../recipes/gilded_dark_oak_wood.json | 3 +-- .../recipes/gilded_jungle_wood.json | 3 +-- .../ebwizardry/recipes/gilded_oak_wood.json | 3 +-- .../recipes/gilded_spruce_wood.json | 3 +-- .../ebwizardry/recipes/jungle_bookshelf.json | 3 +-- .../ebwizardry/recipes/jungle_lectern.json | 3 +-- .../ebwizardry/recipes/oak_bookshelf.json | 3 +-- .../ebwizardry/recipes/oak_lectern.json | 3 +-- .../ebwizardry/recipes/spruce_bookshelf.json | 3 +-- .../ebwizardry/recipes/spruce_lectern.json | 3 +-- .../ebwizardry/structures/library_ruins_0.nbt | Bin 1395 -> 1393 bytes .../underground_library_ruins_2.nbt | Bin 1778 -> 1778 bytes 26 files changed, 81 insertions(+), 54 deletions(-) diff --git a/src/main/java/electroblob/wizardry/block/BlockGildedWood.java b/src/main/java/electroblob/wizardry/block/BlockGildedWood.java index 9e95cc6a..c5d933a6 100644 --- a/src/main/java/electroblob/wizardry/block/BlockGildedWood.java +++ b/src/main/java/electroblob/wizardry/block/BlockGildedWood.java @@ -1,17 +1,30 @@ package electroblob.wizardry.block; import electroblob.wizardry.registry.WizardryTabs; +import net.minecraft.block.Block; import net.minecraft.block.BlockPlanks; import net.minecraft.block.SoundType; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +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.IStringSerializable; +import net.minecraft.util.NonNullList; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; -public class BlockGildedWood extends BlockPlanks { +public class BlockGildedWood extends Block { - public BlockGildedWood(){ - super(); + public BlockGildedWood() + { + super(Material.WOOD); this.setCreativeTab(WizardryTabs.WIZARDRY); this.setHardness(2.0F); this.setResistance(5.0F); this.setSoundType(SoundType.WOOD); // Why is this protected?! } - -} +} \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/client/model/WizardryModels.java b/src/main/java/electroblob/wizardry/client/model/WizardryModels.java index de23d73b..e0e1e6b7 100644 --- a/src/main/java/electroblob/wizardry/client/model/WizardryModels.java +++ b/src/main/java/electroblob/wizardry/client/model/WizardryModels.java @@ -46,11 +46,6 @@ public final class WizardryModels { @SubscribeEvent public static void register(ModelRegistryEvent event){ - ModelLoader.setCustomStateMapper(WizardryBlocks.gilded_wood, new StateMap.Builder() - .withName(BlockPlanks.VARIANT).withSuffix("_gilded_wood").build()); - ItemBlockMultiTextured gildedWoodItem = (ItemBlockMultiTextured)Item.getItemFromBlock(WizardryBlocks.gilded_wood); - registerMultiTexturedModel(gildedWoodItem); - // Explanation for all this here -> https://github.com/TheGreyGhost/MinecraftByExample/tree/master/src/main/java/minecraftbyexample/mbe05_block_dynamic_block_model2 ModelLoaderRegistry.registerLoader(new ModelLoaderBookshelf()); diff --git a/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java b/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java index 692a07c7..ee56c792 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java @@ -84,7 +84,12 @@ public final class WizardryBlocks { public static final Block healing_runestone_pedestal = placeholder(); public static final Block sorcery_runestone_pedestal = placeholder(); - public static final Block gilded_wood = placeholder(); + public static final Block acacia_gilded_wood = placeholder(); + public static final Block birch_gilded_wood = placeholder(); + public static final Block dark_oak_gilded_wood = placeholder(); + public static final Block jungle_gilded_wood = placeholder(); + public static final Block oak_gilded_wood = placeholder(); + public static final Block spruce_gilded_wood = placeholder(); public static final Block oak_bookshelf = placeholder(); public static final Block spruce_bookshelf = placeholder(); @@ -170,7 +175,12 @@ public final class WizardryBlocks { 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()); + registerBlock(registry, "acacia_gilded_wood", new BlockGildedWood()); + registerBlock(registry, "birch_gilded_wood", new BlockGildedWood()); + registerBlock(registry, "dark_oak_gilded_wood", new BlockGildedWood()); + registerBlock(registry, "jungle_gilded_wood", new BlockGildedWood()); + registerBlock(registry, "oak_gilded_wood", new BlockGildedWood()); + registerBlock(registry, "spruce_gilded_wood", new BlockGildedWood()); registerBlock(registry, "oak_bookshelf", new BlockBookshelf()); registerBlock(registry, "spruce_bookshelf", new BlockBookshelf()); diff --git a/src/main/java/electroblob/wizardry/registry/WizardryItems.java b/src/main/java/electroblob/wizardry/registry/WizardryItems.java index b52121f1..0dd86adb 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryItems.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryItems.java @@ -577,7 +577,20 @@ public final class WizardryItems { registerItemBlock(registry, WizardryBlocks.sorcery_runestone); registerItemBlock(registry, WizardryBlocks.healing_runestone); - registerMultiTexturedItemBlock(registry, WizardryBlocks.gilded_wood, true, woodTypes); + registerItemBlock(registry, WizardryBlocks.fire_runestone_pedestal); + registerItemBlock(registry, WizardryBlocks.ice_runestone_pedestal); + registerItemBlock(registry, WizardryBlocks.lightning_runestone_pedestal); + registerItemBlock(registry, WizardryBlocks.necromancy_runestone_pedestal); + registerItemBlock(registry, WizardryBlocks.earth_runestone_pedestal); + registerItemBlock(registry, WizardryBlocks.healing_runestone_pedestal); + registerItemBlock(registry, WizardryBlocks.sorcery_runestone_pedestal); + + registerItemBlock(registry, WizardryBlocks.acacia_gilded_wood); + registerItemBlock(registry, WizardryBlocks.birch_gilded_wood); + registerItemBlock(registry, WizardryBlocks.dark_oak_gilded_wood); + registerItemBlock(registry, WizardryBlocks.jungle_gilded_wood); + registerItemBlock(registry, WizardryBlocks.oak_gilded_wood); + registerItemBlock(registry, WizardryBlocks.spruce_gilded_wood); registerItemBlock(registry, WizardryBlocks.oak_bookshelf); registerItemBlock(registry, WizardryBlocks.spruce_bookshelf); diff --git a/src/main/java/electroblob/wizardry/worldgen/WoodTypeTemplateProcessor.java b/src/main/java/electroblob/wizardry/worldgen/WoodTypeTemplateProcessor.java index 99ac6d99..f5d6879a 100644 --- a/src/main/java/electroblob/wizardry/worldgen/WoodTypeTemplateProcessor.java +++ b/src/main/java/electroblob/wizardry/worldgen/WoodTypeTemplateProcessor.java @@ -1,5 +1,6 @@ package electroblob.wizardry.worldgen; +import electroblob.wizardry.block.BlockGildedWood; import electroblob.wizardry.registry.WizardryBlocks; import electroblob.wizardry.util.BlockUtils; import net.minecraft.block.Block; @@ -89,11 +90,24 @@ public class WoodTypeTemplateProcessor implements ITemplateProcessor { public Template.BlockInfo processBlock(World world, BlockPos pos, Template.BlockInfo info){ // Why do these each have their own property key? - if(info.blockState.getBlock() instanceof BlockPlanks){ // This covers gilded wood too + if(info.blockState.getBlock() instanceof BlockPlanks){ // This doesn't cover gilded wood return new Template.BlockInfo(info.pos, info.blockState.withProperty(BlockPlanks.VARIANT, woodType), info.tileentityData); - }else if(info.blockState.getBlock() instanceof BlockWoodSlab){ - return new Template.BlockInfo(info.pos, info.blockState.withProperty(BlockWoodSlab.VARIANT, woodType), info.tileentityData); - // This is a mess, no wonder the flattening happened + }else if(info.blockState.getBlock() instanceof BlockGildedWood){ + switch (woodType) { + case OAK: + return new Template.BlockInfo(info.pos, WizardryBlocks.oak_gilded_wood.getDefaultState(), info.tileentityData); + case SPRUCE: + return new Template.BlockInfo(info.pos, WizardryBlocks.spruce_gilded_wood.getDefaultState(), info.tileentityData); + case BIRCH: + return new Template.BlockInfo(info.pos, WizardryBlocks.birch_gilded_wood.getDefaultState(), info.tileentityData); + case JUNGLE: + return new Template.BlockInfo(info.pos, WizardryBlocks.jungle_gilded_wood.getDefaultState(), info.tileentityData); + case ACACIA: + return new Template.BlockInfo(info.pos, WizardryBlocks.acacia_gilded_wood.getDefaultState(), info.tileentityData); + case DARK_OAK: + return new Template.BlockInfo(info.pos, WizardryBlocks.dark_oak_gilded_wood.getDefaultState(), info.tileentityData); + } + // This is a mess, no wonder the flattening happened }else if(DOORS.containsValue(info.blockState.getBlock())){ return new Template.BlockInfo(info.pos, BlockUtils.copyState(DOORS.get(woodType), info.blockState), info.tileentityData); }else if(STAIRS.containsValue(info.blockState.getBlock())){ diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index 639a219a..297a16fc 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -31,7 +31,7 @@ tile.ebwizardry\:dry_frosted_ice.name=Dry Frosted Ice tile.ebwizardry\:crystal_flower_pot.name=Flower Pot tile.ebwizardry\:permafrost.name=Permafrost -tile.ebwizardry\:magic_crystal_block.name=Block of Crystal +tile.ebwizardry\:magic_crystal_block.name=Block of Magic Crystal tile.ebwizardry\:fire_crystal_block.name=Block of Fiery Crystal tile.ebwizardry\:ice_crystal_block.name=Block of Icy Crystal tile.ebwizardry\:lightning_crystal_block.name=Block of Stormy Crystal diff --git a/src/main/resources/assets/ebwizardry/recipes/acacia_bookshelf.json b/src/main/resources/assets/ebwizardry/recipes/acacia_bookshelf.json index 510f7286..81baed63 100644 --- a/src/main/resources/assets/ebwizardry/recipes/acacia_bookshelf.json +++ b/src/main/resources/assets/ebwizardry/recipes/acacia_bookshelf.json @@ -10,8 +10,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 4 + "item": "ebwizardry:acacia_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/acacia_lectern.json b/src/main/resources/assets/ebwizardry/recipes/acacia_lectern.json index b785dbdf..be92accf 100644 --- a/src/main/resources/assets/ebwizardry/recipes/acacia_lectern.json +++ b/src/main/resources/assets/ebwizardry/recipes/acacia_lectern.json @@ -13,8 +13,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 4 + "item": "ebwizardry:acacia_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/birch_bookshelf.json b/src/main/resources/assets/ebwizardry/recipes/birch_bookshelf.json index 5a0ed340..9b45b366 100644 --- a/src/main/resources/assets/ebwizardry/recipes/birch_bookshelf.json +++ b/src/main/resources/assets/ebwizardry/recipes/birch_bookshelf.json @@ -10,8 +10,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 2 + "item": "ebwizardry:birch_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/birch_lectern.json b/src/main/resources/assets/ebwizardry/recipes/birch_lectern.json index cb4f6322..ee310e5b 100644 --- a/src/main/resources/assets/ebwizardry/recipes/birch_lectern.json +++ b/src/main/resources/assets/ebwizardry/recipes/birch_lectern.json @@ -13,8 +13,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 2 + "item": "ebwizardry:birch_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/dark_oak_bookshelf.json b/src/main/resources/assets/ebwizardry/recipes/dark_oak_bookshelf.json index ffad88f7..8e73ca7c 100644 --- a/src/main/resources/assets/ebwizardry/recipes/dark_oak_bookshelf.json +++ b/src/main/resources/assets/ebwizardry/recipes/dark_oak_bookshelf.json @@ -10,8 +10,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 5 + "item": "ebwizardry:dark_oak_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/dark_oak_lectern.json b/src/main/resources/assets/ebwizardry/recipes/dark_oak_lectern.json index 4f8354d8..7a93d26f 100644 --- a/src/main/resources/assets/ebwizardry/recipes/dark_oak_lectern.json +++ b/src/main/resources/assets/ebwizardry/recipes/dark_oak_lectern.json @@ -13,8 +13,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 5 + "item": "ebwizardry:dark_oak_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/gilded_acacia_wood.json b/src/main/resources/assets/ebwizardry/recipes/gilded_acacia_wood.json index fda2add0..a9df45b3 100644 --- a/src/main/resources/assets/ebwizardry/recipes/gilded_acacia_wood.json +++ b/src/main/resources/assets/ebwizardry/recipes/gilded_acacia_wood.json @@ -16,8 +16,7 @@ } }, "result": { - "item": "ebwizardry:gilded_wood", - "data": 4, + "item": "ebwizardry:acacia_gilded_wood", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/gilded_birch_wood.json b/src/main/resources/assets/ebwizardry/recipes/gilded_birch_wood.json index 0679b0eb..6dc3c30a 100644 --- a/src/main/resources/assets/ebwizardry/recipes/gilded_birch_wood.json +++ b/src/main/resources/assets/ebwizardry/recipes/gilded_birch_wood.json @@ -16,8 +16,7 @@ } }, "result": { - "item": "ebwizardry:gilded_wood", - "data": 2, + "item": "ebwizardry:birch_gilded_wood", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/gilded_dark_oak_wood.json b/src/main/resources/assets/ebwizardry/recipes/gilded_dark_oak_wood.json index 6ea664e4..ba7c73ab 100644 --- a/src/main/resources/assets/ebwizardry/recipes/gilded_dark_oak_wood.json +++ b/src/main/resources/assets/ebwizardry/recipes/gilded_dark_oak_wood.json @@ -16,8 +16,7 @@ } }, "result": { - "item": "ebwizardry:gilded_wood", - "data": 5, + "item": "ebwizardry:dark_oak_gilded_wood", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/gilded_jungle_wood.json b/src/main/resources/assets/ebwizardry/recipes/gilded_jungle_wood.json index 17497047..89df1439 100644 --- a/src/main/resources/assets/ebwizardry/recipes/gilded_jungle_wood.json +++ b/src/main/resources/assets/ebwizardry/recipes/gilded_jungle_wood.json @@ -16,8 +16,7 @@ } }, "result": { - "item": "ebwizardry:gilded_wood", - "data": 3, + "item": "ebwizardry:jungle_gilded_wood", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/gilded_oak_wood.json b/src/main/resources/assets/ebwizardry/recipes/gilded_oak_wood.json index 18da37be..51d185a4 100644 --- a/src/main/resources/assets/ebwizardry/recipes/gilded_oak_wood.json +++ b/src/main/resources/assets/ebwizardry/recipes/gilded_oak_wood.json @@ -16,8 +16,7 @@ } }, "result": { - "item": "ebwizardry:gilded_wood", - "data": 0, + "item": "ebwizardry:oak_gilded_wood", "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/gilded_spruce_wood.json b/src/main/resources/assets/ebwizardry/recipes/gilded_spruce_wood.json index ec5c03e1..b15487a0 100644 --- a/src/main/resources/assets/ebwizardry/recipes/gilded_spruce_wood.json +++ b/src/main/resources/assets/ebwizardry/recipes/gilded_spruce_wood.json @@ -16,8 +16,7 @@ } }, "result": { - "item": "ebwizardry:gilded_wood", - "data": 1, + "item": "ebwizardry:spruce_gilded_wood" "count": 8 } } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/recipes/jungle_bookshelf.json b/src/main/resources/assets/ebwizardry/recipes/jungle_bookshelf.json index 20676b56..95672948 100644 --- a/src/main/resources/assets/ebwizardry/recipes/jungle_bookshelf.json +++ b/src/main/resources/assets/ebwizardry/recipes/jungle_bookshelf.json @@ -10,8 +10,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 3 + "item": "ebwizardry:jungle_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/jungle_lectern.json b/src/main/resources/assets/ebwizardry/recipes/jungle_lectern.json index f1e85736..4c3b55f9 100644 --- a/src/main/resources/assets/ebwizardry/recipes/jungle_lectern.json +++ b/src/main/resources/assets/ebwizardry/recipes/jungle_lectern.json @@ -13,8 +13,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 3 + "item": "ebwizardry:jungle_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/oak_bookshelf.json b/src/main/resources/assets/ebwizardry/recipes/oak_bookshelf.json index be8a2963..3e37b4a0 100644 --- a/src/main/resources/assets/ebwizardry/recipes/oak_bookshelf.json +++ b/src/main/resources/assets/ebwizardry/recipes/oak_bookshelf.json @@ -10,8 +10,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 0 + "item": "ebwizardry:oak_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/oak_lectern.json b/src/main/resources/assets/ebwizardry/recipes/oak_lectern.json index e791bc85..22beed3a 100644 --- a/src/main/resources/assets/ebwizardry/recipes/oak_lectern.json +++ b/src/main/resources/assets/ebwizardry/recipes/oak_lectern.json @@ -13,8 +13,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 0 + "item": "ebwizardry:oak_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/spruce_bookshelf.json b/src/main/resources/assets/ebwizardry/recipes/spruce_bookshelf.json index 291fb0c3..fa555fdd 100644 --- a/src/main/resources/assets/ebwizardry/recipes/spruce_bookshelf.json +++ b/src/main/resources/assets/ebwizardry/recipes/spruce_bookshelf.json @@ -10,8 +10,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 1 + "item": "ebwizardry:spruce_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/recipes/spruce_lectern.json b/src/main/resources/assets/ebwizardry/recipes/spruce_lectern.json index 459a8c38..b7bf71a4 100644 --- a/src/main/resources/assets/ebwizardry/recipes/spruce_lectern.json +++ b/src/main/resources/assets/ebwizardry/recipes/spruce_lectern.json @@ -13,8 +13,7 @@ "item": "ebwizardry:grand_crystal" }, "w": { - "item": "ebwizardry:gilded_wood", - "data": 1 + "item": "ebwizardry:spruce_gilded_wood" } }, "result": { diff --git a/src/main/resources/assets/ebwizardry/structures/library_ruins_0.nbt b/src/main/resources/assets/ebwizardry/structures/library_ruins_0.nbt index 5f5d5468e647e9e481f574148f36c0e6aea213b6..99b4796dd69868675d4ee270554b11b03643d0de 100644 GIT binary patch literal 1393 zcmb2|=3sz;v$uTnZ<|T57eqZ;y?NWsX?%zG9rU}Mxcked!@K5oEo@H;Z!Vh=(UHR{ zbXno=r`c0x@SXkebiav*x`IZ+-!BvRe+I0dE4+w9c9#D#wHBXx_s8+)#m(VeSEk>6z?YP={b~zuSoCJ=L*_yTHSTGW$_&bkiw|r|bBI=5 z%wW7VlreW|57Xl-4s#|g+-^)Ti%*8I2EV_x%J}cXhKUVE_g9ZjRQLjMGi=CCB#1AVdY`&Vd!D$>6&5i-7?`$%#$9b zGdbqhRE=|mX6SRC2|pKbzyPALw^;N0g^$vKf1pPI|CbU-!SHx#y~9 zQ}&phe*J9nJOAIa&G$ym^j;mlwv%PI2 z*~Rk5#($eROZd0`JIh-CEpCVE+jyg+;?mq7j~-XrQ(N(GV}Uy7|0ebMd&R%hU*tB| zZr|GxukmMkoK|4`zM1ZNCmwPyS?nPrHDiPB_CMP$tA%i!6(5e!6~u5%nL>DEVKXfep_rT)7St)MQu!Nu09pAPaI^B z6@#tmi56eF#|z0BSB;rpS*B+kS(0U%&T?TIOHXy?#O&2wGeT^iLmbw#`fAX8gu|O^ z=b8PFw6n1n{`8^J{_C3w#-&G=WZ9)lTo7Y_#BpH9tna=*azb5wRy_lGj~Qx4*NlkV zD+hi|LHPGG*M0t_AbklI2`mZE1cjqdKa^e`VmtklmL$ZJqJ|Hv%H_+79tVR>OO7yt z21icztv}`Q@#?Q4nZC|328GYMu;MmGXt-XTk$9^|MsQ>ssbv%-e8ACzyKci#GN zcKgJya(tnC+ranHwaLHY>wiWH z7Osp=UOV&LZ}mwR_J27x;rjRaTf*)Z-JEr>EZR6u`q}&6?=F40T>p29OU;$q#oMP{ znY&Nn-Hpe;ll7zb?v?mf{l`D{v0(S-WwxfvyI-%f=5_vTyfP?dCQZBZuRFL9z1aH_~or~^-oTp zyOsCY_v6HPcD+|8|AyRu7s0bOPE2W2;#&RV0?ltri}!7do8JEJ)ay^>{7un!zZ`yi zSia9gYtQZaAED;oK5wn8S=WB_VeexT%Ya26k3QGElNmYl?PR}`$-g-LPh4iRmwB*! z-O|HHXZF?oNxwdS_V!z^_WRnK+});@)qni+m;A>sf1S8p`}^|#RXcW@ROvG?008Mb Bp9lZ| literal 1395 zcmb2|=3sz;v$uTnZ<|T57eqZ;y?NWsX<~=>9rU}Mxckec!@K5oEo@H;Z!Ve<(V-(L zbXno=r`c0xaIXFEbibL0x`IZ+{~r_he+Fz?qQ@E7!uM4@SjcJF{>2~regA7I`DSNF z&u;W-SK5=c>+8`CDk&eGCKg@iT_>pgd$CH+hFi00x$k=%_+T5U(!oeUi5Aaj{4QxfBh*lIR84gw9>eT|Le6c!I!qL zt^abYC_QY~#$Ej>FZny(va57fT`&FCyzZDy-6yAY=4l%apZAUZx@&*j*XgC!YgVn> zEn&9Ia<}ZE&gXmAzu5h8-oJxPyJkoIKh9eJDR77G+jyg+;j_6vUVWbQ@AJc#&kxO2 z`NKW0=2PH>|3@|Mtdi+ds#*9!zG|gM?awsH9SY~=6=Yc-U6?uZ`_r;1|35sQeL@Nr zO&l}QCtCU(Ewt8{UVRP`c00Q3^}f#mh1F|JhoZo7N&XKuFV>@i0?b zo$M0_8Ab_CiS6Y@JD>Bg!i*B%xu*!psH?`zuPjqD4jjocO=Y<-ou#KbW8$mT95W(p zmqT@|zItZ{!t$o%d3^ul>gwv$o;>_p_vW5r>Zyj#t2L(#7U=UG5o{-cUh< zjkC@_ooCErAY;H}AOuRlTLYOsPc{anX0Xti?0+>HVV^Z2e%Q=2<3ij#`@*iP#d_=K zfJ3AqkkR=5`*%nEvg*1(HstXYL;c@W>)ZbS&FkA9w%!Zo1%uN1v8!39V2N^v)aSE* zZiY)5Y?M0vbe=KTvNzfPCcWM5k^AG>?*n!7Xa9^Vdp*yn{G-t0g^b4ikK@wxgrCcE zNr)L_&52y6|908y&Z_$_vM>Mt_FBKIV{Ts0)-{K!_@efhhyOR5bM&c;>p-#GvJ*_Ao#*6n&% za&N}`m!)^-312JQd-u-PzC9PaO_qfxJN@6fHtzPX#fooy%$s*+ _q|N5_4JYi1% z@9%sUpSjh0e!h9+;M|tQ9QGG{F*km@R=PsH(uP8NZPP> z-FfqC(w{EGRyo&wRoHR0^#6i0A3n4j3vs{SXJ2zy`qz(BHFfLSk3Ky6c#B2AqK9vv zzI~AyJ@Z@O^e4r~IQ36FX0xC3;P|?whtEp(*ZoPqK7aQ1Td(%}+Fyx{7AkE&F8pKm WN1M7QwY8rw?)N^W(lc3~fdK$ng{z_f diff --git a/src/main/resources/assets/ebwizardry/structures/underground_library_ruins_2.nbt b/src/main/resources/assets/ebwizardry/structures/underground_library_ruins_2.nbt index 31599f1b7fdd7faf888e9fdbe0f94e7dfb4913cd..662626b0d3e2cee6933d65f5870d06a2d3180dd8 100644 GIT binary patch delta 1656 zcmeyw`-yjgM?K@4{&_zh+jdQyD|vBBN%(&Lu8wW?m(TL&*ZZGrEsg(P`l4gqy$3%x zMb0TRUUbqvI4Ip$-2aw*m(TUzc5lu}%;HSYI-qeN(vPs3s?za93iMXWCs2 zNmdDF3BMUyo7JW~+R<`yE$5{lJ-w%{EGSv)Wx!`3a+~!@+ZBD?8C(Wj22uuW20Rkn zGb%zHVnZBar}VJ(c+Mz1XDo1>>6og|Iz6vrjBRDfDn}>s9R0{v6gMkaSAu&+mU+4= z*j)^V8#>#WisBe8>*I}hB)BD}8|;kHm1LK=_0_jaS+eUh|C3cF;!y@-28Q9@V3#tq zF$(kZK3T<9v^B+~K$q=N!~u&3Q6kUfPNZx4u^ySobF`4@Q{*gtkTo;TBiX|EsWRhO zb%R!7QDuaY9+>1a5iQVVJu=bf%*ILe8yh+;!;GLFno(geA(`iig!m_S#$zCl=p9!H z=4^Wu!DOk{yHL#M%=}4#4Hp{>8xjv3In4Akx$%#txLAW z46O%ITph|YXRL;WGea9=GNUj*`;+36Aq_ASA`Vy_xKN+hv&3);IC^*`n4wYh_LqL| z!W6W4jY{M}G4AoCG`B3<_p-k6=Dz>0ouA%V$Mw1U*WP^o+oz{@PrmT=?)lSI_kMl* zw7_=#^}7f6Wcux%yuqd@j~+d}zOy`i#}p>o$7`O_P?UjMs)_M_sD%Z?w+bPh$n7oTmmEPw7{ zcY!kT61QFN4!?5V(!RP%R&1^PtN35L=1%yz*E0V5xP)5p1c zxpZUK>fhcR&vR>&c|CjG&EICl^X1G=+}$=^O|azGQFVi|+#O%%q(*r$e^%JcsyVY_ zwVvc;gZR`uSJlIupA9y*%IdA{H`-}o5}$r-LkdrVgn?P2T>7@Kr54a=l;EDRLse@g zmw{H|v7d_@Ez}bCoqV$JO8Jtrx05R_|1{g2xU$7!5;z{~4;+b^dP_$V8u&hEu6nJw zyz%7IRaeSSLbB8&Wr>yX$&*((YW6WcGPp7Ct>K*$HPd&-PwDZTapgykx$jOZU5Iv{ zJ72v1PU>OmVe4V!VLryBcJ0#zo0C^IT`4~a$)7ogdcJ#XoaS8{&S|`l|5eM$t3~yi zeClU*oZUFhG+?=^@c$#19CW8c^e(s}cM_4YlX$&qr^AhI`YTo6t59w~^_Qw7D93)h zr*>_D=9TFni`CCu_R*DIFb$q>l7*k$JRxxRN{-oNua^yHdYW{t{X#$<-W4I3Nk zJF`z;c=GOj(0x^yP-nLH%J*7{Mc>O;#s|sx&A3xM`{D8b_tUTSE|j#tov6Tf@$C9+ zoAYaQdDiH{Gup-m#a%x`r{3A;DkYEP>_@khzQ)3Gmjw5>>_1l*-PxC#QFmgEZqWWE z7CiMwHgX!rEq-*%s3z^7(q^@Y1Ybxo#MZ;gbMfr@-#zceC%2rux*HydItfX8`F-E* zoPXu}M$fCQBF7mDB|4HP9~1oj`QMVv%wK6Q^__p8UccYxnndP_q~~KjJf#ql)gWkxPKe;uREM`^WWEp?2WTe%gJ0neYl{a;G#+UWA2X=8Y5fuMetyfBntvUoFS_ zU(ep`ORBe7F<+$0UhCx}X_0r^ln(t`5dG`tzqkGN&Hj691fMOnd%ONu!VbO3li9pP bbHwXz-+3y}b8lbOOMAYOQ!BnZGcW)ERK*Ji delta 1656 zcmeyw`-yjgM?LGK{&_zh+jdR7BYAO3N%(&Lu8wW?m(TL&|DQXF`}MweuP+G3)*kqr zy4m7wn#<(+WlPS@(wn!%US#IF@3lAP8kz_n2x$mxxY%IWka!^CfW?6T8RbMC)nG<9 zMmOeTOvf18%HB@S_Ix{Pv>#>m9b~TU3#%5Z<&6l=n9ke(QkRv`pI%xlv1g!%a2Qm&w956`G zNq7{?$1Kk~$Z$(cH`uvLLy}$MR_{a+cO#MG(kCi2{kA6PB&@nSXKD{q z4_gl-53`ya*NIBjC-pTaLB_-!dQ!ACMJ6HRy18awipDwn39B!~WE_k*a3n@o668{5 z2{s=alL@P(PF$UI@xWGzj%3Ei4cUQnsukuhwGb5mS;KiEJ#*id1f7H=yXgp9*iJlO zDEXdoRm;hzi6?h}Ns9|12eyg`xEmQB_o_d}r1mW0B+NsP4m$K1PDqY9AluOxmIh4C}qX;mXj)D9q3Oq@VTE@|2K6Pu`tYJ>0O-p*rT!lWT`36)srW zkgciEmy)z@8Z?}lCD?jceQabVoQK5>LmOi<<6{Qr`rU?;js+NrCWs`MB=96i7>F70 z8EkpI-=uBQN`}P@iy4y{4mWIUC~R1m(P}sa*|;9>S&}Qi?kP8^y=(F}+CHA`m*yG$ zSKs&9=IF=k`8i!Lx7UAN`TF+h=5KrA%Gp0JvwZ7!=+lY7Q29%f8|7=3#G7|te)6KP zety$y{d-*z-iO0xRA(Oj@$$v={8ryBP49Ev-j(Y->RIvsXwQlxJsO+pbq;H-`CV^* zy#0Yc`@!2AIMVmV=iHjHuar;T@kZKTQLL$fxgzyjYeTzjG4akc5IgYK(Bg1)mqVM$%D?<%&X7Hl1d6RNizFHrs* z`>Za|NG&nwvGF~Vr?0j^wHIF2{_1VSWgun12Fh$RB2GJhRtY{GbYB%3kDSK$l#fQ~ zeT`K;^TTe1uv+-(`lS|g3?7>ukGkeCcbd;1VQ=QGF-ANR+%qDYgQ`^!382$d<7+I! z=x^D7Oq=ff4S6*^1(aitRnLxSUKS7!vUrYxzwy?bhA2H)zUlFuk*@4q@>!ev@&4WF zoRg!YmwcQE$%Mz4>ebfiI#1rc-@A4?Oh|2=?$Uj$TTb4+zqHP?&?2$ud~VzN|NGCc zk#;t&+jiJNX3^~U>lO1Nqa`Au;n^XX(YfUFYOS5M-6nRE5arR4t*)V<@@BxtGG4$7#|r399QdA{`UN@=jBUZ&R&Xd`!+qke&!_G z&!;bZPuyl`Z*{5uXXt|E*WbSqJ6p4lC-(jt=Cc{!mgSyv+Fk#*|8U-*R0?oQ77 zqj|JgK7M}nwlA+Q>s8OPTXXwf?yMbodU_{iex{0lOO%UkziIU5)_J!4%YCn(CR*6+ z$e4Bb@jr(4If-~YPZ;;+)3yDw*6pYgc(@1phh zTR$dDzqih*mVLe4@!Gpv<{O8<`*kG0?&RlX?`K~%EA;zwbD41L{a?R+EIA+d;AW{_ ztm>zO%QRknb4#k@SpVzUn|(?3HY?_fRM~62JS7qGWt-BWUkjpt{rva1KmOeEx>~_! oOYPpS|CO*KVe(`)FVQ#3b+_;QljpJ9_v>nXg6A