1736 lines
125 KiB
Java
1736 lines
125 KiB
Java
package net.minecraft.world.level.levelgen.structure;
|
|
|
|
import net.minecraft.world.level.ChunkPos;
|
|
import net.minecraft.world.level.chunk.ChunkGenerator;
|
|
import java.util.Collections;
|
|
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureManager;
|
|
import java.util.Iterator;
|
|
import com.google.common.collect.Lists;
|
|
import java.util.Random;
|
|
import java.util.List;
|
|
import com.google.common.collect.ImmutableSet;
|
|
import net.minecraft.world.entity.SpawnGroupData;
|
|
import net.minecraft.world.entity.MobSpawnType;
|
|
import net.minecraft.world.entity.Entity;
|
|
import net.minecraft.world.entity.EntityType;
|
|
import net.minecraft.world.entity.monster.ElderGuardian;
|
|
import net.minecraft.core.Vec3i;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.world.level.block.Blocks;
|
|
import net.minecraft.world.level.BlockGetter;
|
|
import net.minecraft.world.level.LevelAccessor;
|
|
import net.minecraft.nbt.CompoundTag;
|
|
import net.minecraft.core.Direction;
|
|
import net.minecraft.world.level.levelgen.feature.StructurePieceType;
|
|
import net.minecraft.world.level.block.Block;
|
|
import java.util.Set;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
|
|
public class OceanMonumentPieces {
|
|
public abstract static class OceanMonumentPiece extends StructurePiece {
|
|
protected static final BlockState BASE_GRAY;
|
|
protected static final BlockState BASE_LIGHT;
|
|
protected static final BlockState BASE_BLACK;
|
|
protected static final BlockState DOT_DECO_DATA;
|
|
protected static final BlockState LAMP_BLOCK;
|
|
protected static final BlockState FILL_BLOCK;
|
|
protected static final Set<Block> FILL_KEEP;
|
|
protected static final int GRIDROOM_SOURCE_INDEX;
|
|
protected static final int GRIDROOM_TOP_CONNECT_INDEX;
|
|
protected static final int GRIDROOM_LEFTWING_CONNECT_INDEX;
|
|
protected static final int GRIDROOM_RIGHTWING_CONNECT_INDEX;
|
|
protected RoomDefinition roomDefinition;
|
|
|
|
protected static final int getRoomIndex(final int integer1, final int integer2, final int integer3) {
|
|
return integer2 * 25 + integer3 * 5 + integer1;
|
|
}
|
|
|
|
public OceanMonumentPiece(final StructurePieceType cfj, final int integer) {
|
|
super(cfj, integer);
|
|
}
|
|
|
|
public OceanMonumentPiece(final StructurePieceType cfj, final Direction fp, final BoundingBox cky) {
|
|
super(cfj, 1);
|
|
this.setOrientation(fp);
|
|
this.boundingBox = cky;
|
|
}
|
|
|
|
protected OceanMonumentPiece(final StructurePieceType cfj, final int integer2, final Direction fp, final RoomDefinition v, final int integer5, final int integer6, final int integer7) {
|
|
super(cfj, integer2);
|
|
this.setOrientation(fp);
|
|
this.roomDefinition = v;
|
|
final int integer8 = v.index;
|
|
final int integer9 = integer8 % 5;
|
|
final int integer10 = integer8 / 5 % 5;
|
|
final int integer11 = integer8 / 25;
|
|
if (fp == Direction.NORTH || fp == Direction.SOUTH) {
|
|
this.boundingBox = new BoundingBox(0, 0, 0, integer5 * 8 - 1, integer6 * 4 - 1, integer7 * 8 - 1);
|
|
}
|
|
else {
|
|
this.boundingBox = new BoundingBox(0, 0, 0, integer7 * 8 - 1, integer6 * 4 - 1, integer5 * 8 - 1);
|
|
}
|
|
switch (fp) {
|
|
case NORTH: {
|
|
this.boundingBox.move(integer9 * 8, integer11 * 4, -(integer10 + integer7) * 8 + 1);
|
|
break;
|
|
}
|
|
case SOUTH: {
|
|
this.boundingBox.move(integer9 * 8, integer11 * 4, integer10 * 8);
|
|
break;
|
|
}
|
|
case WEST: {
|
|
this.boundingBox.move(-(integer10 + integer7) * 8 + 1, integer11 * 4, integer9 * 8);
|
|
break;
|
|
}
|
|
default: {
|
|
this.boundingBox.move(integer10 * 8, integer11 * 4, integer9 * 8);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public OceanMonumentPiece(final StructurePieceType cfj, final CompoundTag jt) {
|
|
super(cfj, jt);
|
|
}
|
|
|
|
@Override
|
|
protected void addAdditionalSaveData(final CompoundTag jt) {
|
|
}
|
|
|
|
protected void generateWaterBox(final LevelAccessor bju, final BoundingBox cky, final int integer3, final int integer4, final int integer5, final int integer6, final int integer7, final int integer8) {
|
|
for (int integer9 = integer4; integer9 <= integer7; ++integer9) {
|
|
for (int integer10 = integer3; integer10 <= integer6; ++integer10) {
|
|
for (int integer11 = integer5; integer11 <= integer8; ++integer11) {
|
|
final BlockState byg13 = this.getBlock(bju, integer10, integer9, integer11, cky);
|
|
if (!OceanMonumentPiece.FILL_KEEP.contains(byg13.getBlock())) {
|
|
if (this.getWorldY(integer9) >= bju.getSeaLevel() && byg13 != OceanMonumentPiece.FILL_BLOCK) {
|
|
this.placeBlock(bju, Blocks.AIR.defaultBlockState(), integer10, integer9, integer11, cky);
|
|
}
|
|
else {
|
|
this.placeBlock(bju, OceanMonumentPiece.FILL_BLOCK, integer10, integer9, integer11, cky);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void generateDefaultFloor(final LevelAccessor bju, final BoundingBox cky, final int integer3, final int integer4, final boolean boolean5) {
|
|
if (boolean5) {
|
|
this.generateBox(bju, cky, integer3 + 0, 0, integer4 + 0, integer3 + 2, 0, integer4 + 8 - 1, OceanMonumentPiece.BASE_GRAY, OceanMonumentPiece.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer3 + 5, 0, integer4 + 0, integer3 + 8 - 1, 0, integer4 + 8 - 1, OceanMonumentPiece.BASE_GRAY, OceanMonumentPiece.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer3 + 3, 0, integer4 + 0, integer3 + 4, 0, integer4 + 2, OceanMonumentPiece.BASE_GRAY, OceanMonumentPiece.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer3 + 3, 0, integer4 + 5, integer3 + 4, 0, integer4 + 8 - 1, OceanMonumentPiece.BASE_GRAY, OceanMonumentPiece.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer3 + 3, 0, integer4 + 2, integer3 + 4, 0, integer4 + 2, OceanMonumentPiece.BASE_LIGHT, OceanMonumentPiece.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer3 + 3, 0, integer4 + 5, integer3 + 4, 0, integer4 + 5, OceanMonumentPiece.BASE_LIGHT, OceanMonumentPiece.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer3 + 2, 0, integer4 + 3, integer3 + 2, 0, integer4 + 4, OceanMonumentPiece.BASE_LIGHT, OceanMonumentPiece.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer3 + 5, 0, integer4 + 3, integer3 + 5, 0, integer4 + 4, OceanMonumentPiece.BASE_LIGHT, OceanMonumentPiece.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, integer3 + 0, 0, integer4 + 0, integer3 + 8 - 1, 0, integer4 + 8 - 1, OceanMonumentPiece.BASE_GRAY, OceanMonumentPiece.BASE_GRAY, false);
|
|
}
|
|
}
|
|
|
|
protected void generateBoxOnFillOnly(final LevelAccessor bju, final BoundingBox cky, final int integer3, final int integer4, final int integer5, final int integer6, final int integer7, final int integer8, final BlockState byg) {
|
|
for (int integer9 = integer4; integer9 <= integer7; ++integer9) {
|
|
for (int integer10 = integer3; integer10 <= integer6; ++integer10) {
|
|
for (int integer11 = integer5; integer11 <= integer8; ++integer11) {
|
|
if (this.getBlock(bju, integer10, integer9, integer11, cky) == OceanMonumentPiece.FILL_BLOCK) {
|
|
this.placeBlock(bju, byg, integer10, integer9, integer11, cky);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
protected boolean chunkIntersects(final BoundingBox cky, final int integer2, final int integer3, final int integer4, final int integer5) {
|
|
final int integer6 = this.getWorldX(integer2, integer3);
|
|
final int integer7 = this.getWorldZ(integer2, integer3);
|
|
final int integer8 = this.getWorldX(integer4, integer5);
|
|
final int integer9 = this.getWorldZ(integer4, integer5);
|
|
return cky.intersects(Math.min(integer6, integer8), Math.min(integer7, integer9), Math.max(integer6, integer8), Math.max(integer7, integer9));
|
|
}
|
|
|
|
protected boolean spawnElder(final LevelAccessor bju, final BoundingBox cky, final int integer3, final int integer4, final int integer5) {
|
|
final int integer6 = this.getWorldX(integer3, integer5);
|
|
final int integer7 = this.getWorldY(integer4);
|
|
final int integer8 = this.getWorldZ(integer3, integer5);
|
|
if (cky.isInside(new BlockPos(integer6, integer7, integer8))) {
|
|
final ElderGuardian awi10 = EntityType.ELDER_GUARDIAN.create(bju.getLevel());
|
|
awi10.heal(awi10.getMaxHealth());
|
|
awi10.moveTo(integer6 + 0.5, integer7, integer8 + 0.5, 0.0f, 0.0f);
|
|
awi10.finalizeSpawn(bju, bju.getCurrentDifficultyAt(new BlockPos(awi10)), MobSpawnType.STRUCTURE, null, null);
|
|
bju.addFreshEntity(awi10);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static {
|
|
BASE_GRAY = Blocks.PRISMARINE.defaultBlockState();
|
|
BASE_LIGHT = Blocks.PRISMARINE_BRICKS.defaultBlockState();
|
|
BASE_BLACK = Blocks.DARK_PRISMARINE.defaultBlockState();
|
|
DOT_DECO_DATA = OceanMonumentPiece.BASE_LIGHT;
|
|
LAMP_BLOCK = Blocks.SEA_LANTERN.defaultBlockState();
|
|
FILL_BLOCK = Blocks.WATER.defaultBlockState();
|
|
FILL_KEEP = ImmutableSet.<Block>builder().add(Blocks.ICE).add(Blocks.PACKED_ICE).add(Blocks.BLUE_ICE).add(OceanMonumentPiece.FILL_BLOCK.getBlock()).build();
|
|
GRIDROOM_SOURCE_INDEX = getRoomIndex(2, 0, 0);
|
|
GRIDROOM_TOP_CONNECT_INDEX = getRoomIndex(2, 2, 0);
|
|
GRIDROOM_LEFTWING_CONNECT_INDEX = getRoomIndex(0, 1, 0);
|
|
GRIDROOM_RIGHTWING_CONNECT_INDEX = getRoomIndex(4, 1, 0);
|
|
}
|
|
}
|
|
|
|
public static class MonumentBuilding extends OceanMonumentPiece {
|
|
private RoomDefinition sourceRoom;
|
|
private RoomDefinition coreRoom;
|
|
private final List<OceanMonumentPiece> childPieces;
|
|
|
|
public MonumentBuilding(final Random random, final int integer2, final int integer3, final Direction fp) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_BUILDING, 0);
|
|
this.childPieces = Lists.newArrayList();
|
|
this.setOrientation(fp);
|
|
final Direction fp2 = this.getOrientation();
|
|
if (fp2.getAxis() == Direction.Axis.Z) {
|
|
this.boundingBox = new BoundingBox(integer2, 39, integer3, integer2 + 58 - 1, 61, integer3 + 58 - 1);
|
|
}
|
|
else {
|
|
this.boundingBox = new BoundingBox(integer2, 39, integer3, integer2 + 58 - 1, 61, integer3 + 58 - 1);
|
|
}
|
|
final List<RoomDefinition> list7 = this.generateRoomGraph(random);
|
|
this.sourceRoom.claimed = true;
|
|
this.childPieces.add(new OceanMonumentEntryRoom(fp2, this.sourceRoom));
|
|
this.childPieces.add(new OceanMonumentCoreRoom(fp2, this.coreRoom));
|
|
final List<MonumentRoomFitter> list8 = Lists.newArrayList();
|
|
list8.add(new FitDoubleXYRoom());
|
|
list8.add(new FitDoubleYZRoom());
|
|
list8.add(new FitDoubleZRoom());
|
|
list8.add(new FitDoubleXRoom());
|
|
list8.add(new FitDoubleYRoom());
|
|
list8.add(new FitSimpleTopRoom());
|
|
list8.add(new FitSimpleRoom());
|
|
for (final RoomDefinition v10 : list7) {
|
|
if (!v10.claimed && !v10.isSpecial()) {
|
|
for (final MonumentRoomFitter i12 : list8) {
|
|
if (i12.fits(v10)) {
|
|
this.childPieces.add(i12.create(fp2, v10, random));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
final int integer4 = this.boundingBox.y0;
|
|
final int integer5 = this.getWorldX(9, 22);
|
|
final int integer6 = this.getWorldZ(9, 22);
|
|
for (final OceanMonumentPiece r13 : this.childPieces) {
|
|
r13.getBoundingBox().move(integer5, integer4, integer6);
|
|
}
|
|
final BoundingBox cky12 = BoundingBox.createProper(this.getWorldX(1, 1), this.getWorldY(1), this.getWorldZ(1, 1), this.getWorldX(23, 21), this.getWorldY(8), this.getWorldZ(23, 21));
|
|
final BoundingBox cky13 = BoundingBox.createProper(this.getWorldX(34, 1), this.getWorldY(1), this.getWorldZ(34, 1), this.getWorldX(56, 21), this.getWorldY(8), this.getWorldZ(56, 21));
|
|
final BoundingBox cky14 = BoundingBox.createProper(this.getWorldX(22, 22), this.getWorldY(13), this.getWorldZ(22, 22), this.getWorldX(35, 35), this.getWorldY(17), this.getWorldZ(35, 35));
|
|
int integer7 = random.nextInt();
|
|
this.childPieces.add(new OceanMonumentWingRoom(fp2, cky12, integer7++));
|
|
this.childPieces.add(new OceanMonumentWingRoom(fp2, cky13, integer7++));
|
|
this.childPieces.add(new OceanMonumentPenthouse(fp2, cky14));
|
|
}
|
|
|
|
public MonumentBuilding(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_BUILDING, jt);
|
|
this.childPieces = Lists.newArrayList();
|
|
}
|
|
|
|
private List<RoomDefinition> generateRoomGraph(final Random random) {
|
|
final RoomDefinition[] arr3 = new RoomDefinition[75];
|
|
for (int integer4 = 0; integer4 < 5; ++integer4) {
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
final int integer6 = 0;
|
|
final int integer7 = OceanMonumentPiece.getRoomIndex(integer4, 0, integer5);
|
|
arr3[integer7] = new RoomDefinition(integer7);
|
|
}
|
|
}
|
|
for (int integer4 = 0; integer4 < 5; ++integer4) {
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
final int integer6 = 1;
|
|
final int integer7 = OceanMonumentPiece.getRoomIndex(integer4, 1, integer5);
|
|
arr3[integer7] = new RoomDefinition(integer7);
|
|
}
|
|
}
|
|
for (int integer4 = 1; integer4 < 4; ++integer4) {
|
|
for (int integer5 = 0; integer5 < 2; ++integer5) {
|
|
final int integer6 = 2;
|
|
final int integer7 = OceanMonumentPiece.getRoomIndex(integer4, 2, integer5);
|
|
arr3[integer7] = new RoomDefinition(integer7);
|
|
}
|
|
}
|
|
this.sourceRoom = arr3[MonumentBuilding.GRIDROOM_SOURCE_INDEX];
|
|
for (int integer4 = 0; integer4 < 5; ++integer4) {
|
|
for (int integer5 = 0; integer5 < 5; ++integer5) {
|
|
for (int integer6 = 0; integer6 < 3; ++integer6) {
|
|
final int integer7 = OceanMonumentPiece.getRoomIndex(integer4, integer6, integer5);
|
|
if (arr3[integer7] != null) {
|
|
for (final Direction fp11 : Direction.values()) {
|
|
final int integer8 = integer4 + fp11.getStepX();
|
|
final int integer9 = integer6 + fp11.getStepY();
|
|
final int integer10 = integer5 + fp11.getStepZ();
|
|
if (integer8 >= 0 && integer8 < 5 && integer10 >= 0 && integer10 < 5 && integer9 >= 0 && integer9 < 3) {
|
|
final int integer11 = OceanMonumentPiece.getRoomIndex(integer8, integer9, integer10);
|
|
if (arr3[integer11] != null) {
|
|
if (integer10 == integer5) {
|
|
arr3[integer7].setConnection(fp11, arr3[integer11]);
|
|
}
|
|
else {
|
|
arr3[integer7].setConnection(fp11.getOpposite(), arr3[integer11]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
final RoomDefinition v4 = new RoomDefinition(1003);
|
|
final RoomDefinition v5 = new RoomDefinition(1001);
|
|
final RoomDefinition v6 = new RoomDefinition(1002);
|
|
arr3[MonumentBuilding.GRIDROOM_TOP_CONNECT_INDEX].setConnection(Direction.UP, v4);
|
|
arr3[MonumentBuilding.GRIDROOM_LEFTWING_CONNECT_INDEX].setConnection(Direction.SOUTH, v5);
|
|
arr3[MonumentBuilding.GRIDROOM_RIGHTWING_CONNECT_INDEX].setConnection(Direction.SOUTH, v6);
|
|
v4.claimed = true;
|
|
v5.claimed = true;
|
|
v6.claimed = true;
|
|
this.sourceRoom.isSource = true;
|
|
(this.coreRoom = arr3[OceanMonumentPiece.getRoomIndex(random.nextInt(4), 0, 2)]).claimed = true;
|
|
this.coreRoom.connections[Direction.EAST.get3DDataValue()].claimed = true;
|
|
this.coreRoom.connections[Direction.NORTH.get3DDataValue()].claimed = true;
|
|
this.coreRoom.connections[Direction.EAST.get3DDataValue()].connections[Direction.NORTH.get3DDataValue()].claimed = true;
|
|
this.coreRoom.connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
this.coreRoom.connections[Direction.EAST.get3DDataValue()].connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
this.coreRoom.connections[Direction.NORTH.get3DDataValue()].connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
this.coreRoom.connections[Direction.EAST.get3DDataValue()].connections[Direction.NORTH.get3DDataValue()].connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
final List<RoomDefinition> list7 = Lists.newArrayList();
|
|
for (final RoomDefinition v7 : arr3) {
|
|
if (v7 != null) {
|
|
v7.updateOpenings();
|
|
list7.add(v7);
|
|
}
|
|
}
|
|
v4.updateOpenings();
|
|
Collections.shuffle(list7, random);
|
|
int integer12 = 1;
|
|
for (final RoomDefinition v8 : list7) {
|
|
int integer13 = 0;
|
|
int integer8 = 0;
|
|
while (integer13 < 2 && integer8 < 5) {
|
|
++integer8;
|
|
final int integer9 = random.nextInt(6);
|
|
if (v8.hasOpening[integer9]) {
|
|
final int integer10 = Direction.from3DDataValue(integer9).getOpposite().get3DDataValue();
|
|
v8.hasOpening[integer9] = false;
|
|
v8.connections[integer9].hasOpening[integer10] = false;
|
|
if (v8.findSource(integer12++) && v8.connections[integer9].findSource(integer12++)) {
|
|
++integer13;
|
|
}
|
|
else {
|
|
v8.hasOpening[integer9] = true;
|
|
v8.connections[integer9].hasOpening[integer10] = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
list7.add(v4);
|
|
list7.add(v5);
|
|
list7.add(v6);
|
|
return list7;
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
final int integer7 = Math.max(bju.getSeaLevel(), 64) - this.boundingBox.y0;
|
|
this.generateWaterBox(bju, cky, 0, 0, 0, 58, integer7, 58);
|
|
this.generateWing(false, 0, bju, random, cky);
|
|
this.generateWing(true, 33, bju, random, cky);
|
|
this.generateEntranceArchs(bju, random, cky);
|
|
this.generateEntranceWall(bju, random, cky);
|
|
this.generateRoofPiece(bju, random, cky);
|
|
this.generateLowerWall(bju, random, cky);
|
|
this.generateMiddleWall(bju, random, cky);
|
|
this.generateUpperWall(bju, random, cky);
|
|
for (int integer8 = 0; integer8 < 7; ++integer8) {
|
|
int integer9 = 0;
|
|
while (integer9 < 7) {
|
|
if (integer9 == 0 && integer8 == 3) {
|
|
integer9 = 6;
|
|
}
|
|
final int integer10 = integer8 * 9;
|
|
final int integer11 = integer9 * 9;
|
|
for (int integer12 = 0; integer12 < 4; ++integer12) {
|
|
for (int integer13 = 0; integer13 < 4; ++integer13) {
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, integer10 + integer12, 0, integer11 + integer13, cky);
|
|
this.fillColumnDown(bju, MonumentBuilding.BASE_LIGHT, integer10 + integer12, -1, integer11 + integer13, cky);
|
|
}
|
|
}
|
|
if (integer8 == 0 || integer8 == 6) {
|
|
++integer9;
|
|
}
|
|
else {
|
|
integer9 += 6;
|
|
}
|
|
}
|
|
}
|
|
for (int integer8 = 0; integer8 < 5; ++integer8) {
|
|
this.generateWaterBox(bju, cky, -1 - integer8, 0 + integer8 * 2, -1 - integer8, -1 - integer8, 23, 58 + integer8);
|
|
this.generateWaterBox(bju, cky, 58 + integer8, 0 + integer8 * 2, -1 - integer8, 58 + integer8, 23, 58 + integer8);
|
|
this.generateWaterBox(bju, cky, 0 - integer8, 0 + integer8 * 2, -1 - integer8, 57 + integer8, 23, -1 - integer8);
|
|
this.generateWaterBox(bju, cky, 0 - integer8, 0 + integer8 * 2, 58 + integer8, 57 + integer8, 23, 58 + integer8);
|
|
}
|
|
for (final OceanMonumentPiece r9 : this.childPieces) {
|
|
if (r9.getBoundingBox().intersects(cky)) {
|
|
r9.postProcess(bju, bzx, random, cky, bje);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
private void generateWing(final boolean boolean1, final int integer, final LevelAccessor bju, final Random random, final BoundingBox cky) {
|
|
final int integer2 = 24;
|
|
if (this.chunkIntersects(cky, integer, 0, integer + 23, 20)) {
|
|
this.generateBox(bju, cky, integer + 0, 0, 0, integer + 24, 0, 20, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, integer + 0, 1, 0, integer + 24, 10, 20);
|
|
for (int integer3 = 0; integer3 < 4; ++integer3) {
|
|
this.generateBox(bju, cky, integer + integer3, integer3 + 1, integer3, integer + integer3, integer3 + 1, 20, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer + integer3 + 7, integer3 + 5, integer3 + 7, integer + integer3 + 7, integer3 + 5, 20, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer + 17 - integer3, integer3 + 5, integer3 + 7, integer + 17 - integer3, integer3 + 5, 20, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer + 24 - integer3, integer3 + 1, integer3, integer + 24 - integer3, integer3 + 1, 20, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer + integer3 + 1, integer3 + 1, integer3, integer + 23 - integer3, integer3 + 1, integer3, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer + integer3 + 8, integer3 + 5, integer3 + 7, integer + 16 - integer3, integer3 + 5, integer3 + 7, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
this.generateBox(bju, cky, integer + 4, 4, 4, integer + 6, 4, 20, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer + 7, 4, 4, integer + 17, 4, 6, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer + 18, 4, 4, integer + 20, 4, 20, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer + 11, 8, 11, integer + 13, 8, 20, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer + 12, 9, 12, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer + 12, 9, 15, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer + 12, 9, 18, cky);
|
|
int integer3 = integer + (boolean1 ? 19 : 5);
|
|
final int integer4 = integer + (boolean1 ? 5 : 19);
|
|
for (int integer5 = 20; integer5 >= 5; integer5 -= 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer3, 5, integer5, cky);
|
|
}
|
|
for (int integer5 = 19; integer5 >= 7; integer5 -= 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer4, 5, integer5, cky);
|
|
}
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
final int integer6 = boolean1 ? (integer + 24 - (17 - integer5 * 3)) : (integer + 17 - integer5 * 3);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer6, 5, 5, cky);
|
|
}
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer4, 5, 5, cky);
|
|
this.generateBox(bju, cky, integer + 11, 1, 12, integer + 13, 7, 12, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, integer + 12, 1, 11, integer + 12, 7, 13, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
}
|
|
}
|
|
|
|
private void generateEntranceArchs(final LevelAccessor bju, final Random random, final BoundingBox cky) {
|
|
if (this.chunkIntersects(cky, 22, 5, 35, 17)) {
|
|
this.generateWaterBox(bju, cky, 25, 0, 0, 32, 8, 20);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, 24, 2, 5 + integer5 * 4, 24, 4, 5 + integer5 * 4, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 22, 4, 5 + integer5 * 4, 23, 4, 5 + integer5 * 4, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 25, 5, 5 + integer5 * 4, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 26, 6, 5 + integer5 * 4, cky);
|
|
this.placeBlock(bju, MonumentBuilding.LAMP_BLOCK, 26, 5, 5 + integer5 * 4, cky);
|
|
this.generateBox(bju, cky, 33, 2, 5 + integer5 * 4, 33, 4, 5 + integer5 * 4, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 34, 4, 5 + integer5 * 4, 35, 4, 5 + integer5 * 4, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 32, 5, 5 + integer5 * 4, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 31, 6, 5 + integer5 * 4, cky);
|
|
this.placeBlock(bju, MonumentBuilding.LAMP_BLOCK, 31, 5, 5 + integer5 * 4, cky);
|
|
this.generateBox(bju, cky, 27, 6, 5 + integer5 * 4, 30, 6, 5 + integer5 * 4, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void generateEntranceWall(final LevelAccessor bju, final Random random, final BoundingBox cky) {
|
|
if (this.chunkIntersects(cky, 15, 20, 42, 21)) {
|
|
this.generateBox(bju, cky, 15, 0, 21, 42, 0, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 26, 1, 21, 31, 3, 21);
|
|
this.generateBox(bju, cky, 21, 12, 21, 36, 12, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 17, 11, 21, 40, 11, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 16, 10, 21, 41, 10, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 15, 7, 21, 42, 9, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 16, 6, 21, 41, 6, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 17, 5, 21, 40, 5, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 21, 4, 21, 36, 4, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 22, 3, 21, 26, 3, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 31, 3, 21, 35, 3, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 23, 2, 21, 25, 2, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 32, 2, 21, 34, 2, 21, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 28, 4, 20, 29, 4, 21, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 27, 3, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 30, 3, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 26, 2, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 31, 2, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 25, 1, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 32, 1, 21, cky);
|
|
for (int integer5 = 0; integer5 < 7; ++integer5) {
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 28 - integer5, 6 + integer5, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 29 + integer5, 6 + integer5, 21, cky);
|
|
}
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 28 - integer5, 9 + integer5, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 29 + integer5, 9 + integer5, 21, cky);
|
|
}
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 28, 12, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 29, 12, 21, cky);
|
|
for (int integer5 = 0; integer5 < 3; ++integer5) {
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 22 - integer5 * 2, 8, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 22 - integer5 * 2, 9, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 35 + integer5 * 2, 8, 21, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_BLACK, 35 + integer5 * 2, 9, 21, cky);
|
|
}
|
|
this.generateWaterBox(bju, cky, 15, 13, 21, 42, 15, 21);
|
|
this.generateWaterBox(bju, cky, 15, 1, 21, 15, 6, 21);
|
|
this.generateWaterBox(bju, cky, 16, 1, 21, 16, 5, 21);
|
|
this.generateWaterBox(bju, cky, 17, 1, 21, 20, 4, 21);
|
|
this.generateWaterBox(bju, cky, 21, 1, 21, 21, 3, 21);
|
|
this.generateWaterBox(bju, cky, 22, 1, 21, 22, 2, 21);
|
|
this.generateWaterBox(bju, cky, 23, 1, 21, 24, 1, 21);
|
|
this.generateWaterBox(bju, cky, 42, 1, 21, 42, 6, 21);
|
|
this.generateWaterBox(bju, cky, 41, 1, 21, 41, 5, 21);
|
|
this.generateWaterBox(bju, cky, 37, 1, 21, 40, 4, 21);
|
|
this.generateWaterBox(bju, cky, 36, 1, 21, 36, 3, 21);
|
|
this.generateWaterBox(bju, cky, 33, 1, 21, 34, 1, 21);
|
|
this.generateWaterBox(bju, cky, 35, 1, 21, 35, 2, 21);
|
|
}
|
|
}
|
|
|
|
private void generateRoofPiece(final LevelAccessor bju, final Random random, final BoundingBox cky) {
|
|
if (this.chunkIntersects(cky, 21, 21, 36, 36)) {
|
|
this.generateBox(bju, cky, 21, 0, 22, 36, 0, 36, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 21, 1, 22, 36, 23, 36);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, 21 + integer5, 13 + integer5, 21 + integer5, 36 - integer5, 13 + integer5, 21 + integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 21 + integer5, 13 + integer5, 36 - integer5, 36 - integer5, 13 + integer5, 36 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 21 + integer5, 13 + integer5, 22 + integer5, 21 + integer5, 13 + integer5, 35 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 36 - integer5, 13 + integer5, 22 + integer5, 36 - integer5, 13 + integer5, 35 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
this.generateBox(bju, cky, 25, 16, 25, 32, 16, 32, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 25, 17, 25, 25, 19, 25, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 32, 17, 25, 32, 19, 25, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 25, 17, 32, 25, 19, 32, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 32, 17, 32, 32, 19, 32, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 26, 20, 26, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 27, 21, 27, cky);
|
|
this.placeBlock(bju, MonumentBuilding.LAMP_BLOCK, 27, 20, 27, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 26, 20, 31, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 27, 21, 30, cky);
|
|
this.placeBlock(bju, MonumentBuilding.LAMP_BLOCK, 27, 20, 30, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 31, 20, 31, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 30, 21, 30, cky);
|
|
this.placeBlock(bju, MonumentBuilding.LAMP_BLOCK, 30, 20, 30, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 31, 20, 26, cky);
|
|
this.placeBlock(bju, MonumentBuilding.BASE_LIGHT, 30, 21, 27, cky);
|
|
this.placeBlock(bju, MonumentBuilding.LAMP_BLOCK, 30, 20, 27, cky);
|
|
this.generateBox(bju, cky, 28, 21, 27, 29, 21, 27, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 27, 21, 28, 27, 21, 29, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 28, 21, 30, 29, 21, 30, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 30, 21, 28, 30, 21, 29, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
}
|
|
}
|
|
|
|
private void generateLowerWall(final LevelAccessor bju, final Random random, final BoundingBox cky) {
|
|
if (this.chunkIntersects(cky, 0, 21, 6, 58)) {
|
|
this.generateBox(bju, cky, 0, 0, 21, 6, 0, 57, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 0, 1, 21, 6, 7, 57);
|
|
this.generateBox(bju, cky, 4, 4, 21, 6, 4, 53, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, integer5, integer5 + 1, 21, integer5, integer5 + 1, 57 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
for (int integer5 = 23; integer5 < 53; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 5, 5, integer5, cky);
|
|
}
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 5, 5, 52, cky);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, integer5, integer5 + 1, 21, integer5, integer5 + 1, 57 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
this.generateBox(bju, cky, 4, 1, 52, 6, 3, 52, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 5, 1, 51, 5, 3, 53, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
}
|
|
if (this.chunkIntersects(cky, 51, 21, 58, 58)) {
|
|
this.generateBox(bju, cky, 51, 0, 21, 57, 0, 57, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 51, 1, 21, 57, 7, 57);
|
|
this.generateBox(bju, cky, 51, 4, 21, 53, 4, 53, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, 57 - integer5, integer5 + 1, 21, 57 - integer5, integer5 + 1, 57 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
for (int integer5 = 23; integer5 < 53; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 52, 5, integer5, cky);
|
|
}
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 52, 5, 52, cky);
|
|
this.generateBox(bju, cky, 51, 1, 52, 53, 3, 52, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 52, 1, 51, 52, 3, 53, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
}
|
|
if (this.chunkIntersects(cky, 0, 51, 57, 57)) {
|
|
this.generateBox(bju, cky, 7, 0, 51, 50, 0, 57, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 7, 1, 51, 50, 10, 57);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, integer5 + 1, integer5 + 1, 57 - integer5, 56 - integer5, integer5 + 1, 57 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void generateMiddleWall(final LevelAccessor bju, final Random random, final BoundingBox cky) {
|
|
if (this.chunkIntersects(cky, 7, 21, 13, 50)) {
|
|
this.generateBox(bju, cky, 7, 0, 21, 13, 0, 50, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 7, 1, 21, 13, 10, 50);
|
|
this.generateBox(bju, cky, 11, 8, 21, 13, 8, 53, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, integer5 + 7, integer5 + 5, 21, integer5 + 7, integer5 + 5, 54, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
for (int integer5 = 21; integer5 <= 45; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 12, 9, integer5, cky);
|
|
}
|
|
}
|
|
if (this.chunkIntersects(cky, 44, 21, 50, 54)) {
|
|
this.generateBox(bju, cky, 44, 0, 21, 50, 0, 50, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 44, 1, 21, 50, 10, 50);
|
|
this.generateBox(bju, cky, 44, 8, 21, 46, 8, 53, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, 50 - integer5, integer5 + 5, 21, 50 - integer5, integer5 + 5, 54, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
for (int integer5 = 21; integer5 <= 45; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 45, 9, integer5, cky);
|
|
}
|
|
}
|
|
if (this.chunkIntersects(cky, 8, 44, 49, 54)) {
|
|
this.generateBox(bju, cky, 14, 0, 44, 43, 0, 50, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 14, 1, 44, 43, 10, 50);
|
|
for (int integer5 = 12; integer5 <= 45; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 9, 45, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 9, 52, cky);
|
|
if (integer5 == 12 || integer5 == 18 || integer5 == 24 || integer5 == 33 || integer5 == 39 || integer5 == 45) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 9, 47, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 9, 50, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 10, 45, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 10, 46, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 10, 51, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 10, 52, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 11, 47, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 11, 50, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 12, 48, cky);
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 12, 49, cky);
|
|
}
|
|
}
|
|
for (int integer5 = 0; integer5 < 3; ++integer5) {
|
|
this.generateBox(bju, cky, 8 + integer5, 5 + integer5, 54, 49 - integer5, 5 + integer5, 54, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
}
|
|
this.generateBox(bju, cky, 11, 8, 54, 46, 8, 54, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 14, 8, 44, 43, 8, 53, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
}
|
|
}
|
|
|
|
private void generateUpperWall(final LevelAccessor bju, final Random random, final BoundingBox cky) {
|
|
if (this.chunkIntersects(cky, 14, 21, 20, 43)) {
|
|
this.generateBox(bju, cky, 14, 0, 21, 20, 0, 43, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 14, 1, 22, 20, 14, 43);
|
|
this.generateBox(bju, cky, 18, 12, 22, 20, 12, 39, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 18, 12, 21, 20, 12, 21, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, integer5 + 14, integer5 + 9, 21, integer5 + 14, integer5 + 9, 43 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
for (int integer5 = 23; integer5 <= 39; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 19, 13, integer5, cky);
|
|
}
|
|
}
|
|
if (this.chunkIntersects(cky, 37, 21, 43, 43)) {
|
|
this.generateBox(bju, cky, 37, 0, 21, 43, 0, 43, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 37, 1, 22, 43, 14, 43);
|
|
this.generateBox(bju, cky, 37, 12, 22, 39, 12, 39, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 37, 12, 21, 39, 12, 21, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, 43 - integer5, integer5 + 9, 21, 43 - integer5, integer5 + 9, 43 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
for (int integer5 = 23; integer5 <= 39; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, 38, 13, integer5, cky);
|
|
}
|
|
}
|
|
if (this.chunkIntersects(cky, 15, 37, 42, 43)) {
|
|
this.generateBox(bju, cky, 21, 0, 37, 36, 0, 43, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
this.generateWaterBox(bju, cky, 21, 1, 37, 36, 14, 43);
|
|
this.generateBox(bju, cky, 21, 12, 37, 36, 12, 39, MonumentBuilding.BASE_GRAY, MonumentBuilding.BASE_GRAY, false);
|
|
for (int integer5 = 0; integer5 < 4; ++integer5) {
|
|
this.generateBox(bju, cky, 15 + integer5, integer5 + 9, 43 - integer5, 42 - integer5, integer5 + 9, 43 - integer5, MonumentBuilding.BASE_LIGHT, MonumentBuilding.BASE_LIGHT, false);
|
|
}
|
|
for (int integer5 = 21; integer5 <= 36; integer5 += 3) {
|
|
this.placeBlock(bju, MonumentBuilding.DOT_DECO_DATA, integer5, 13, 38, cky);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentEntryRoom extends OceanMonumentPiece {
|
|
public OceanMonumentEntryRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_ENTRY_ROOM, 1, fp, v, 1, 1, 1);
|
|
}
|
|
|
|
public OceanMonumentEntryRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_ENTRY_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
this.generateBox(bju, cky, 0, 3, 0, 2, 3, 7, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 3, 0, 7, 3, 7, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 0, 1, 2, 7, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 2, 0, 7, 2, 7, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 1, 0, 0, 1, 7, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 0, 7, 1, 7, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 1, 7, 7, 3, 7, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 0, 2, 3, 0, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 0, 6, 3, 0, OceanMonumentEntryRoom.BASE_LIGHT, OceanMonumentEntryRoom.BASE_LIGHT, false);
|
|
if (this.roomDefinition.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 7, 4, 2, 7);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 3, 1, 2, 4);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 6, 1, 3, 7, 2, 4);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentSimpleRoom extends OceanMonumentPiece {
|
|
private int mainDesign;
|
|
|
|
public OceanMonumentSimpleRoom(final Direction fp, final RoomDefinition v, final Random random) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_SIMPLE_ROOM, 1, fp, v, 1, 1, 1);
|
|
this.mainDesign = random.nextInt(3);
|
|
}
|
|
|
|
public OceanMonumentSimpleRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_SIMPLE_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
if (this.roomDefinition.index / 25 > 0) {
|
|
this.generateDefaultFloor(bju, cky, 0, 0, this.roomDefinition.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
}
|
|
if (this.roomDefinition.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 4, 1, 6, 4, 6, OceanMonumentSimpleRoom.BASE_GRAY);
|
|
}
|
|
final boolean boolean7 = this.mainDesign != 0 && random.nextBoolean() && !this.roomDefinition.hasOpening[Direction.DOWN.get3DDataValue()] && !this.roomDefinition.hasOpening[Direction.UP.get3DDataValue()] && this.roomDefinition.countOpenings() > 1;
|
|
if (this.mainDesign == 0) {
|
|
this.generateBox(bju, cky, 0, 1, 0, 2, 1, 2, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 3, 0, 2, 3, 2, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 0, 0, 2, 2, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 2, 0, 2, 2, 0, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 1, 2, 1, cky);
|
|
this.generateBox(bju, cky, 5, 1, 0, 7, 1, 2, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 3, 0, 7, 3, 2, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 2, 0, 7, 2, 2, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 5, 2, 0, 6, 2, 0, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 6, 2, 1, cky);
|
|
this.generateBox(bju, cky, 0, 1, 5, 2, 1, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 3, 5, 2, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 5, 0, 2, 7, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 2, 7, 2, 2, 7, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 1, 2, 6, cky);
|
|
this.generateBox(bju, cky, 5, 1, 5, 7, 1, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 3, 5, 7, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 2, 5, 7, 2, 7, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 5, 2, 7, 6, 2, 7, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 6, 2, 6, cky);
|
|
if (this.roomDefinition.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 3, 3, 0, 4, 3, 0, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, 3, 3, 0, 4, 3, 1, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 2, 0, 4, 2, 0, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 3, 1, 0, 4, 1, 1, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 3, 3, 7, 4, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, 3, 3, 6, 4, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 2, 7, 4, 2, 7, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 3, 1, 6, 4, 1, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 0, 3, 3, 0, 3, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, 0, 3, 3, 1, 3, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 3, 0, 2, 4, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 0, 1, 3, 1, 1, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 7, 3, 3, 7, 3, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, 6, 3, 3, 7, 3, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 2, 3, 7, 2, 4, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 6, 1, 3, 7, 1, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
}
|
|
else if (this.mainDesign == 1) {
|
|
this.generateBox(bju, cky, 2, 1, 2, 2, 3, 2, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 1, 5, 2, 3, 5, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 5, 5, 3, 5, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 2, 5, 3, 2, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 2, 2, 2, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 2, 2, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 5, 2, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.LAMP_BLOCK, 5, 2, 2, cky);
|
|
this.generateBox(bju, cky, 0, 1, 0, 1, 3, 0, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 1, 1, 0, 3, 1, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 1, 7, 1, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 1, 6, 0, 3, 6, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 7, 7, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 6, 7, 3, 6, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 0, 7, 3, 0, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 1, 7, 3, 1, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 1, 2, 0, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 0, 2, 1, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 1, 2, 7, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 0, 2, 6, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 6, 2, 7, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 7, 2, 6, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 6, 2, 0, cky);
|
|
this.placeBlock(bju, OceanMonumentSimpleRoom.BASE_GRAY, 7, 2, 1, cky);
|
|
if (!this.roomDefinition.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 1, 3, 0, 6, 3, 0, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 2, 0, 6, 2, 0, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 1, 0, 6, 1, 0, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
if (!this.roomDefinition.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 1, 3, 7, 6, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 2, 7, 6, 2, 7, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 1, 7, 6, 1, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
if (!this.roomDefinition.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 0, 3, 1, 0, 3, 6, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 1, 0, 2, 6, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 0, 1, 1, 0, 1, 6, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
if (!this.roomDefinition.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 7, 3, 1, 7, 3, 6, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 2, 1, 7, 2, 6, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 7, 1, 1, 7, 1, 6, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
}
|
|
else if (this.mainDesign == 2) {
|
|
this.generateBox(bju, cky, 0, 1, 0, 0, 1, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 0, 7, 1, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 0, 6, 1, 0, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 7, 6, 1, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 0, 0, 2, 7, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 7, 2, 0, 7, 2, 7, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 1, 2, 0, 6, 2, 0, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 1, 2, 7, 6, 2, 7, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 0, 3, 0, 0, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 3, 0, 7, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 0, 6, 3, 0, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 7, 6, 3, 7, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 1, 3, 0, 2, 4, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 7, 1, 3, 7, 2, 4, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 3, 1, 0, 4, 2, 0, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 3, 1, 7, 4, 2, 7, OceanMonumentSimpleRoom.BASE_BLACK, OceanMonumentSimpleRoom.BASE_BLACK, false);
|
|
if (this.roomDefinition.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 0, 4, 2, 0);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 7, 4, 2, 7);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 3, 0, 2, 4);
|
|
}
|
|
if (this.roomDefinition.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 7, 1, 3, 7, 2, 4);
|
|
}
|
|
}
|
|
if (boolean7) {
|
|
this.generateBox(bju, cky, 3, 1, 3, 4, 1, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 2, 3, 4, 2, 4, OceanMonumentSimpleRoom.BASE_GRAY, OceanMonumentSimpleRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 3, 3, 3, 4, 3, 4, OceanMonumentSimpleRoom.BASE_LIGHT, OceanMonumentSimpleRoom.BASE_LIGHT, false);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentSimpleTopRoom extends OceanMonumentPiece {
|
|
public OceanMonumentSimpleTopRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_SIMPLE_TOP_ROOM, 1, fp, v, 1, 1, 1);
|
|
}
|
|
|
|
public OceanMonumentSimpleTopRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_SIMPLE_TOP_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
if (this.roomDefinition.index / 25 > 0) {
|
|
this.generateDefaultFloor(bju, cky, 0, 0, this.roomDefinition.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
}
|
|
if (this.roomDefinition.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 4, 1, 6, 4, 6, OceanMonumentSimpleTopRoom.BASE_GRAY);
|
|
}
|
|
for (int integer7 = 1; integer7 <= 6; ++integer7) {
|
|
for (int integer8 = 1; integer8 <= 6; ++integer8) {
|
|
if (random.nextInt(3) != 0) {
|
|
final int integer9 = 2 + ((random.nextInt(4) != 0) ? 1 : 0);
|
|
final BlockState byg10 = Blocks.WET_SPONGE.defaultBlockState();
|
|
this.generateBox(bju, cky, integer7, integer9, integer8, integer7, 3, integer8, byg10, byg10, false);
|
|
}
|
|
}
|
|
}
|
|
this.generateBox(bju, cky, 0, 1, 0, 0, 1, 7, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 0, 7, 1, 7, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 0, 6, 1, 0, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 7, 6, 1, 7, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 0, 0, 2, 7, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 7, 2, 0, 7, 2, 7, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 1, 2, 0, 6, 2, 0, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 1, 2, 7, 6, 2, 7, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 0, 3, 0, 0, 3, 7, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 3, 0, 7, 3, 7, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 0, 6, 3, 0, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 7, 6, 3, 7, OceanMonumentSimpleTopRoom.BASE_LIGHT, OceanMonumentSimpleTopRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 1, 3, 0, 2, 4, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 7, 1, 3, 7, 2, 4, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 3, 1, 0, 4, 2, 0, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 3, 1, 7, 4, 2, 7, OceanMonumentSimpleTopRoom.BASE_BLACK, OceanMonumentSimpleTopRoom.BASE_BLACK, false);
|
|
if (this.roomDefinition.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 0, 4, 2, 0);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentDoubleYRoom extends OceanMonumentPiece {
|
|
public OceanMonumentDoubleYRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_Y_ROOM, 1, fp, v, 1, 2, 1);
|
|
}
|
|
|
|
public OceanMonumentDoubleYRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_Y_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
if (this.roomDefinition.index / 25 > 0) {
|
|
this.generateDefaultFloor(bju, cky, 0, 0, this.roomDefinition.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
}
|
|
final RoomDefinition v7 = this.roomDefinition.connections[Direction.UP.get3DDataValue()];
|
|
if (v7.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 8, 1, 6, 8, 6, OceanMonumentDoubleYRoom.BASE_GRAY);
|
|
}
|
|
this.generateBox(bju, cky, 0, 4, 0, 0, 4, 7, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 4, 0, 7, 4, 7, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 4, 0, 6, 4, 0, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 4, 7, 6, 4, 7, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 4, 1, 2, 4, 2, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 4, 2, 1, 4, 2, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 4, 1, 5, 4, 2, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 4, 2, 6, 4, 2, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 4, 5, 2, 4, 6, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 4, 5, 1, 4, 5, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 4, 5, 5, 4, 6, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 4, 5, 6, 4, 5, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
RoomDefinition v8 = this.roomDefinition;
|
|
for (int integer9 = 1; integer9 <= 5; integer9 += 4) {
|
|
int integer10 = 0;
|
|
if (v8.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 2, integer9, integer10, 2, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, integer9, integer10, 5, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, integer9 + 2, integer10, 4, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, 0, integer9, integer10, 7, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, integer9 + 1, integer10, 7, integer9 + 1, integer10, OceanMonumentDoubleYRoom.BASE_GRAY, OceanMonumentDoubleYRoom.BASE_GRAY, false);
|
|
}
|
|
integer10 = 7;
|
|
if (v8.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, 2, integer9, integer10, 2, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, integer9, integer10, 5, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, integer9 + 2, integer10, 4, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, 0, integer9, integer10, 7, integer9 + 2, integer10, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, integer9 + 1, integer10, 7, integer9 + 1, integer10, OceanMonumentDoubleYRoom.BASE_GRAY, OceanMonumentDoubleYRoom.BASE_GRAY, false);
|
|
}
|
|
int integer11 = 0;
|
|
if (v8.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, integer11, integer9, 2, integer11, integer9 + 2, 2, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer11, integer9, 5, integer11, integer9 + 2, 5, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer11, integer9 + 2, 3, integer11, integer9 + 2, 4, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, integer11, integer9, 0, integer11, integer9 + 2, 7, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer11, integer9 + 1, 0, integer11, integer9 + 1, 7, OceanMonumentDoubleYRoom.BASE_GRAY, OceanMonumentDoubleYRoom.BASE_GRAY, false);
|
|
}
|
|
integer11 = 7;
|
|
if (v8.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateBox(bju, cky, integer11, integer9, 2, integer11, integer9 + 2, 2, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer11, integer9, 5, integer11, integer9 + 2, 5, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer11, integer9 + 2, 3, integer11, integer9 + 2, 4, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
}
|
|
else {
|
|
this.generateBox(bju, cky, integer11, integer9, 0, integer11, integer9 + 2, 7, OceanMonumentDoubleYRoom.BASE_LIGHT, OceanMonumentDoubleYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer11, integer9 + 1, 0, integer11, integer9 + 1, 7, OceanMonumentDoubleYRoom.BASE_GRAY, OceanMonumentDoubleYRoom.BASE_GRAY, false);
|
|
}
|
|
v8 = v7;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentDoubleXRoom extends OceanMonumentPiece {
|
|
public OceanMonumentDoubleXRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_X_ROOM, 1, fp, v, 2, 1, 1);
|
|
}
|
|
|
|
public OceanMonumentDoubleXRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_X_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
final RoomDefinition v7 = this.roomDefinition.connections[Direction.EAST.get3DDataValue()];
|
|
final RoomDefinition v8 = this.roomDefinition;
|
|
if (this.roomDefinition.index / 25 > 0) {
|
|
this.generateDefaultFloor(bju, cky, 8, 0, v7.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
this.generateDefaultFloor(bju, cky, 0, 0, v8.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
}
|
|
if (v8.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 4, 1, 7, 4, 6, OceanMonumentDoubleXRoom.BASE_GRAY);
|
|
}
|
|
if (v7.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 8, 4, 1, 14, 4, 6, OceanMonumentDoubleXRoom.BASE_GRAY);
|
|
}
|
|
this.generateBox(bju, cky, 0, 3, 0, 0, 3, 7, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 15, 3, 0, 15, 3, 7, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 0, 15, 3, 0, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 7, 14, 3, 7, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 0, 0, 2, 7, OceanMonumentDoubleXRoom.BASE_GRAY, OceanMonumentDoubleXRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 15, 2, 0, 15, 2, 7, OceanMonumentDoubleXRoom.BASE_GRAY, OceanMonumentDoubleXRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 2, 0, 15, 2, 0, OceanMonumentDoubleXRoom.BASE_GRAY, OceanMonumentDoubleXRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 2, 7, 14, 2, 7, OceanMonumentDoubleXRoom.BASE_GRAY, OceanMonumentDoubleXRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 0, 1, 0, 0, 1, 7, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 15, 1, 0, 15, 1, 7, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 0, 15, 1, 0, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 7, 14, 1, 7, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 0, 10, 1, 4, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 2, 0, 9, 2, 3, OceanMonumentDoubleXRoom.BASE_GRAY, OceanMonumentDoubleXRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 5, 3, 0, 10, 3, 4, OceanMonumentDoubleXRoom.BASE_LIGHT, OceanMonumentDoubleXRoom.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentDoubleXRoom.LAMP_BLOCK, 6, 2, 3, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleXRoom.LAMP_BLOCK, 9, 2, 3, cky);
|
|
if (v8.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 0, 4, 2, 0);
|
|
}
|
|
if (v8.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 7, 4, 2, 7);
|
|
}
|
|
if (v8.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 3, 0, 2, 4);
|
|
}
|
|
if (v7.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 11, 1, 0, 12, 2, 0);
|
|
}
|
|
if (v7.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 11, 1, 7, 12, 2, 7);
|
|
}
|
|
if (v7.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 15, 1, 3, 15, 2, 4);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentDoubleZRoom extends OceanMonumentPiece {
|
|
public OceanMonumentDoubleZRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_Z_ROOM, 1, fp, v, 1, 1, 2);
|
|
}
|
|
|
|
public OceanMonumentDoubleZRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_Z_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
final RoomDefinition v7 = this.roomDefinition.connections[Direction.NORTH.get3DDataValue()];
|
|
final RoomDefinition v8 = this.roomDefinition;
|
|
if (this.roomDefinition.index / 25 > 0) {
|
|
this.generateDefaultFloor(bju, cky, 0, 8, v7.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
this.generateDefaultFloor(bju, cky, 0, 0, v8.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
}
|
|
if (v8.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 4, 1, 6, 4, 7, OceanMonumentDoubleZRoom.BASE_GRAY);
|
|
}
|
|
if (v7.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 4, 8, 6, 4, 14, OceanMonumentDoubleZRoom.BASE_GRAY);
|
|
}
|
|
this.generateBox(bju, cky, 0, 3, 0, 0, 3, 15, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 3, 0, 7, 3, 15, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 0, 7, 3, 0, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 15, 6, 3, 15, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, 2, 0, 0, 2, 15, OceanMonumentDoubleZRoom.BASE_GRAY, OceanMonumentDoubleZRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 7, 2, 0, 7, 2, 15, OceanMonumentDoubleZRoom.BASE_GRAY, OceanMonumentDoubleZRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 2, 0, 7, 2, 0, OceanMonumentDoubleZRoom.BASE_GRAY, OceanMonumentDoubleZRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 1, 2, 15, 6, 2, 15, OceanMonumentDoubleZRoom.BASE_GRAY, OceanMonumentDoubleZRoom.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 0, 1, 0, 0, 1, 15, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 0, 7, 1, 15, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 0, 7, 1, 0, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 15, 6, 1, 15, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 1, 1, 1, 2, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 1, 6, 1, 2, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 1, 1, 3, 2, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 3, 1, 6, 3, 2, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 13, 1, 1, 14, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 13, 6, 1, 14, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 3, 13, 1, 3, 14, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 3, 13, 6, 3, 14, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 1, 6, 2, 3, 6, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 6, 5, 3, 6, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 1, 9, 2, 3, 9, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 9, 5, 3, 9, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 2, 6, 4, 2, 6, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 2, 9, 4, 2, 9, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 2, 7, 2, 2, 8, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 2, 7, 5, 2, 8, OceanMonumentDoubleZRoom.BASE_LIGHT, OceanMonumentDoubleZRoom.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.LAMP_BLOCK, 2, 2, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.LAMP_BLOCK, 5, 2, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.LAMP_BLOCK, 2, 2, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.LAMP_BLOCK, 5, 2, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.BASE_LIGHT, 2, 3, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.BASE_LIGHT, 5, 3, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.BASE_LIGHT, 2, 3, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleZRoom.BASE_LIGHT, 5, 3, 10, cky);
|
|
if (v8.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 0, 4, 2, 0);
|
|
}
|
|
if (v8.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 7, 1, 3, 7, 2, 4);
|
|
}
|
|
if (v8.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 3, 0, 2, 4);
|
|
}
|
|
if (v7.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 15, 4, 2, 15);
|
|
}
|
|
if (v7.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 11, 0, 2, 12);
|
|
}
|
|
if (v7.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 7, 1, 11, 7, 2, 12);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentDoubleXYRoom extends OceanMonumentPiece {
|
|
public OceanMonumentDoubleXYRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_XY_ROOM, 1, fp, v, 2, 2, 1);
|
|
}
|
|
|
|
public OceanMonumentDoubleXYRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_XY_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
final RoomDefinition v7 = this.roomDefinition.connections[Direction.EAST.get3DDataValue()];
|
|
final RoomDefinition v8 = this.roomDefinition;
|
|
final RoomDefinition v9 = v8.connections[Direction.UP.get3DDataValue()];
|
|
final RoomDefinition v10 = v7.connections[Direction.UP.get3DDataValue()];
|
|
if (this.roomDefinition.index / 25 > 0) {
|
|
this.generateDefaultFloor(bju, cky, 8, 0, v7.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
this.generateDefaultFloor(bju, cky, 0, 0, v8.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
}
|
|
if (v9.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 8, 1, 7, 8, 6, OceanMonumentDoubleXYRoom.BASE_GRAY);
|
|
}
|
|
if (v10.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 8, 8, 1, 14, 8, 6, OceanMonumentDoubleXYRoom.BASE_GRAY);
|
|
}
|
|
for (int integer11 = 1; integer11 <= 7; ++integer11) {
|
|
BlockState byg12 = OceanMonumentDoubleXYRoom.BASE_LIGHT;
|
|
if (integer11 == 2 || integer11 == 6) {
|
|
byg12 = OceanMonumentDoubleXYRoom.BASE_GRAY;
|
|
}
|
|
this.generateBox(bju, cky, 0, integer11, 0, 0, integer11, 7, byg12, byg12, false);
|
|
this.generateBox(bju, cky, 15, integer11, 0, 15, integer11, 7, byg12, byg12, false);
|
|
this.generateBox(bju, cky, 1, integer11, 0, 15, integer11, 0, byg12, byg12, false);
|
|
this.generateBox(bju, cky, 1, integer11, 7, 14, integer11, 7, byg12, byg12, false);
|
|
}
|
|
this.generateBox(bju, cky, 2, 1, 3, 2, 7, 4, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 1, 2, 4, 7, 2, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 1, 5, 4, 7, 5, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 13, 1, 3, 13, 7, 4, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 11, 1, 2, 12, 7, 2, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 11, 1, 5, 12, 7, 5, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 3, 5, 3, 4, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 1, 3, 10, 3, 4, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 7, 2, 10, 7, 5, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 5, 2, 5, 7, 2, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 5, 2, 10, 7, 2, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 5, 5, 5, 7, 5, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 5, 5, 10, 7, 5, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.BASE_LIGHT, 6, 6, 2, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.BASE_LIGHT, 9, 6, 2, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.BASE_LIGHT, 6, 6, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.BASE_LIGHT, 9, 6, 5, cky);
|
|
this.generateBox(bju, cky, 5, 4, 3, 6, 4, 4, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 4, 3, 10, 4, 4, OceanMonumentDoubleXYRoom.BASE_LIGHT, OceanMonumentDoubleXYRoom.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.LAMP_BLOCK, 5, 4, 2, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.LAMP_BLOCK, 5, 4, 5, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.LAMP_BLOCK, 10, 4, 2, cky);
|
|
this.placeBlock(bju, OceanMonumentDoubleXYRoom.LAMP_BLOCK, 10, 4, 5, cky);
|
|
if (v8.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 0, 4, 2, 0);
|
|
}
|
|
if (v8.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 7, 4, 2, 7);
|
|
}
|
|
if (v8.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 3, 0, 2, 4);
|
|
}
|
|
if (v7.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 11, 1, 0, 12, 2, 0);
|
|
}
|
|
if (v7.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 11, 1, 7, 12, 2, 7);
|
|
}
|
|
if (v7.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 15, 1, 3, 15, 2, 4);
|
|
}
|
|
if (v9.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 5, 0, 4, 6, 0);
|
|
}
|
|
if (v9.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 5, 7, 4, 6, 7);
|
|
}
|
|
if (v9.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 5, 3, 0, 6, 4);
|
|
}
|
|
if (v10.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 11, 5, 0, 12, 6, 0);
|
|
}
|
|
if (v10.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 11, 5, 7, 12, 6, 7);
|
|
}
|
|
if (v10.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 15, 5, 3, 15, 6, 4);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentDoubleYZRoom extends OceanMonumentPiece {
|
|
public OceanMonumentDoubleYZRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_YZ_ROOM, 1, fp, v, 1, 2, 2);
|
|
}
|
|
|
|
public OceanMonumentDoubleYZRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_DOUBLE_YZ_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
final RoomDefinition v7 = this.roomDefinition.connections[Direction.NORTH.get3DDataValue()];
|
|
final RoomDefinition v8 = this.roomDefinition;
|
|
final RoomDefinition v9 = v7.connections[Direction.UP.get3DDataValue()];
|
|
final RoomDefinition v10 = v8.connections[Direction.UP.get3DDataValue()];
|
|
if (this.roomDefinition.index / 25 > 0) {
|
|
this.generateDefaultFloor(bju, cky, 0, 8, v7.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
this.generateDefaultFloor(bju, cky, 0, 0, v8.hasOpening[Direction.DOWN.get3DDataValue()]);
|
|
}
|
|
if (v10.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 8, 1, 6, 8, 7, OceanMonumentDoubleYZRoom.BASE_GRAY);
|
|
}
|
|
if (v9.connections[Direction.UP.get3DDataValue()] == null) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 8, 8, 6, 8, 14, OceanMonumentDoubleYZRoom.BASE_GRAY);
|
|
}
|
|
for (int integer11 = 1; integer11 <= 7; ++integer11) {
|
|
BlockState byg12 = OceanMonumentDoubleYZRoom.BASE_LIGHT;
|
|
if (integer11 == 2 || integer11 == 6) {
|
|
byg12 = OceanMonumentDoubleYZRoom.BASE_GRAY;
|
|
}
|
|
this.generateBox(bju, cky, 0, integer11, 0, 0, integer11, 15, byg12, byg12, false);
|
|
this.generateBox(bju, cky, 7, integer11, 0, 7, integer11, 15, byg12, byg12, false);
|
|
this.generateBox(bju, cky, 1, integer11, 0, 6, integer11, 0, byg12, byg12, false);
|
|
this.generateBox(bju, cky, 1, integer11, 15, 6, integer11, 15, byg12, byg12, false);
|
|
}
|
|
for (int integer11 = 1; integer11 <= 7; ++integer11) {
|
|
BlockState byg12 = OceanMonumentDoubleYZRoom.BASE_BLACK;
|
|
if (integer11 == 2 || integer11 == 6) {
|
|
byg12 = OceanMonumentDoubleYZRoom.LAMP_BLOCK;
|
|
}
|
|
this.generateBox(bju, cky, 3, integer11, 7, 4, integer11, 8, byg12, byg12, false);
|
|
}
|
|
if (v8.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 0, 4, 2, 0);
|
|
}
|
|
if (v8.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 7, 1, 3, 7, 2, 4);
|
|
}
|
|
if (v8.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 3, 0, 2, 4);
|
|
}
|
|
if (v7.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 1, 15, 4, 2, 15);
|
|
}
|
|
if (v7.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 1, 11, 0, 2, 12);
|
|
}
|
|
if (v7.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 7, 1, 11, 7, 2, 12);
|
|
}
|
|
if (v10.hasOpening[Direction.SOUTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 5, 0, 4, 6, 0);
|
|
}
|
|
if (v10.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 7, 5, 3, 7, 6, 4);
|
|
this.generateBox(bju, cky, 5, 4, 2, 6, 4, 5, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 2, 6, 3, 2, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 5, 6, 3, 5, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
}
|
|
if (v10.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 5, 3, 0, 6, 4);
|
|
this.generateBox(bju, cky, 1, 4, 2, 2, 4, 5, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 2, 1, 3, 2, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 5, 1, 3, 5, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
}
|
|
if (v9.hasOpening[Direction.NORTH.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 3, 5, 15, 4, 6, 15);
|
|
}
|
|
if (v9.hasOpening[Direction.WEST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 0, 5, 11, 0, 6, 12);
|
|
this.generateBox(bju, cky, 1, 4, 10, 2, 4, 13, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 10, 1, 3, 10, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 1, 13, 1, 3, 13, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
}
|
|
if (v9.hasOpening[Direction.EAST.get3DDataValue()]) {
|
|
this.generateWaterBox(bju, cky, 7, 5, 11, 7, 6, 12);
|
|
this.generateBox(bju, cky, 5, 4, 10, 6, 4, 13, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 10, 6, 3, 10, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 13, 6, 3, 13, OceanMonumentDoubleYZRoom.BASE_LIGHT, OceanMonumentDoubleYZRoom.BASE_LIGHT, false);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentCoreRoom extends OceanMonumentPiece {
|
|
public OceanMonumentCoreRoom(final Direction fp, final RoomDefinition v) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_CORE_ROOM, 1, fp, v, 2, 2, 2);
|
|
}
|
|
|
|
public OceanMonumentCoreRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_CORE_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
this.generateBoxOnFillOnly(bju, cky, 1, 8, 0, 14, 8, 14, OceanMonumentCoreRoom.BASE_GRAY);
|
|
int integer7 = 7;
|
|
BlockState byg8 = OceanMonumentCoreRoom.BASE_LIGHT;
|
|
this.generateBox(bju, cky, 0, 7, 0, 0, 7, 15, byg8, byg8, false);
|
|
this.generateBox(bju, cky, 15, 7, 0, 15, 7, 15, byg8, byg8, false);
|
|
this.generateBox(bju, cky, 1, 7, 0, 15, 7, 0, byg8, byg8, false);
|
|
this.generateBox(bju, cky, 1, 7, 15, 14, 7, 15, byg8, byg8, false);
|
|
for (integer7 = 1; integer7 <= 6; ++integer7) {
|
|
byg8 = OceanMonumentCoreRoom.BASE_LIGHT;
|
|
if (integer7 == 2 || integer7 == 6) {
|
|
byg8 = OceanMonumentCoreRoom.BASE_GRAY;
|
|
}
|
|
for (int integer8 = 0; integer8 <= 15; integer8 += 15) {
|
|
this.generateBox(bju, cky, integer8, integer7, 0, integer8, integer7, 1, byg8, byg8, false);
|
|
this.generateBox(bju, cky, integer8, integer7, 6, integer8, integer7, 9, byg8, byg8, false);
|
|
this.generateBox(bju, cky, integer8, integer7, 14, integer8, integer7, 15, byg8, byg8, false);
|
|
}
|
|
this.generateBox(bju, cky, 1, integer7, 0, 1, integer7, 0, byg8, byg8, false);
|
|
this.generateBox(bju, cky, 6, integer7, 0, 9, integer7, 0, byg8, byg8, false);
|
|
this.generateBox(bju, cky, 14, integer7, 0, 14, integer7, 0, byg8, byg8, false);
|
|
this.generateBox(bju, cky, 1, integer7, 15, 14, integer7, 15, byg8, byg8, false);
|
|
}
|
|
this.generateBox(bju, cky, 6, 3, 6, 9, 6, 9, OceanMonumentCoreRoom.BASE_BLACK, OceanMonumentCoreRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 7, 4, 7, 8, 5, 8, Blocks.GOLD_BLOCK.defaultBlockState(), Blocks.GOLD_BLOCK.defaultBlockState(), false);
|
|
for (integer7 = 3; integer7 <= 6; integer7 += 3) {
|
|
for (int integer9 = 6; integer9 <= 9; integer9 += 3) {
|
|
this.placeBlock(bju, OceanMonumentCoreRoom.LAMP_BLOCK, integer9, integer7, 6, cky);
|
|
this.placeBlock(bju, OceanMonumentCoreRoom.LAMP_BLOCK, integer9, integer7, 9, cky);
|
|
}
|
|
}
|
|
this.generateBox(bju, cky, 5, 1, 6, 5, 2, 6, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 1, 9, 5, 2, 9, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 1, 6, 10, 2, 6, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 1, 9, 10, 2, 9, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 5, 6, 2, 5, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 1, 5, 9, 2, 5, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 1, 10, 6, 2, 10, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 1, 10, 9, 2, 10, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 2, 5, 5, 6, 5, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 2, 10, 5, 6, 10, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 2, 5, 10, 6, 5, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 2, 10, 10, 6, 10, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 7, 1, 5, 7, 6, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 7, 1, 10, 7, 6, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 5, 7, 9, 5, 7, 14, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 7, 9, 10, 7, 14, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 7, 5, 6, 7, 5, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 7, 10, 6, 7, 10, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 7, 5, 14, 7, 5, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 7, 10, 14, 7, 10, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 1, 2, 2, 1, 3, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 1, 2, 3, 1, 2, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 13, 1, 2, 13, 1, 3, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 12, 1, 2, 12, 1, 2, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 2, 1, 12, 2, 1, 13, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 3, 1, 13, 3, 1, 13, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 13, 1, 12, 13, 1, 13, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 12, 1, 13, 12, 1, 13, OceanMonumentCoreRoom.BASE_LIGHT, OceanMonumentCoreRoom.BASE_LIGHT, false);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentWingRoom extends OceanMonumentPiece {
|
|
private int mainDesign;
|
|
|
|
public OceanMonumentWingRoom(final Direction fp, final BoundingBox cky, final int integer) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_WING_ROOM, fp, cky);
|
|
this.mainDesign = (integer & 0x1);
|
|
}
|
|
|
|
public OceanMonumentWingRoom(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_WING_ROOM, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
if (this.mainDesign == 0) {
|
|
for (int integer7 = 0; integer7 < 4; ++integer7) {
|
|
this.generateBox(bju, cky, 10 - integer7, 3 - integer7, 20 - integer7, 12 + integer7, 3 - integer7, 20, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
}
|
|
this.generateBox(bju, cky, 7, 0, 6, 15, 0, 16, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, 0, 6, 6, 3, 20, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 16, 0, 6, 16, 3, 20, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 7, 7, 1, 20, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 15, 1, 7, 15, 1, 20, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 7, 1, 6, 9, 3, 6, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 13, 1, 6, 15, 3, 6, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 8, 1, 7, 9, 1, 7, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 13, 1, 7, 14, 1, 7, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 0, 5, 13, 0, 5, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 10, 0, 7, 12, 0, 7, OceanMonumentWingRoom.BASE_BLACK, OceanMonumentWingRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 8, 0, 10, 8, 0, 12, OceanMonumentWingRoom.BASE_BLACK, OceanMonumentWingRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 14, 0, 10, 14, 0, 12, OceanMonumentWingRoom.BASE_BLACK, OceanMonumentWingRoom.BASE_BLACK, false);
|
|
for (int integer7 = 18; integer7 >= 7; integer7 -= 3) {
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 6, 3, integer7, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 16, 3, integer7, cky);
|
|
}
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 10, 0, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 12, 0, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 10, 0, 12, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 12, 0, 12, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 8, 3, 6, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 14, 3, 6, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 4, 2, 4, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 4, 1, 4, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 4, 0, 4, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 18, 2, 4, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 18, 1, 4, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 18, 0, 4, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 4, 2, 18, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 4, 1, 18, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 4, 0, 18, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 18, 2, 18, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, 18, 1, 18, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 18, 0, 18, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 9, 7, 20, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, 13, 7, 20, cky);
|
|
this.generateBox(bju, cky, 6, 0, 21, 7, 4, 21, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 15, 0, 21, 16, 4, 21, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.spawnElder(bju, cky, 11, 2, 16);
|
|
}
|
|
else if (this.mainDesign == 1) {
|
|
this.generateBox(bju, cky, 9, 3, 18, 13, 3, 20, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 0, 18, 9, 2, 18, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 13, 0, 18, 13, 2, 18, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
int integer7 = 9;
|
|
final int integer8 = 20;
|
|
final int integer9 = 5;
|
|
for (int integer10 = 0; integer10 < 2; ++integer10) {
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, integer7, 6, 20, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, integer7, 5, 20, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.BASE_LIGHT, integer7, 4, 20, cky);
|
|
integer7 = 13;
|
|
}
|
|
this.generateBox(bju, cky, 7, 3, 7, 15, 3, 14, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
integer7 = 10;
|
|
for (int integer10 = 0; integer10 < 2; ++integer10) {
|
|
this.generateBox(bju, cky, integer7, 0, 10, integer7, 6, 10, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer7, 0, 12, integer7, 6, 12, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, integer7, 0, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, integer7, 0, 12, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, integer7, 4, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentWingRoom.LAMP_BLOCK, integer7, 4, 12, cky);
|
|
integer7 = 12;
|
|
}
|
|
integer7 = 8;
|
|
for (int integer10 = 0; integer10 < 2; ++integer10) {
|
|
this.generateBox(bju, cky, integer7, 0, 7, integer7, 2, 7, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, integer7, 0, 14, integer7, 2, 14, OceanMonumentWingRoom.BASE_LIGHT, OceanMonumentWingRoom.BASE_LIGHT, false);
|
|
integer7 = 14;
|
|
}
|
|
this.generateBox(bju, cky, 8, 3, 8, 8, 3, 13, OceanMonumentWingRoom.BASE_BLACK, OceanMonumentWingRoom.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 14, 3, 8, 14, 3, 13, OceanMonumentWingRoom.BASE_BLACK, OceanMonumentWingRoom.BASE_BLACK, false);
|
|
this.spawnElder(bju, cky, 11, 5, 13);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public static class OceanMonumentPenthouse extends OceanMonumentPiece {
|
|
public OceanMonumentPenthouse(final Direction fp, final BoundingBox cky) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_PENTHOUSE, fp, cky);
|
|
}
|
|
|
|
public OceanMonumentPenthouse(final StructureManager cml, final CompoundTag jt) {
|
|
super(StructurePieceType.OCEAN_MONUMENT_PENTHOUSE, jt);
|
|
}
|
|
|
|
@Override
|
|
public boolean postProcess(final LevelAccessor bju, final ChunkGenerator<?> bzx, final Random random, final BoundingBox cky, final ChunkPos bje) {
|
|
this.generateBox(bju, cky, 2, -1, 2, 11, -1, 11, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 0, -1, 0, 1, -1, 11, OceanMonumentPenthouse.BASE_GRAY, OceanMonumentPenthouse.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 12, -1, 0, 13, -1, 11, OceanMonumentPenthouse.BASE_GRAY, OceanMonumentPenthouse.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 2, -1, 0, 11, -1, 1, OceanMonumentPenthouse.BASE_GRAY, OceanMonumentPenthouse.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 2, -1, 12, 11, -1, 13, OceanMonumentPenthouse.BASE_GRAY, OceanMonumentPenthouse.BASE_GRAY, false);
|
|
this.generateBox(bju, cky, 0, 0, 0, 0, 0, 13, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 13, 0, 0, 13, 0, 13, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 0, 0, 12, 0, 0, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 1, 0, 13, 12, 0, 13, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
for (int integer7 = 2; integer7 <= 11; integer7 += 3) {
|
|
this.placeBlock(bju, OceanMonumentPenthouse.LAMP_BLOCK, 0, 0, integer7, cky);
|
|
this.placeBlock(bju, OceanMonumentPenthouse.LAMP_BLOCK, 13, 0, integer7, cky);
|
|
this.placeBlock(bju, OceanMonumentPenthouse.LAMP_BLOCK, integer7, 0, 0, cky);
|
|
}
|
|
this.generateBox(bju, cky, 2, 0, 3, 4, 0, 9, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 9, 0, 3, 11, 0, 9, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 4, 0, 9, 9, 0, 11, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.placeBlock(bju, OceanMonumentPenthouse.BASE_LIGHT, 5, 0, 8, cky);
|
|
this.placeBlock(bju, OceanMonumentPenthouse.BASE_LIGHT, 8, 0, 8, cky);
|
|
this.placeBlock(bju, OceanMonumentPenthouse.BASE_LIGHT, 10, 0, 10, cky);
|
|
this.placeBlock(bju, OceanMonumentPenthouse.BASE_LIGHT, 3, 0, 10, cky);
|
|
this.generateBox(bju, cky, 3, 0, 3, 3, 0, 7, OceanMonumentPenthouse.BASE_BLACK, OceanMonumentPenthouse.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 10, 0, 3, 10, 0, 7, OceanMonumentPenthouse.BASE_BLACK, OceanMonumentPenthouse.BASE_BLACK, false);
|
|
this.generateBox(bju, cky, 6, 0, 10, 7, 0, 10, OceanMonumentPenthouse.BASE_BLACK, OceanMonumentPenthouse.BASE_BLACK, false);
|
|
int integer7 = 3;
|
|
for (int integer8 = 0; integer8 < 2; ++integer8) {
|
|
for (int integer9 = 2; integer9 <= 8; integer9 += 3) {
|
|
this.generateBox(bju, cky, integer7, 0, integer9, integer7, 2, integer9, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
}
|
|
integer7 = 10;
|
|
}
|
|
this.generateBox(bju, cky, 5, 0, 10, 5, 2, 10, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 8, 0, 10, 8, 2, 10, OceanMonumentPenthouse.BASE_LIGHT, OceanMonumentPenthouse.BASE_LIGHT, false);
|
|
this.generateBox(bju, cky, 6, -1, 7, 7, -1, 8, OceanMonumentPenthouse.BASE_BLACK, OceanMonumentPenthouse.BASE_BLACK, false);
|
|
this.generateWaterBox(bju, cky, 6, -1, 3, 7, -1, 4);
|
|
this.spawnElder(bju, cky, 6, 1, 6);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
static class RoomDefinition {
|
|
private final int index;
|
|
private final RoomDefinition[] connections;
|
|
private final boolean[] hasOpening;
|
|
private boolean claimed;
|
|
private boolean isSource;
|
|
private int scanIndex;
|
|
|
|
public RoomDefinition(final int integer) {
|
|
this.connections = new RoomDefinition[6];
|
|
this.hasOpening = new boolean[6];
|
|
this.index = integer;
|
|
}
|
|
|
|
public void setConnection(final Direction fp, final RoomDefinition v) {
|
|
this.connections[fp.get3DDataValue()] = v;
|
|
v.connections[fp.getOpposite().get3DDataValue()] = this;
|
|
}
|
|
|
|
public void updateOpenings() {
|
|
for (int integer2 = 0; integer2 < 6; ++integer2) {
|
|
this.hasOpening[integer2] = (this.connections[integer2] != null);
|
|
}
|
|
}
|
|
|
|
public boolean findSource(final int integer) {
|
|
if (this.isSource) {
|
|
return true;
|
|
}
|
|
this.scanIndex = integer;
|
|
for (int integer2 = 0; integer2 < 6; ++integer2) {
|
|
if (this.connections[integer2] != null && this.hasOpening[integer2] && this.connections[integer2].scanIndex != integer && this.connections[integer2].findSource(integer)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean isSpecial() {
|
|
return this.index >= 75;
|
|
}
|
|
|
|
public int countOpenings() {
|
|
int integer2 = 0;
|
|
for (int integer3 = 0; integer3 < 6; ++integer3) {
|
|
if (this.hasOpening[integer3]) {
|
|
++integer2;
|
|
}
|
|
}
|
|
return integer2;
|
|
}
|
|
}
|
|
|
|
static class FitSimpleRoom implements MonumentRoomFitter {
|
|
private FitSimpleRoom() {
|
|
}
|
|
|
|
@Override
|
|
public boolean fits(final RoomDefinition v) {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random) {
|
|
v.claimed = true;
|
|
return new OceanMonumentSimpleRoom(fp, v, random);
|
|
}
|
|
}
|
|
|
|
static class FitSimpleTopRoom implements MonumentRoomFitter {
|
|
private FitSimpleTopRoom() {
|
|
}
|
|
|
|
@Override
|
|
public boolean fits(final RoomDefinition v) {
|
|
return !v.hasOpening[Direction.WEST.get3DDataValue()] && !v.hasOpening[Direction.EAST.get3DDataValue()] && !v.hasOpening[Direction.NORTH.get3DDataValue()] && !v.hasOpening[Direction.SOUTH.get3DDataValue()] && !v.hasOpening[Direction.UP.get3DDataValue()];
|
|
}
|
|
|
|
@Override
|
|
public OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random) {
|
|
v.claimed = true;
|
|
return new OceanMonumentSimpleTopRoom(fp, v);
|
|
}
|
|
}
|
|
|
|
static class FitDoubleYRoom implements MonumentRoomFitter {
|
|
private FitDoubleYRoom() {
|
|
}
|
|
|
|
@Override
|
|
public boolean fits(final RoomDefinition v) {
|
|
return v.hasOpening[Direction.UP.get3DDataValue()] && !v.connections[Direction.UP.get3DDataValue()].claimed;
|
|
}
|
|
|
|
@Override
|
|
public OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random) {
|
|
v.claimed = true;
|
|
v.connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
return new OceanMonumentDoubleYRoom(fp, v);
|
|
}
|
|
}
|
|
|
|
static class FitDoubleXRoom implements MonumentRoomFitter {
|
|
private FitDoubleXRoom() {
|
|
}
|
|
|
|
@Override
|
|
public boolean fits(final RoomDefinition v) {
|
|
return v.hasOpening[Direction.EAST.get3DDataValue()] && !v.connections[Direction.EAST.get3DDataValue()].claimed;
|
|
}
|
|
|
|
@Override
|
|
public OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random) {
|
|
v.claimed = true;
|
|
v.connections[Direction.EAST.get3DDataValue()].claimed = true;
|
|
return new OceanMonumentDoubleXRoom(fp, v);
|
|
}
|
|
}
|
|
|
|
static class FitDoubleZRoom implements MonumentRoomFitter {
|
|
private FitDoubleZRoom() {
|
|
}
|
|
|
|
@Override
|
|
public boolean fits(final RoomDefinition v) {
|
|
return v.hasOpening[Direction.NORTH.get3DDataValue()] && !v.connections[Direction.NORTH.get3DDataValue()].claimed;
|
|
}
|
|
|
|
@Override
|
|
public OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random) {
|
|
RoomDefinition v2 = v;
|
|
if (!v.hasOpening[Direction.NORTH.get3DDataValue()] || v.connections[Direction.NORTH.get3DDataValue()].claimed) {
|
|
v2 = v.connections[Direction.SOUTH.get3DDataValue()];
|
|
}
|
|
v2.claimed = true;
|
|
v2.connections[Direction.NORTH.get3DDataValue()].claimed = true;
|
|
return new OceanMonumentDoubleZRoom(fp, v2);
|
|
}
|
|
}
|
|
|
|
static class FitDoubleXYRoom implements MonumentRoomFitter {
|
|
private FitDoubleXYRoom() {
|
|
}
|
|
|
|
@Override
|
|
public boolean fits(final RoomDefinition v) {
|
|
if (v.hasOpening[Direction.EAST.get3DDataValue()] && !v.connections[Direction.EAST.get3DDataValue()].claimed && v.hasOpening[Direction.UP.get3DDataValue()] && !v.connections[Direction.UP.get3DDataValue()].claimed) {
|
|
final RoomDefinition v2 = v.connections[Direction.EAST.get3DDataValue()];
|
|
return v2.hasOpening[Direction.UP.get3DDataValue()] && !v2.connections[Direction.UP.get3DDataValue()].claimed;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random) {
|
|
v.claimed = true;
|
|
v.connections[Direction.EAST.get3DDataValue()].claimed = true;
|
|
v.connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
v.connections[Direction.EAST.get3DDataValue()].connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
return new OceanMonumentDoubleXYRoom(fp, v);
|
|
}
|
|
}
|
|
|
|
static class FitDoubleYZRoom implements MonumentRoomFitter {
|
|
private FitDoubleYZRoom() {
|
|
}
|
|
|
|
@Override
|
|
public boolean fits(final RoomDefinition v) {
|
|
if (v.hasOpening[Direction.NORTH.get3DDataValue()] && !v.connections[Direction.NORTH.get3DDataValue()].claimed && v.hasOpening[Direction.UP.get3DDataValue()] && !v.connections[Direction.UP.get3DDataValue()].claimed) {
|
|
final RoomDefinition v2 = v.connections[Direction.NORTH.get3DDataValue()];
|
|
return v2.hasOpening[Direction.UP.get3DDataValue()] && !v2.connections[Direction.UP.get3DDataValue()].claimed;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random) {
|
|
v.claimed = true;
|
|
v.connections[Direction.NORTH.get3DDataValue()].claimed = true;
|
|
v.connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
v.connections[Direction.NORTH.get3DDataValue()].connections[Direction.UP.get3DDataValue()].claimed = true;
|
|
return new OceanMonumentDoubleYZRoom(fp, v);
|
|
}
|
|
}
|
|
|
|
interface MonumentRoomFitter {
|
|
boolean fits(final RoomDefinition v);
|
|
|
|
OceanMonumentPiece create(final Direction fp, final RoomDefinition v, final Random random);
|
|
}
|
|
}
|