added desert and jungle temples
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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<BlockPos> findInChunk() {
|
||||
List<BlockPos> 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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<BlockPos> findInChunk() {
|
||||
List<BlockPos> 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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user