diff --git a/src/main/java/kaptainwutax/seedcracker/FinderQueue.java b/src/main/java/kaptainwutax/seedcracker/FinderQueue.java index 47d73d0..7fd3270 100644 --- a/src/main/java/kaptainwutax/seedcracker/FinderQueue.java +++ b/src/main/java/kaptainwutax/seedcracker/FinderQueue.java @@ -1,9 +1,7 @@ package kaptainwutax.seedcracker; import com.mojang.blaze3d.platform.GlStateManager; -import kaptainwutax.seedcracker.finder.BuriedTreasureFinder; -import kaptainwutax.seedcracker.finder.DungeonFinder; -import kaptainwutax.seedcracker.finder.Finder; +import kaptainwutax.seedcracker.finder.*; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.World; @@ -31,8 +29,20 @@ public class FinderQueue { DungeonFinder dungeonFinder = new DungeonFinder(world, chunkPos); dungeonFinder.findInChunk(); + SwampHutFinder swampHutFinder = new SwampHutFinder(world, chunkPos); + swampHutFinder.findInChunk(); + + DesertTempleFinder desertTempleFinder = new DesertTempleFinder(world, chunkPos); + desertTempleFinder.findInChunk(); + + JungleTempleFinder jungleTempleFinder = new JungleTempleFinder(world, chunkPos); + jungleTempleFinder.findInChunk(); + this.activeFinders.add(buriedTreasure); this.activeFinders.add(dungeonFinder); + this.activeFinders.add(swampHutFinder); + this.activeFinders.add(desertTempleFinder); + this.activeFinders.add(jungleTempleFinder); } public void renderFinders() { diff --git a/src/main/java/kaptainwutax/seedcracker/finder/DesertTempleFinder.java b/src/main/java/kaptainwutax/seedcracker/finder/DesertTempleFinder.java new file mode 100644 index 0000000..90b9177 --- /dev/null +++ b/src/main/java/kaptainwutax/seedcracker/finder/DesertTempleFinder.java @@ -0,0 +1,209 @@ +package kaptainwutax.seedcracker.finder; + +import kaptainwutax.seedcracker.render.Cube; +import kaptainwutax.seedcracker.render.Cuboid; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.StairsBlock; +import net.minecraft.client.util.math.Vector4f; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3i; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.feature.Feature; + +import java.util.List; + +public class DesertTempleFinder extends AbstractTempleFinder { + + public DesertTempleFinder(World world, ChunkPos chunkPos) { + super(world, chunkPos, new Vec3i(21, 15, 21)); + } + + @Override + public List findInChunk() { + List result = super.findInChunk(); + + result.removeIf(pos -> { + Biome biome = world.getBiome(pos); + if(!biome.hasStructureFeature(Feature.DESERT_PYRAMID))return true; + + return false; + }); + + result.forEach(pos -> this.renderers.add(new Cuboid(pos, this.posToLayout.get(pos), new Vector4f(1.0f, 0.0f, 1.0f, 1.0f)))); + return result; + } + + @Override + public void buildStructure(PieceFinder finder) { + BlockState blockState_1 = Blocks.SANDSTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.NORTH); + BlockState blockState_2 = Blocks.SANDSTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.SOUTH); + BlockState blockState_3 = Blocks.SANDSTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.EAST); + BlockState blockState_4 = Blocks.SANDSTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.WEST); + finder.fillWithOutline(0, 0, 0, 4, 9, 4, Blocks.SANDSTONE.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(1, 10, 1, 3, 10, 3, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.addBlock(blockState_1, 2, 10, 0); + finder.addBlock(blockState_2, 2, 10, 4); + finder.addBlock(blockState_3, 0, 10, 2); + finder.addBlock(blockState_4, 4, 10, 2); + finder.fillWithOutline(finder.width - 5, 0, 0, finder.width - 1, 9, 4, Blocks.SANDSTONE.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(finder.width - 4, 10, 1, finder.width - 2, 10, 3, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.addBlock(blockState_1, finder.width - 3, 10, 0); + finder.addBlock(blockState_2, finder.width - 3, 10, 4); + finder.addBlock(blockState_3, finder.width - 5, 10, 2); + finder.addBlock(blockState_4, finder.width - 1, 10, 2); + finder.fillWithOutline(8, 0, 0, 12, 4, 4, Blocks.SANDSTONE.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(9, 1, 0, 11, 3, 4, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 9, 1, 1); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 9, 2, 1); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 9, 3, 1); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 10, 3, 1); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 11, 3, 1); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 11, 2, 1); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 11, 1, 1); + finder.fillWithOutline(4, 1, 1, 8, 3, 3, Blocks.SANDSTONE.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(4, 1, 2, 8, 2, 2, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(12, 1, 1, 16, 3, 3, Blocks.SANDSTONE.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(12, 1, 2, 16, 2, 2, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(5, 4, 5, finder.width - 6, 4, finder.depth - 6, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(9, 4, 9, 11, 4, 11, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(8, 1, 8, 8, 3, 8, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(12, 1, 8, 12, 3, 8, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(8, 1, 12, 8, 3, 12, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(12, 1, 12, 12, 3, 12, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(1, 1, 5, 4, 4, 11, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(finder.width - 5, 1, 5, finder.width - 2, 4, 11, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(6, 7, 9, 6, 7, 11, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(finder.width - 7, 7, 9, finder.width - 7, 7, 11, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(5, 5, 9, 5, 7, 11, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(finder.width - 6, 5, 9, finder.width - 6, 7, 11, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.addBlock(Blocks.AIR.getDefaultState(), 5, 5, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), 5, 6, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), 6, 6, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), finder.width - 6, 5, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), finder.width - 6, 6, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), finder.width - 7, 6, 10); + finder.fillWithOutline(2, 4, 4, 2, 6, 4, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(finder.width - 3, 4, 4, finder.width - 3, 6, 4, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.addBlock(blockState_1, 2, 4, 5); + finder.addBlock(blockState_1, 2, 3, 4); + finder.addBlock(blockState_1, finder.width - 3, 4, 5); + finder.addBlock(blockState_1, finder.width - 3, 3, 4); + finder.fillWithOutline(1, 1, 3, 2, 2, 3, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(finder.width - 3, 1, 3, finder.width - 2, 2, 3, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.addBlock(Blocks.SANDSTONE.getDefaultState(), 1, 1, 2); + finder.addBlock(Blocks.SANDSTONE.getDefaultState(), finder.width - 2, 1, 2); + finder.addBlock(Blocks.SANDSTONE_SLAB.getDefaultState(), 1, 2, 2); + finder.addBlock(Blocks.SANDSTONE_SLAB.getDefaultState(), finder.width - 2, 2, 2); + finder.addBlock(blockState_4, 2, 1, 2); + finder.addBlock(blockState_3, finder.width - 3, 1, 2); + finder.fillWithOutline(4, 3, 5, 4, 3, 17, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(finder.width - 5, 3, 5, finder.width - 5, 3, 17, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(3, 1, 5, 4, 2, 16, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.fillWithOutline(finder.width - 6, 1, 5, finder.width - 5, 2, 16, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + + int int_7; + for(int_7 = 5; int_7 <= 17; int_7 += 2) { + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 4, 1, int_7); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), 4, 2, int_7); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), finder.width - 5, 1, int_7); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), finder.width - 5, 2, int_7); + } + + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 10, 0, 7); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 10, 0, 8); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 9, 0, 9); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 11, 0, 9); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 8, 0, 10); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 12, 0, 10); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 7, 0, 10); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 13, 0, 10); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 9, 0, 11); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 11, 0, 11); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 10, 0, 12); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 10, 0, 13); + finder.addBlock(Blocks.BLUE_TERRACOTTA.getDefaultState(), 10, 0, 10); + + for(int_7 = 0; int_7 <= finder.width - 1; int_7 += finder.width - 1) { + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 2, 1); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 2, 2); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 2, 3); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 3, 1); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 3, 2); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 3, 3); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 4, 1); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), int_7, 4, 2); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 4, 3); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 5, 1); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 5, 2); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 5, 3); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 6, 1); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), int_7, 6, 2); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 6, 3); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 7, 1); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 7, 2); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 7, 3); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 8, 1); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 8, 2); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 8, 3); + } + + for(int_7 = 2; int_7 <= finder.width - 3; int_7 += finder.width - 3 - 2) { + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 - 1, 2, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 2, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 + 1, 2, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 - 1, 3, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 3, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 + 1, 3, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7 - 1, 4, 0); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), int_7, 4, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7 + 1, 4, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 - 1, 5, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 5, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 + 1, 5, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7 - 1, 6, 0); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), int_7, 6, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7 + 1, 6, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7 - 1, 7, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7, 7, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), int_7 + 1, 7, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 - 1, 8, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7, 8, 0); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), int_7 + 1, 8, 0); + } + + finder.fillWithOutline(8, 4, 0, 12, 6, 0, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.addBlock(Blocks.AIR.getDefaultState(), 8, 6, 0); + finder.addBlock(Blocks.AIR.getDefaultState(), 12, 6, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 9, 5, 0); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), 10, 5, 0); + finder.addBlock(Blocks.ORANGE_TERRACOTTA.getDefaultState(), 11, 5, 0); + finder.fillWithOutline(8, -14, 8, 12, -11, 12, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(8, -10, 8, 12, -10, 12, Blocks.CHISELED_SANDSTONE.getDefaultState(), Blocks.CHISELED_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(8, -9, 8, 12, -9, 12, Blocks.CUT_SANDSTONE.getDefaultState(), Blocks.CUT_SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(8, -8, 8, 12, -1, 12, Blocks.SANDSTONE.getDefaultState(), Blocks.SANDSTONE.getDefaultState(), false); + finder.fillWithOutline(9, -11, 9, 11, -1, 11, Blocks.AIR.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.addBlock(Blocks.STONE_PRESSURE_PLATE.getDefaultState(), 10, -11, 10); + finder.fillWithOutline(9, -13, 9, 11, -13, 11, Blocks.TNT.getDefaultState(), Blocks.AIR.getDefaultState(), false); + finder.addBlock(Blocks.AIR.getDefaultState(), 8, -11, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), 8, -10, 10); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), 7, -10, 10); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 7, -11, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), 12, -11, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), 12, -10, 10); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), 13, -10, 10); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 13, -11, 10); + finder.addBlock(Blocks.AIR.getDefaultState(), 10, -11, 8); + finder.addBlock(Blocks.AIR.getDefaultState(), 10, -10, 8); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), 10, -10, 7); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 10, -11, 7); + finder.addBlock(Blocks.AIR.getDefaultState(), 10, -11, 12); + finder.addBlock(Blocks.AIR.getDefaultState(), 10, -10, 12); + finder.addBlock(Blocks.CHISELED_SANDSTONE.getDefaultState(), 10, -10, 13); + finder.addBlock(Blocks.CUT_SANDSTONE.getDefaultState(), 10, -11, 13); + } + +} diff --git a/src/main/java/kaptainwutax/seedcracker/finder/JungleTempleFinder.java b/src/main/java/kaptainwutax/seedcracker/finder/JungleTempleFinder.java new file mode 100644 index 0000000..9439075 --- /dev/null +++ b/src/main/java/kaptainwutax/seedcracker/finder/JungleTempleFinder.java @@ -0,0 +1,117 @@ +package kaptainwutax.seedcracker.finder; + +import kaptainwutax.seedcracker.render.Cuboid; +import net.minecraft.block.*; +import net.minecraft.block.enums.WallMountLocation; +import net.minecraft.block.enums.WireConnection; +import net.minecraft.client.util.math.Vector4f; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3i; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.feature.Feature; + +import java.util.List; + +public class JungleTempleFinder extends AbstractTempleFinder { + + public JungleTempleFinder(World world, ChunkPos chunkPos) { + super(world, chunkPos, new Vec3i(12, 10, 15)); + } + + @Override + public List findInChunk() { + List result = super.findInChunk(); + + result.removeIf(pos -> { + Biome biome = world.getBiome(pos); + if(!biome.hasStructureFeature(Feature.JUNGLE_TEMPLE))return true; + + return false; + }); + + result.forEach(pos -> this.renderers.add(new Cuboid(pos, this.posToLayout.get(pos), new Vector4f(1.0f, 0.0f, 1.0f, 1.0f)))); + return result; + } + + @Override + public void buildStructure(PieceFinder finder) { + BlockState blockState_1 = Blocks.COBBLESTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.EAST); + BlockState blockState_2 = Blocks.COBBLESTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.WEST); + BlockState blockState_3 = Blocks.COBBLESTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.SOUTH); + BlockState blockState_4 = Blocks.COBBLESTONE_STAIRS.getDefaultState().with(StairsBlock.FACING, Direction.NORTH); + finder.addBlock(blockState_4, 5, 9, 6); + finder.addBlock(blockState_4, 6, 9, 6); + finder.addBlock(blockState_3, 5, 9, 8); + finder.addBlock(blockState_3, 6, 9, 8); + finder.addBlock(blockState_4, 4, 0, 0); + finder.addBlock(blockState_4, 5, 0, 0); + finder.addBlock(blockState_4, 6, 0, 0); + finder.addBlock(blockState_4, 7, 0, 0); + finder.addBlock(blockState_4, 4, 1, 8); + finder.addBlock(blockState_4, 4, 2, 9); + finder.addBlock(blockState_4, 4, 3, 10); + finder.addBlock(blockState_4, 7, 1, 8); + finder.addBlock(blockState_4, 7, 2, 9); + finder.addBlock(blockState_4, 7, 3, 10); + finder.addBlock(blockState_1, 4, 4, 5); + finder.addBlock(blockState_2, 7, 4, 5); + finder.addBlock((Blocks.TRIPWIRE_HOOK.getDefaultState().with(TripwireHookBlock.FACING, Direction.EAST)).with(TripwireHookBlock.ATTACHED, true), 1, -3, 8); + finder.addBlock((Blocks.TRIPWIRE_HOOK.getDefaultState().with(TripwireHookBlock.FACING, Direction.WEST)).with(TripwireHookBlock.ATTACHED, true), 4, -3, 8); + finder.addBlock(((Blocks.TRIPWIRE.getDefaultState().with(TripwireBlock.EAST, true)).with(TripwireBlock.WEST, true)).with(TripwireBlock.ATTACHED, true), 2, -3, 8); + finder.addBlock(((Blocks.TRIPWIRE.getDefaultState().with(TripwireBlock.EAST, true)).with(TripwireBlock.WEST, true)).with(TripwireBlock.ATTACHED, true), 3, -3, 8); + BlockState blockState_5 = (Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_NORTH, WireConnection.SIDE)).with(RedstoneWireBlock.WIRE_CONNECTION_SOUTH, WireConnection.SIDE); + finder.addBlock(Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_SOUTH, WireConnection.SIDE), 5, -3, 7); + finder.addBlock(blockState_5, 5, -3, 6); + finder.addBlock(blockState_5, 5, -3, 5); + finder.addBlock(blockState_5, 5, -3, 4); + finder.addBlock(blockState_5, 5, -3, 3); + finder.addBlock(blockState_5, 5, -3, 2); + finder.addBlock((Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_NORTH, WireConnection.SIDE)).with(RedstoneWireBlock.WIRE_CONNECTION_WEST, WireConnection.SIDE), 5, -3, 1); + finder.addBlock(Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_EAST, WireConnection.SIDE), 4, -3, 1); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 3, -3, 1); + + finder.addBlock(Blocks.VINE.getDefaultState().with(VineBlock.SOUTH, true), 3, -2, 2); + finder.addBlock((Blocks.TRIPWIRE_HOOK.getDefaultState().with(TripwireHookBlock.FACING, Direction.NORTH)).with(TripwireHookBlock.ATTACHED, true), 7, -3, 1); + finder.addBlock((Blocks.TRIPWIRE_HOOK.getDefaultState().with(TripwireHookBlock.FACING, Direction.SOUTH)).with(TripwireHookBlock.ATTACHED, true), 7, -3, 5); + finder.addBlock(((Blocks.TRIPWIRE.getDefaultState().with(TripwireBlock.NORTH, true)).with(TripwireBlock.SOUTH, true)).with(TripwireBlock.ATTACHED, true), 7, -3, 2); + finder.addBlock(((Blocks.TRIPWIRE.getDefaultState().with(TripwireBlock.NORTH, true)).with(TripwireBlock.SOUTH, true)).with(TripwireBlock.ATTACHED, true), 7, -3, 3); + finder.addBlock(((Blocks.TRIPWIRE.getDefaultState().with(TripwireBlock.NORTH, true)).with(TripwireBlock.SOUTH, true)).with(TripwireBlock.ATTACHED, true), 7, -3, 4); + finder.addBlock(Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_EAST, WireConnection.SIDE), 8, -3, 6); + finder.addBlock((Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_WEST, WireConnection.SIDE)).with(RedstoneWireBlock.WIRE_CONNECTION_SOUTH, WireConnection.SIDE), 9, -3, 6); + finder.addBlock((Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_NORTH, WireConnection.SIDE)).with(RedstoneWireBlock.WIRE_CONNECTION_SOUTH, WireConnection.UP), 9, -3, 5); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 9, -3, 4); + finder.addBlock(Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_NORTH, WireConnection.SIDE), 9, -2, 4); + + finder.addBlock(Blocks.VINE.getDefaultState().with(VineBlock.EAST, true), 8, -1, 3); + finder.addBlock(Blocks.VINE.getDefaultState().with(VineBlock.EAST, true), 8, -2, 3); + + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 9, -3, 2); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 8, -3, 1); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 4, -3, 5); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 5, -2, 5); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 5, -1, 5); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 6, -3, 5); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 7, -2, 5); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 7, -1, 5); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 8, -3, 5); + finder.addBlock(Blocks.CHISELED_STONE_BRICKS.getDefaultState(), 8, -2, 11); + finder.addBlock(Blocks.CHISELED_STONE_BRICKS.getDefaultState(), 9, -2, 11); + finder.addBlock(Blocks.CHISELED_STONE_BRICKS.getDefaultState(), 10, -2, 11); + BlockState blockState_6 = (Blocks.LEVER.getDefaultState().with(LeverBlock.FACING, Direction.NORTH)).with(LeverBlock.FACE, WallMountLocation.WALL); + finder.addBlock(blockState_6, 8, -2, 12); + finder.addBlock(blockState_6, 9, -2, 12); + finder.addBlock(blockState_6, 10, -2, 12); + finder.addBlock(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 10, -2, 9); + finder.addBlock(Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_NORTH, WireConnection.SIDE), 8, -2, 9); + finder.addBlock(Blocks.REDSTONE_WIRE.getDefaultState().with(RedstoneWireBlock.WIRE_CONNECTION_SOUTH, WireConnection.SIDE), 8, -2, 10); + finder.addBlock(Blocks.REDSTONE_WIRE.getDefaultState(), 10, -1, 9); + finder.addBlock(Blocks.STICKY_PISTON.getDefaultState().with(PistonBlock.FACING, Direction.UP), 9, -2, 8); + finder.addBlock(Blocks.STICKY_PISTON.getDefaultState().with(PistonBlock.FACING, Direction.WEST), 10, -2, 8); + finder.addBlock(Blocks.STICKY_PISTON.getDefaultState().with(PistonBlock.FACING, Direction.WEST), 10, -1, 8); + finder.addBlock(Blocks.REPEATER.getDefaultState().with(RepeaterBlock.FACING, Direction.NORTH), 10, -2, 10); + } + +}