diff --git a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java index 0e4832ad4..09c75e5cd 100644 --- a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java +++ b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java @@ -49,7 +49,7 @@ public class ItemStructurePattern extends ItemStructureTool { Block b = world.getBlock(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); int meta = world.getBlockMetadata(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); - message.concat("placeBlockAtCurrentPosition(world, " + b.getUnlocalizedName() + ", " + meta + ", " + ix + ", " + iy + ", " + iz + ", box);\n"); + message += "placeBlockAtCurrentPosition(world, " + b.getUnlocalizedName() + ", " + meta + ", " + ix + ", " + iy + ", " + iz + ", box);\n"; } } } diff --git a/src/main/java/com/hbm/items/tool/ItemStructureTool.java b/src/main/java/com/hbm/items/tool/ItemStructureTool.java index 62e43b03c..de10db59e 100644 --- a/src/main/java/com/hbm/items/tool/ItemStructureTool.java +++ b/src/main/java/com/hbm/items/tool/ItemStructureTool.java @@ -137,6 +137,9 @@ public abstract class ItemStructureTool extends Item implements ILookOverlay { } } + if(Minecraft.getMinecraft().thePlayer.isSneaking()) + text.add("B: " + world.getBlock(x, y, z).getUnlocalizedName() + ", M: " + world.getBlockMetadata(x, y, z)); + ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 482b03486..b3fff506b 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -34,6 +34,14 @@ public class ItemWandD extends Item { //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + /*int i = pos.blockX >> 4; + int j = pos.blockZ >> 4; + + i = (i << 4) + 8; + j = (j << 4) + 8; + Component comp = new RuralHouse1(world.rand, i, j); + comp.addComponentParts(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32));*/ + /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); TimeAnalyzer.startEndCount("getBlock"); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 59e7bf136..c0bda98a8 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -17,6 +17,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.ChunkCoordIntPair; public class HbmChestContents { @@ -419,21 +420,43 @@ public class HbmChestContents { public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general String key; int pages; - switch(rand.nextInt(10)) { - case 0: key = "resignation_note"; pages = 3; break; - case 1: key = "memo_stocks"; pages = 1; break; - case 2: key = "memo_schrab_gsa"; pages = 2; break; - case 3: key = "memo_schrab_rd"; pages = 4; break; - case 4: key = "memo_schrab_nuke"; pages = 3; break; - case 5: key = "bf_bomb_1"; pages = 4; break; - case 6: key = "bf_bomb_2"; pages = 6; break; - case 7: key = "bf_bomb_3"; pages = 6; break; - case 8: key = "bf_bomb_4"; pages = 5; break; - case 9: key = "bf_bomb_5"; pages = 9; break; + switch(rand.nextInt(5)) { + case 0: + key = "resignation_note"; pages = 3; break; + case 1: + key = "memo_stocks"; pages = 1; break; + case 2: + key = "memo_schrab_gsa"; pages = 2; break; + case 3: + key = "memo_schrab_rd"; pages = 4; break; + case 4: + key = "memo_schrab_nuke"; pages = 3; break; default: return null; } return ItemBookLore.createBook(key, pages, 0x6BC8FF, 0x0A0A0A); } + + public static ItemStack generateLabBook(Random rand) { + String key; + int pages; + + switch(rand.nextInt(5)) { + case 0: + key = "bf_bomb_1"; pages = 4; break; + case 1: + key = "bf_bomb_2"; pages = 6; break; + case 2: + key = "bf_bomb_3"; pages = 6; break; + case 3: + key = "bf_bomb_4"; pages = 5; break; + case 4: + key = "bf_bomb_5"; pages = 9; break; + default: + return null; + } + + return ItemBookLore.createBook(key, pages, 0x1E1E1E, 0x46EA44); + } } diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index 4a24a192f..e8c745f28 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -3,10 +3,10 @@ package com.hbm.lib; import com.hbm.world.gen.MapGenNTMFeatures; import com.hbm.world.gen.NTMWorldGenerator; import com.hbm.world.gen.component.BunkerComponents; +import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import com.hbm.world.gen.component.CivilianFeatures; import com.hbm.world.gen.component.OfficeFeatures; import com.hbm.world.gen.component.RuinFeatures; -import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; @@ -19,6 +19,8 @@ public class HbmWorld { initWorldGen(); } + public static NTMWorldGenerator worldGenerator; + public static void initWorldGen() { //MapGenStructureIO.registerStructure(StructureStartTest.class, "HFR_STRUCTURE"); @@ -29,7 +31,7 @@ public class HbmWorld { registerWorldGen(new HbmWorldGen(), 1); - NTMWorldGenerator worldGenerator = new NTMWorldGenerator(); + worldGenerator = new NTMWorldGenerator(); registerWorldGen(worldGenerator, 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator MinecraftForge.EVENT_BUS.register(worldGenerator); //registerWorldGen(new WorldGenTest(), 1); diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 537796427..aaf90910e 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -101,23 +101,21 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { - if(world.rand.nextInt(2) == 0) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0, 0, 0.125); + boolean r = world.rand.nextBoolean(); + if(r) + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0.125, 0.025, 0.25); + + if(!r || world.rand.nextBoolean()) + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wrench), -0.25, 0, -0.28125); int count = world.rand.nextInt(2) + 1; for(int i = 0; i < count; i++) { - int type = world.rand.nextInt(2); - Item parts = type < 1 ? ModItems.plate_steel : ModItems.mechanism_rifle_1; - addItemWithDeviation(loot, world.rand, new ItemStack(parts), -0.3125, i * 0.03125, 0.3125); + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.plate_steel), -0.25, i * 0.03125, 0.3125); } count = world.rand.nextInt(2) + 2; for(int i = 0; i < count; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wire_aluminium), 0.3125, i * 0.03125, -0.125); - - int type = world.rand.nextInt(4); - Item tool = type > 2 ? ModItems.wrench : ModItems.screwdriver; - addItemWithDeviation(loot, world.rand, new ItemStack(tool), 0.005, 0, -0.3125); + addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wire_aluminium), 0.25, i * 0.03125, 0.1875); } } @@ -183,4 +181,22 @@ public class LootGenerator { } } } + + public static void lootBookLore(World world, int x, int y, int z, ItemStack book) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + addItemWithDeviation(loot, world.rand, book, 0, 0, -0.25); + + int count = world.rand.nextInt(3) + 2; + for(int k = 0; k < count; k++) + addItemWithDeviation(loot, world.rand, new ItemStack(Items.book), -0.25, k * 0.03125, 0.25); + + count = world.rand.nextInt(2) + 1; + for(int k = 0; k < count; k++) + addItemWithDeviation(loot, world.rand, new ItemStack(Items.paper), 0.25, k * 0.03125, 0.125); + } + } + } diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index c5383cca0..018da9c7f 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -8,9 +8,18 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; import com.hbm.world.gen.component.BunkerComponents.BunkerStart; -import com.hbm.world.gen.component.CivilianFeatures.*; -import com.hbm.world.gen.component.OfficeFeatures.*; -import com.hbm.world.gen.component.RuinFeatures.*; +import com.hbm.world.gen.component.CivilianFeatures.NTMHouse1; +import com.hbm.world.gen.component.CivilianFeatures.NTMHouse2; +import com.hbm.world.gen.component.CivilianFeatures.NTMLab1; +import com.hbm.world.gen.component.CivilianFeatures.NTMLab2; +import com.hbm.world.gen.component.CivilianFeatures.NTMWorkshop1; +import com.hbm.world.gen.component.CivilianFeatures.RuralHouse1; +import com.hbm.world.gen.component.OfficeFeatures.LargeOffice; +import com.hbm.world.gen.component.OfficeFeatures.LargeOfficeCorner; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin1; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin2; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin3; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin4; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -103,8 +112,10 @@ public class MapGenNTMFeatures extends MapGenStructure { public Start(World world, Random rand, int chunkX, int chunkZ) { super(chunkX, chunkZ); - BiomeGenBase biome = world.getBiomeGenForCoords(chunkX * 16 + 8, chunkZ * 16 + 8); //Only gets the biome in the corner of the chunk. - final int posY = 64; // Terrain *does not exist* at this stage - at least, for vanilla. Here it has to be called after, but better safe than sorry. + int i = (chunkX << 4) + 8; + int j = (chunkZ << 4) + 8; + + BiomeGenBase biome = world.getBiomeGenForCoords(i, j); //Only gets the biome in the corner of the chunk. /* * Probably want to use nextInt() to increase the structures of rarity here. As a fallback, you could have generic stone brick/useless block ruins that will always be chosen if the @@ -112,56 +123,61 @@ public class MapGenNTMFeatures extends MapGenStructure { * Rainfall & Temperature Check */ //TODO: Do something about this so it's nice-looking and easily readable. Plus, test compatibility against mods like BoP + if(rand.nextInt(3) == 0) { //Empty Ruin Structures switch(rand.nextInt(4)) { case 0: - NTMRuin1 ruin1 = new NTMRuin1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin1 ruin1 = new NTMRuin1(rand, i, j); this.components.add(ruin1); break; case 1: - NTMRuin2 ruin2 = new NTMRuin2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin2 ruin2 = new NTMRuin2(rand, i, j); this.components.add(ruin2); break; case 2: - NTMRuin3 ruin3 = new NTMRuin3(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin3 ruin3 = new NTMRuin3(rand, i, j); this.components.add(ruin3); break; case 3: - NTMRuin4 ruin4 = new NTMRuin4(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin4 ruin4 = new NTMRuin4(rand, i, j); this.components.add(ruin4); } } else if(biome.temperature >= 1.0 && biome.rainfall == 0 && !(biome instanceof BiomeGenMesa)) { //Desert & Savannah if(rand.nextBoolean()) { - NTMHouse1 house1 = new NTMHouse1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMHouse1 house1 = new NTMHouse1(rand, i, j); this.components.add(house1); } else { - NTMHouse2 house2 = new NTMHouse2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMHouse2 house2 = new NTMHouse2(rand, i, j); this.components.add(house2); } } else if(biome.temperature >= 0.25 && biome.temperature <= 0.3 && biome.rainfall >= 0.6 && biome.rainfall <= 0.9 && rand.nextBoolean()) { //Taiga & Mega Taiga - NTMWorkshop1 workshop1 = new NTMWorkshop1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMWorkshop1 workshop1 = new NTMWorkshop1(rand, i, j); //TODO replace this this.components.add(workshop1); } else { //Everything else - switch(rand.nextInt(4)) { + switch(rand.nextInt(6)) { case 0: - NTMLab2 lab2 = new NTMLab2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMLab2 lab2 = new NTMLab2(rand, i, j); //and these, too this.components.add(lab2); break; case 1: - NTMLab1 lab1 = new NTMLab1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMLab1 lab1 = new NTMLab1(rand, i, j); this.components.add(lab1); break; case 2: - LargeOffice office = new LargeOffice(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + LargeOffice office = new LargeOffice(rand, i, j); this.components.add(office); break; case 3: - LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, i, j); this.components.add(officeCorner); break; + case 4: + case 5: + RuralHouse1 ruralHouse = new RuralHouse1(rand, i, j); + this.components.add(ruralHouse); break; } } if(GeneralConfig.enableDebugMode) { - System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + posY + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); + System.out.print("[Debug] StructureStart at " + i + ", 64, " + j + "\n[Debug] Components: "); this.components.forEach((component) -> { System.out.print(MapGenStructureIO.func_143036_a((StructureComponent) component) + " "); }); diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 52f975161..9b7883dc9 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -17,15 +17,15 @@ import static net.minecraftforge.event.terraingen.TerrainGen.*; import net.minecraftforge.event.world.WorldEvent; public class NTMWorldGenerator implements IWorldGenerator { - - private MapGenNTMFeatures scatteredFeatureGenerator = new MapGenNTMFeatures(); + private MapGenNTMFeatures scatteredFeatureGen = new MapGenNTMFeatures(); private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. /** Inits all MapGen upon the loading of a new world. Hopefully clears out structureMaps and structureData when a different world is loaded. */ @SubscribeEvent public void onLoad(WorldEvent.Load event) { - scatteredFeatureGenerator = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + hasPopulationEvent = false; } @@ -65,8 +65,8 @@ public class NTMWorldGenerator implements IWorldGenerator { protected void generateOverworldStructures(World world, IChunkProvider chunkProvider, int chunkX, int chunkZ) { Block[] ablock = new Block[65536]; //ablock isn't actually used for anything in MapGenStructure - this.scatteredFeatureGenerator.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); - this.scatteredFeatureGenerator.generateStructuresInChunk(world, rand, chunkX, chunkZ); + this.scatteredFeatureGen.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); + this.scatteredFeatureGen.generateStructuresInChunk(world, rand, chunkX, chunkZ); } /* @@ -116,4 +116,13 @@ public class NTMWorldGenerator implements IWorldGenerator { return true; } + + /** utility method, same as above but inclusive. useful for catch-alls, like the dirty glass structures have */ + public static boolean doesBiomeHaveTypes(BiomeGenBase biome, Type... types) { + for(Type type : types) { + if(isBiomeOfType(biome, type)) return true; + } + + return false; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 26d7faaba..c6f3c67f4 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -8,6 +8,7 @@ import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.lib.HbmChestContents; import com.hbm.util.LootGenerator; +import net.minecraft.block.BlockStairs; import net.minecraft.init.Blocks; import net.minecraft.item.ItemDoor; import net.minecraft.nbt.NBTTagCompound; @@ -25,9 +26,10 @@ public class CivilianFeatures { public static void registerComponents() { MapGenStructureIO.func_143031_a(NTMHouse1.class, "NTMHouse1"); MapGenStructureIO.func_143031_a(NTMHouse2.class, "NTMHouse2"); - MapGenStructureIO.func_143031_a(NTMLab1.class, "NTMLab1"); + MapGenStructureIO.func_143031_a(NTMLab1.class, "NTMLab1"); //i'll replace these shitty structures one day trust MapGenStructureIO.func_143031_a(NTMLab2.class, "NTMLab2"); MapGenStructureIO.func_143031_a(NTMWorkshop1.class, "NTMWorkshop1"); + MapGenStructureIO.func_143031_a(RuralHouse1.class, "NTMRuralHouse1"); } /** Sandstone Ruin 1 */ @@ -42,8 +44,8 @@ public class CivilianFeatures { } /** Constructor for this feature; takes coordinates for bounding box */ - public NTMHouse1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 9, 4, 6); + public NTMHouse1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 9, 4, 6); this.hasPlacedChest = false; } @@ -88,27 +90,27 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 9, 6, -1, box); //Walls - this.fillWithRandomizedBlocks(world, box, 0, 0, 0, sizeX, 0, 0, false, rand, RandomSandstone); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 9, 0, 0, false, rand, RandomSandstone); //Back Wall this.fillWithRandomizedBlocks(world, box, 0, 1, 0, 1, 1, 0, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 2, 1, 0, box); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 5, 1, 0, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 0, box); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 0, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX, 1, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 2, 0, sizeX - 2, 2, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 1, sizeZ, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 9 - 1, 1, 0, 9, 1, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 2, 0, 9 - 2, 2, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 1, 6, false, rand, RandomSandstone); //Left Wall this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 0, 2, 1, box); - this.fillWithMetadataBlocks(world, box, 0, 2, 3, 0, 2, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 1, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, 3, 0, sizeZ, sizeX, 1, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 1, 2, sizeZ, 3, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithMetadataBlocks(world, box, 4, 2, sizeZ, 5, 2, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 2, 2, sizeZ, box); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 0, sizeX, 0, sizeZ, false, rand, RandomSandstone); //Right Wall - this.randomlyFillWithBlocks(world, box, rand, 0.65F, sizeX, 1, 1, sizeX, 1, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 0, 2, 3, 0, 2, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 6, 1, 1, 6, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 3, 0, 6, 9, 1, 6, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 1, 2, 6, 3, 2, 6, false, rand, RandomSandstone); + this.fillWithMetadataBlocks(world, box, 4, 2, 6, 5, 2, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 9 - 2, 2, 6, box); + this.fillWithRandomizedBlocks(world, box, 9, 0, 0, 9, 0, 6, false, rand, RandomSandstone); //Right Wall + this.randomlyFillWithBlocks(world, box, rand, 0.65F, 9, 1, 1, 9, 1, 6 - 1, Blocks.sand, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 4, 0, 1, 4, 1, 3, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, ModBlocks.reinforced_sand, 0, 4, 0, 4, box); @@ -120,9 +122,9 @@ public class CivilianFeatures { this.fillWithBlocks(world, box, 5, 0, 1, 6, 0, 1, ModBlocks.crate, Blocks.air, false); this.placeBlockAtCurrentPosition(world, Blocks.sand, 0, 7, 0, 1, box); if(rand.nextFloat() <= 0.25) - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, sizeX - 1, 0, 1, box); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 2, 3, 0, sizeZ - 1, Blocks.sand, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 5, 0, 2, sizeX - 1, 0, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, 9 - 1, 0, 1, box); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 2, 3, 0, 6 - 1, Blocks.sand, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 5, 0, 2, 9 - 1, 0, 6 - 1, Blocks.sand, Blocks.air, false); return true; } @@ -139,8 +141,8 @@ public class CivilianFeatures { super(); } - public NTMHouse2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 15, 5, 9); + public NTMHouse2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 15, 5, 9); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -168,10 +170,10 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 6, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 9, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 6, 15, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 9, 0, 15, 9, -1, box); - this.fillWithAir(world, box, 1, 0, 1, 5, sizeY, sizeZ - 1); + this.fillWithAir(world, box, 1, 0, 1, 5, 5, 9 - 1); //House 1 this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 6, 1, 0, false, rand, RandomSandstone); //Back Wall @@ -181,72 +183,72 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 4, 2, 0, box); this.fillWithRandomizedBlocks(world, box, 5, 2, 0, 6, 2, 0, false, rand, RandomSandstone); this.fillWithRandomizedBlocks(world, box, 0, 3, 0, 6, 3, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 3, sizeZ, false, rand, RandomSandstone); //Left Wall - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 6, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, 1, 2, sizeZ, 1, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, 2, 2, sizeZ, 4, 2, sizeZ, Blocks.fence, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 5, 2, sizeZ, 6, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 1, 3, sizeZ, 6, 3, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ - 1, 6, 3, sizeZ - 1, false, rand, RandomSandstone); //Right Wall - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ - 2, 6, 0, sizeZ - 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 3, sizeZ - 2, 6, 3, sizeZ - 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 0, 1, 6, 3, sizeZ - 3, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 3, 9, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 9, 6, 1, 9, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 1, 2, 9, 1, 2, 9, false, rand, RandomSandstone); + this.fillWithBlocks(world, box, 2, 2, 9, 4, 2, 9, Blocks.fence, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 5, 2, 9, 6, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 1, 3, 9, 6, 3, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 0, 9 - 1, 6, 3, 9 - 1, false, rand, RandomSandstone); //Right Wall + this.fillWithRandomizedBlocks(world, box, 6, 0, 9 - 2, 6, 0, 9 - 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 3, 9 - 2, 6, 3, 9 - 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 0, 1, 6, 3, 9 - 3, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, 1, 0, 1, 5, 0, sizeZ - 1, Blocks.sandstone, Blocks.air, false); //Floor - //this.fillWithRandomizedBlocks(world, box, 1, sizeY - 1, 0, 5, sizeY - 1, sizeZ, false, rand, RandomSandstone); //Ceiling - this.fillWithBlocks(world, box, 1, sizeY - 1, 0, 5, sizeY - 1, sizeZ, Blocks.sandstone, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 0, sizeY - 1, 0, 0, sizeY - 1, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); //Roof - this.fillWithMetadataBlocks(world, box, 6, sizeY - 1, 0, 6, sizeY - 1, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, sizeY, 0, 4, sizeY, 0, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, sizeY, 1, 3, sizeY, 2, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, sizeY, 4, 3, sizeY, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 3, sizeY, sizeZ - 1, box); - this.fillWithMetadataBlocks(world, box, 2, sizeY, sizeZ, 4, sizeY, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 1, 0, 1, 5, 0, 9 - 1, Blocks.sandstone, Blocks.air, false); //Floor + //this.fillWithRandomizedBlocks(world, box, 1, 5 - 1, 0, 5, 5 - 1, 9, false, rand, RandomSandstone); //Ceiling + this.fillWithBlocks(world, box, 1, 5 - 1, 0, 5, 5 - 1, 9, Blocks.sandstone, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 0, 5 - 1, 0, 0, 5 - 1, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); //Roof + this.fillWithMetadataBlocks(world, box, 6, 5 - 1, 0, 6, 5 - 1, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 5, 0, 4, 5, 0, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 3, 5, 1, 3, 5, 2, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 3, 5, 4, 3, 5, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 3, 5, 9 - 1, box); + this.fillWithMetadataBlocks(world, box, 2, 5, 9, 4, 5, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); //House 2 - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 0, sizeX, 0, 0, false, rand, RandomSandstone); //Back Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 1, 0, sizeX - 2, 1, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 0, sizeX - 6, 2, 0, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 6, 2, 0, box); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 3, 2, 0, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 1, sizeX - 6, 3, 1, false, rand, RandomSandstone); //Left Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 2, sizeX - 6, 0, 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 3, 2, sizeX - 6, 3, sizeZ - 1, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 6, sizeY - 1, 2, box); - this.fillWithMetadataBlocks(world, box, sizeX - 6, sizeY - 1, 4, sizeX - 6, sizeY - 1, sizeZ - 2, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 3, sizeX - 6, 1, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 2, sizeX - 6, 0, 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 3, sizeX - 6, 2, 3, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, sizeX - 6, 2, 4, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 5, sizeX - 6, 2, 5, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, sizeX - 6, 2, sizeZ - 3, sizeX - 6, 2, sizeZ - 2, Blocks.fence, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, sizeZ - 1, sizeX - 6, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 5, 0, sizeZ, sizeX, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 5, 2, sizeZ, sizeX - 5, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, sizeZ - 1, false, rand, RandomSandstone); //Right Wall - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 3, sizeX, 1, 3, false, rand, RandomSandstone); - this.fillWithMetadataBlocks(world, box, sizeX, 1, 4, sizeX, 1, 5, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, sizeZ - 1, sizeX, 1, sizeZ - 3, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX, 1, sizeZ - 1, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 0, 15, 0, 0, false, rand, RandomSandstone); //Back Wall + this.fillWithRandomizedBlocks(world, box, 15 - 6, 1, 0, 15 - 2, 1, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 0, 15 - 6, 2, 0, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 6, 2, 0, box); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 3, 2, 0, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 1, 15 - 6, 3, 1, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 2, 15 - 6, 0, 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 3, 2, 15 - 6, 3, 9 - 1, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 6, 5 - 1, 2, box); + this.fillWithMetadataBlocks(world, box, 15 - 6, 5 - 1, 4, 15 - 6, 5 - 1, 9 - 2, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 3, 15 - 6, 1, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 2, 15 - 6, 0, 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 3, 15 - 6, 2, 3, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 15 - 6, 2, 4, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 5, 15 - 6, 2, 5, false, rand, RandomSandstone); + this.fillWithBlocks(world, box, 15 - 6, 2, 9 - 3, 15 - 6, 2, 9 - 2, Blocks.fence, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 9 - 1, 15 - 6, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 5, 0, 9, 15, 1, 9, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 15 - 5, 2, 9, 15 - 5, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 1, 2, 9, 15, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15, 0, 1, 15, 0, 9 - 1, false, rand, RandomSandstone); //Right Wall + this.fillWithRandomizedBlocks(world, box, 15, 1, 3, 15, 1, 3, false, rand, RandomSandstone); + this.fillWithMetadataBlocks(world, box, 15, 1, 4, 15, 1, 5, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 15, 1, 9 - 1, 15, 1, 9 - 3, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15, 1, 9 - 1, box); - this.fillWithBlocks(world, box, sizeX - 5, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.sandstone, Blocks.air, false); //Floor + this.fillWithBlocks(world, box, 15 - 5, 0, 1, 15 - 1, 0, 9 - 1, Blocks.sandstone, Blocks.air, false); //Floor //Loot & Decorations //House 1 int eastMeta = this.getDecoMeta(4); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_boiler_off, 4, 1, 1, 1, box); this.fillWithBlocks(world, box, 1, 2, 1, 1, 3, 1, ModBlocks.deco_pipe_quad_rusted, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 1, sizeY, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 1, 5, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 2, 1, 3, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 1, 1, sizeZ - 4, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 1, 1, 9 - 4, box); if(!hasPlacedLoot[0]) { - this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 1, 1, sizeZ - 2, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.machineParts, (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, sizeZ - 2), - this.getYWithOffset(1), this.getZWithOffset(1, sizeZ - 2)), 10); + this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 1, 1, 9 - 2, box); + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.machineParts, (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, 9 - 2), + this.getYWithOffset(1), this.getZWithOffset(1, 9 - 2)), 10); this.hasPlacedLoot[0] = true; } - this.fillWithBlocks(world, box, 4, 1, sizeZ - 1, 5, 1, sizeZ - 1, ModBlocks.crate, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 1, 9 - 1, 5, 1, 9 - 1, ModBlocks.crate, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 5, 1, 4, 5, 3, 4, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 5, 1, 6, 5, 3, 6, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 5, 1, 5, box); @@ -254,20 +256,20 @@ public class CivilianFeatures { //House 2 if(!hasPlacedLoot[1]) { - this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), sizeX - 5, 1, 1, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(this.getXWithOffset(sizeX - 5, 1), - this.getYWithOffset(1), this.getZWithOffset(sizeX - 5, 1)), 10); + this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 15 - 5, 1, 1, box); + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(this.getXWithOffset(15 - 5, 1), + this.getYWithOffset(1), this.getZWithOffset(15 - 5, 1)), 10); this.hasPlacedLoot[1] = true; } - this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), sizeX - 5, 1, 4, box); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(sizeX - 5, 4), this.getYWithOffset(1), this.getZWithOffset(sizeX - 5, 4)); + this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), 15 - 5, 1, 4, box); + TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(15 - 5, 4), this.getYWithOffset(1), this.getZWithOffset(15 - 5, 4)); if(bobble != null) { bobble.type = BobbleType.values()[rand.nextInt(BobbleType.values().length - 1) + 1]; bobble.markDirty(); } - this.randomlyFillWithBlocks(world, box, rand, 0.25F, sizeX - 4, 1, 1, sizeX - 1, 1, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 15 - 4, 1, 1, 15 - 1, 1, 9 - 1, Blocks.sand, Blocks.air, false); return true; } @@ -285,8 +287,8 @@ public class CivilianFeatures { } /** Constructor for this feature; takes coordinates for bounding box */ - public NTMLab1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 9, 4, 7); + public NTMLab1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 9, 4, 7); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -314,86 +316,86 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ - 2, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 3, 6, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 9, 7 - 2, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 3, 6, 9, 7, -1, box); - if(this.getBlockAtCurrentPosition(world, 2, 0, sizeZ - 1, box).getMaterial().isReplaceable() - || this.getBlockAtCurrentPosition(world, 2, 0, sizeZ - 1, box) == Blocks.air) { - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 2, sizeZ - 1, 2, sizeZ - 1, -1, box); - this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, getStairMeta(0), 2, 0, sizeZ - 1, box); + if(this.getBlockAtCurrentPosition(world, 2, 0, 7 - 1, box).getMaterial().isReplaceable() + || this.getBlockAtCurrentPosition(world, 2, 0, 7 - 1, box) == Blocks.air) { + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 2, 7 - 1, 2, 7 - 1, -1, box); + this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, getStairMeta(0), 2, 0, 7 - 1, box); } - this.fillWithAir(world, box, 1, 0, 1, sizeX - 1, sizeY, 4); - this.fillWithAir(world, box, 4, 0, 4, sizeX - 1, sizeY, sizeZ - 1); - this.fillWithAir(world, box, 3, 1, sizeZ - 1, 3, 2, sizeZ - 1); + this.fillWithAir(world, box, 1, 0, 1, 9 - 1, 4, 4); + this.fillWithAir(world, box, 4, 0, 4, 9 - 1, 4, 7 - 1); + this.fillWithAir(world, box, 3, 1, 7 - 1, 3, 2, 7 - 1); int pillarMeta = this.getPillarMeta(8); //Pillars this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 9, 0, 0, 9, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, 4, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 0, 1, sizeX, 0, sizeZ - 1, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); - this.fillWithBlocks(world, box, 0, 0, sizeZ - 2, 0, 3, sizeZ - 2, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 3, 0, sizeZ - 2, 3, 3, sizeZ - 2, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 3, 0, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 9, 0, 1, 9, 0, 7 - 1, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 0, 0, 7 - 2, 0, 3, 7 - 2, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 0, 7 - 2, 3, 3, 7 - 2, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 0, 7, 3, 3, 7, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 9, 0, 7, 9, 3, 7, ModBlocks.concrete_pillar, Blocks.air, false); //Walls - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, sizeY - 1, 0, false, rand, RandomConcreteBricks); //Back Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY, 0, sizeX, sizeY, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, sizeY - 1, 4, false, rand, RandomConcreteBricks); //Left Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY, 0, 0, sizeY, sizeZ - 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ - 2, 2, sizeY, sizeZ - 2, false, rand, RandomConcreteBricks); //Front Wall Pt. 1 - this.placeBlockAtCurrentPosition(world, ModBlocks.brick_concrete_broken, 0, 3, sizeY, sizeZ - 2, box); - this.fillWithRandomizedBlocks(world, box, 3, sizeY - 1, sizeZ - 1, 3, sizeY, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 4, 0, sizeZ, sizeX - 1, 1, sizeZ, false, rand, RandomConcreteBricks); //Front Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, 4, 2, sizeZ, 4, 3, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX - 1, 3, sizeZ, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.75F, 5, 2, sizeZ, sizeX - 2, 3, sizeZ, Blocks.glass_pane, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 3, sizeY, sizeZ, sizeX, sizeY, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, sizeY, sizeZ - 1, false, rand, RandomConcreteBricks); //Right Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 9 - 1, 4 - 1, 0, false, rand, RandomConcreteBricks); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 4, 0, 9, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 4 - 1, 4, false, rand, RandomConcreteBricks); //Left Wall + this.fillWithRandomizedBlocks(world, box, 0, 4, 0, 0, 4, 7 - 2, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 0, 7 - 2, 2, 4, 7 - 2, false, rand, RandomConcreteBricks); //Front Wall Pt. 1 + this.placeBlockAtCurrentPosition(world, ModBlocks.brick_concrete_broken, 0, 3, 4, 7 - 2, box); + this.fillWithRandomizedBlocks(world, box, 3, 4 - 1, 7 - 1, 3, 4, 7 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 4, 0, 7, 9 - 1, 1, 7, false, rand, RandomConcreteBricks); //Front Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 4, 2, 7, 4, 3, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 9 - 1, 2, 7, 9 - 1, 3, 7, false, rand, RandomConcreteBricks); + this.randomlyFillWithBlocks(world, box, rand, 0.75F, 5, 2, 7, 9 - 2, 3, 7, Blocks.glass_pane, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 3, 4, 7, 9, 4, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 9, 1, 1, 9, 4, 7 - 1, false, rand, RandomConcreteBricks); //Right Wall //Floor & Ceiling - this.fillWithRandomizedBlocks(world, box, 1, 0, 1, sizeX - 1, 0, 4, false, rand, RandomLabTiles); //Floor - this.fillWithRandomizedBlocks(world, box, 4, 0, sizeZ - 2, sizeX - 1, 0, sizeZ - 1, false, rand, RandomLabTiles); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 3, 0, sizeZ - 1, box); + this.fillWithRandomizedBlocks(world, box, 1, 0, 1, 9 - 1, 0, 4, false, rand, RandomLabTiles); //Floor + this.fillWithRandomizedBlocks(world, box, 4, 0, 7 - 2, 9 - 1, 0, 7 - 1, false, rand, RandomLabTiles); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 3, 0, 7 - 1, box); - this.fillWithBlocks(world, box, 1, sizeY - 1, 1, 1, sizeY, 4, ModBlocks.reinforced_glass, Blocks.air, false); //Ceiling - this.fillWithBlocks(world, box, 2, sizeY, 1, sizeX - 1, sizeY, 4, ModBlocks.brick_light, Blocks.air, false); - this.fillWithBlocks(world, box, 4, sizeY, sizeZ - 2, sizeX - 1, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 4 - 1, 1, 1, 4, 4, ModBlocks.reinforced_glass, Blocks.air, false); //Ceiling + this.fillWithBlocks(world, box, 2, 4, 1, 9 - 1, 4, 4, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 4, 7 - 2, 9 - 1, 4, 7 - 1, ModBlocks.brick_light, Blocks.air, false); //Decorations & Loot this.fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 4, Blocks.dirt, 2, Blocks.air, 0, false); int westDecoMeta = this.getDecoMeta(5); this.fillWithMetadataBlocks(world, box, 2, 1, 1, 2, 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, sizeY - 1, 1, 2, sizeY - 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 4 - 1, 1, 2, 4 - 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); for(byte i = 0; i < 4; i++) { this.placeBlockAtCurrentPosition(world, ModBlocks.plant_flower, i, 1, 2, 1 + i, box); } int doorMeta = this.getMetadataWithOffset(Blocks.wooden_door, 2); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 3, 1, sizeZ - 1, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(3, sizeZ - 1), this.getYWithOffset(1), this.getZWithOffset(3, sizeZ - 1), doorMeta, ModBlocks.door_office); + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 3, 1, 7 - 1, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(3, 7 - 1), this.getYWithOffset(1), this.getZWithOffset(3, 7 - 1), doorMeta, ModBlocks.door_office); int northDecoMeta = this.getDecoMeta(3); - this.fillWithMetadataBlocks(world, box, 5, sizeY - 1, 1, sizeX - 1, sizeY - 1, 1, ModBlocks.steel_scaffold, westDecoMeta < 4 ? 0 : 8, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 5, sizeY - 1, 2, sizeX - 1, sizeY - 1, 2, ModBlocks.steel_wall, northDecoMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 5, 4 - 1, 1, 9 - 1, 4 - 1, 1, ModBlocks.steel_scaffold, westDecoMeta < 4 ? 0 : 8, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 5, 4 - 1, 2, 9 - 1, 4 - 1, 2, ModBlocks.steel_wall, northDecoMeta, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, northDecoMeta, 5, 1, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_microwave, northDecoMeta, 5, 2, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, 6, 1, 1, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.machine_shredder, 0, sizeX - 2, 1, 1, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, sizeX - 1, 1, 1, box); - this.fillWithBlocks(world, box, 5, 1, 3, sizeX - 1, 1, 3, ModBlocks.deco_titanium, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.machine_shredder, 0, 9 - 2, 1, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, 9 - 1, 1, 1, box); + this.fillWithBlocks(world, box, 5, 1, 3, 9 - 1, 1, 3, ModBlocks.deco_titanium, Blocks.air, false); if(!hasPlacedLoot[0]) { this.placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 6, 2, 3, box); LootGenerator.lootMedicine(world, this.getXWithOffset(6, 3), this.getYWithOffset(2), this.getZWithOffset(6, 3)); this.hasPlacedLoot[0] = true; } - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, sizeX - 1, 1, sizeZ - 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 9 - 1, 1, 7 - 2, box); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 1, 1, sizeZ - 1, HbmChestContents.modGeneric, 8); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 9 - 1, 1, 7 - 1, HbmChestContents.modGeneric, 8); } return true; @@ -412,8 +414,8 @@ public class CivilianFeatures { super(); } - public NTMLab2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 12, 11, 8); + public NTMLab2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 12, 11, 8); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -442,134 +444,134 @@ public class CivilianFeatures { this.boundingBox.offset(0, -7, 0); //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ - 2, 6, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 7, 6, sizeZ, 6, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 12, 8 - 2, 6, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 7, 6, 8, 6, box); - if(this.getBlockAtCurrentPosition(world, sizeX - 3, sizeY - 4, 7, box).getMaterial().isReplaceable() - || this.getBlockAtCurrentPosition(world, sizeX - 3, sizeY - 4, 7, box) == Blocks.air) { + if(this.getBlockAtCurrentPosition(world, 12 - 3, 11 - 4, 7, box).getMaterial().isReplaceable() + || this.getBlockAtCurrentPosition(world, 12 - 3, 11 - 4, 7, box) == Blocks.air) { int stairMeta = this.getMetadataWithOffset(Blocks.stone_brick_stairs, 2); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX - 3, 7, sizeX - 2, 7, sizeY - 4, box); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 4, 7, sizeX - 2, sizeY - 4, 7, Blocks.stone_brick_stairs, stairMeta, Blocks.air, 0, false); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 12 - 3, 7, 12 - 2, 7, 11 - 4, box); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 4, 7, 12 - 2, 11 - 4, 7, Blocks.stone_brick_stairs, stairMeta, Blocks.air, 0, false); } - this.fillWithAir(world, box, 1, sizeY - 4, 1, sizeX - 1, sizeY, sizeZ - 3); - this.fillWithAir(world, box, 1, sizeY - 4, sizeZ - 2, 5, sizeY, sizeZ - 1); - this.fillWithAir(world, box, sizeX - 3, sizeY - 3, sizeZ - 2, sizeX - 2, sizeY - 2, sizeZ - 2); + this.fillWithAir(world, box, 1, 11 - 4, 1, 12 - 1, 11, 8 - 3); + this.fillWithAir(world, box, 1, 11 - 4, 8 - 2, 5, 11, 8 - 1); + this.fillWithAir(world, box, 12 - 3, 11 - 3, 8 - 2, 12 - 2, 11 - 2, 8 - 2); this.fillWithAir(world, box, 5, 5, 1, 6, 6, 2); - this.fillWithAir(world, box, 2, 0, 2, sizeX - 2, 3, sizeZ - 2); + this.fillWithAir(world, box, 2, 0, 2, 12 - 2, 3, 8 - 2); //Walls - this.fillWithRandomizedBlocks(world, box, 0, sizeY - 4, 0, sizeX, sizeY, 0, false, rand, RandomSuperConcrete); //Back Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY - 4, 0, 0, sizeY, sizeZ, false, rand, RandomSuperConcrete); //Left Wall - this.fillWithRandomizedBlocks(world, box, 1, sizeY - 4, sizeZ, 5, sizeY - 4, sizeZ, false, rand, RandomSuperConcrete); //Front Wall pt. 1 - this.fillWithBlocks(world, box, 1, sizeY - 3, sizeZ, 1, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, sizeY - 4, sizeZ, 2, sizeY - 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 3, sizeY - 3, sizeZ, 3, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 4, sizeY - 4, sizeZ, 4, sizeY - 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 5, sizeY - 3, sizeZ, 5, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, sizeY, sizeZ, 5, sizeY, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 6, sizeY - 4, sizeZ - 1, 6, sizeY, sizeZ, false, rand, RandomSuperConcrete); //Front Wall pt. 2 - this.fillWithRandomizedBlocks(world, box, 6, sizeY - 4, sizeZ - 2, 7, sizeY - 2, sizeZ - 2, false, rand, RandomSuperConcrete); //Front Wall pt. 3 - this.fillWithBlocks(world, box, 6, sizeY - 1, sizeZ - 2, 7, sizeY - 1, sizeZ - 2, ModBlocks.concrete_super_broken, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 4, sizeZ - 2, sizeX, sizeY - 4, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 3, sizeZ - 2, sizeX - 4, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 3, sizeY - 1, sizeZ - 2, sizeX - 2, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, sizeY - 4, sizeZ - 2, sizeX, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 4, 1, sizeX, sizeY - 4, sizeZ - 3, false, rand, RandomSuperConcrete); //Right Wall - this.fillWithBlocks(world, box, sizeX, sizeY - 3, sizeZ - 3, sizeX, sizeY - 1, sizeZ - 3, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 3, 4, sizeX, sizeY - 1, 4, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX, sizeY - 3, 3, sizeX, sizeY - 1, 3, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 3, 2, sizeX, sizeY - 1, 2, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX, sizeY - 3, 1, sizeX, sizeY - 1, 1, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY, 1, sizeX, sizeY, sizeZ - 3, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 0, 11 - 4, 0, 12, 11, 0, false, rand, RandomSuperConcrete); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 11 - 4, 0, 0, 11, 8, false, rand, RandomSuperConcrete); //Left Wall + this.fillWithRandomizedBlocks(world, box, 1, 11 - 4, 8, 5, 11 - 4, 8, false, rand, RandomSuperConcrete); //Front Wall pt. 1 + this.fillWithBlocks(world, box, 1, 11 - 3, 8, 1, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 11 - 4, 8, 2, 11 - 1, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 3, 11 - 3, 8, 3, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 4, 11 - 4, 8, 4, 11 - 1, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 5, 11 - 3, 8, 5, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 11, 8, 5, 11, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 6, 11 - 4, 8 - 1, 6, 11, 8, false, rand, RandomSuperConcrete); //Front Wall pt. 2 + this.fillWithRandomizedBlocks(world, box, 6, 11 - 4, 8 - 2, 7, 11 - 2, 8 - 2, false, rand, RandomSuperConcrete); //Front Wall pt. 3 + this.fillWithBlocks(world, box, 6, 11 - 1, 8 - 2, 7, 11 - 1, 8 - 2, ModBlocks.concrete_super_broken, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 4, 8 - 2, 12, 11 - 4, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 3, 8 - 2, 12 - 4, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 3, 11 - 1, 8 - 2, 12 - 2, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 1, 11 - 4, 8 - 2, 12, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 4, 1, 12, 11 - 4, 8 - 3, false, rand, RandomSuperConcrete); //Right Wall + this.fillWithBlocks(world, box, 12, 11 - 3, 8 - 3, 12, 11 - 1, 8 - 3, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 3, 4, 12, 11 - 1, 4, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 12, 11 - 3, 3, 12, 11 - 1, 3, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 3, 2, 12, 11 - 1, 2, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 12, 11 - 3, 1, 12, 11 - 1, 1, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11, 1, 12, 11, 8 - 3, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 1, 0, 1, sizeX - 1, 3, 1, ModBlocks.reinforced_stone, Blocks.air, false); //Back Wall - this.fillWithBlocks(world, box, 1, 0, 2, 1, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Left Wall - this.fillWithBlocks(world, box, 1, 0, sizeZ - 1, sizeX - 1, 3, sizeZ - 1, ModBlocks.reinforced_stone, Blocks.air, false); //Front Wall - this.fillWithBlocks(world, box, sizeX - 1, 0, 2, sizeX - 1, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); // Right Wall - this.fillWithBlocks(world, box, 6, 0, 3, 6, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Internal Wall + this.fillWithBlocks(world, box, 1, 0, 1, 12 - 1, 3, 1, ModBlocks.reinforced_stone, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 1, 0, 2, 1, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Left Wall + this.fillWithBlocks(world, box, 1, 0, 8 - 1, 12 - 1, 3, 8 - 1, ModBlocks.reinforced_stone, Blocks.air, false); //Front Wall + this.fillWithBlocks(world, box, 12 - 1, 0, 2, 12 - 1, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); // Right Wall + this.fillWithBlocks(world, box, 6, 0, 3, 6, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Internal Wall //Floors & Ceiling - this.fillWithRandomizedBlocks(world, box, 1, sizeY - 4, 1, 3, sizeY - 4, sizeZ - 1, false, rand, RandomLabTiles); //Left Floor - this.fillWithRandomizedBlocks(world, box, 4, sizeY - 4, sizeZ - 2, 5, sizeY - 4, sizeZ - 1, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 4, 1, sizeX - 1, sizeY - 4, sizeZ - 3, false, rand, RandomLabTiles); //Right Floor - this.fillWithRandomizedBlocks(world, box, sizeX - 3, sizeY - 4, sizeZ - 2, sizeX - 2, sizeY - 4, sizeZ - 2, false, rand, RandomLabTiles); - this.fillWithBlocks(world, box, 4, sizeY - 4, 1, 7, sizeY - 4, 1, ModBlocks.tile_lab_broken, Blocks.air, false); //Center Floor (Pain) - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 4, sizeY - 4, 2, box); - this.fillWithBlocks(world, box, 4, sizeY - 4, 3, 4, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 5, sizeY - 4, 3, box); - this.fillWithBlocks(world, box, 5, sizeY - 4, 4, 5, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 6, sizeY - 4, 4, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 6, sizeY - 4, 5, box); - this.fillWithBlocks(world, box, 7, sizeY - 4, 2, 7, sizeY - 4, 3, ModBlocks.tile_lab_broken, Blocks.air, false); - this.fillWithBlocks(world, box, 7, sizeY - 4, 4, 7, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 11 - 4, 1, 3, 11 - 4, 8 - 1, false, rand, RandomLabTiles); //Left Floor + this.fillWithRandomizedBlocks(world, box, 4, 11 - 4, 8 - 2, 5, 11 - 4, 8 - 1, false, rand, RandomLabTiles); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 4, 1, 12 - 1, 11 - 4, 8 - 3, false, rand, RandomLabTiles); //Right Floor + this.fillWithRandomizedBlocks(world, box, 12 - 3, 11 - 4, 8 - 2, 12 - 2, 11 - 4, 8 - 2, false, rand, RandomLabTiles); + this.fillWithBlocks(world, box, 4, 11 - 4, 1, 7, 11 - 4, 1, ModBlocks.tile_lab_broken, Blocks.air, false); //Center Floor (Pain) + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 4, 11 - 4, 2, box); + this.fillWithBlocks(world, box, 4, 11 - 4, 3, 4, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 5, 11 - 4, 3, box); + this.fillWithBlocks(world, box, 5, 11 - 4, 4, 5, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 6, 11 - 4, 4, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 6, 11 - 4, 5, box); + this.fillWithBlocks(world, box, 7, 11 - 4, 2, 7, 11 - 4, 3, ModBlocks.tile_lab_broken, Blocks.air, false); + this.fillWithBlocks(world, box, 7, 11 - 4, 4, 7, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.fillWithBlocks(world, box, 1, sizeY, 1, 2, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); //Left Ceiling - this.fillWithBlocks(world, box, 3, sizeY, sizeZ - 2, 4, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX - 3, sizeY, 1, sizeX - 1, sizeY, sizeZ - 3, ModBlocks.brick_light, Blocks.air, false); //Right Ceiling - this.fillWithBlocks(world, box, 3, sizeY, 1, 8, sizeY, 1, ModBlocks.waste_planks, Blocks.air, false); //Center Ceiling (Pain) - this.fillWithBlocks(world, box, 3, sizeY, 2, 4, sizeY, 2, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 7, sizeY, 2, 8, sizeY, 2, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 3, sizeY, 3, 3, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 4, sizeY, 4, 4, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 5, sizeY, 6, 5, sizeY, sizeZ - 1, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 8, sizeY, 3, 8, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 11, 1, 2, 11, 8 - 1, ModBlocks.brick_light, Blocks.air, false); //Left Ceiling + this.fillWithBlocks(world, box, 3, 11, 8 - 2, 4, 11, 8 - 1, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 12 - 3, 11, 1, 12 - 1, 11, 8 - 3, ModBlocks.brick_light, Blocks.air, false); //Right Ceiling + this.fillWithBlocks(world, box, 3, 11, 1, 8, 11, 1, ModBlocks.waste_planks, Blocks.air, false); //Center Ceiling (Pain) + this.fillWithBlocks(world, box, 3, 11, 2, 4, 11, 2, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 7, 11, 2, 8, 11, 2, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 11, 3, 3, 11, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 11, 4, 4, 11, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 5, 11, 6, 5, 11, 8 - 1, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 8, 11, 3, 8, 11, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, 2, 5, 0, sizeZ - 2, false, rand, RandomLabTiles); //Floor + this.fillWithRandomizedBlocks(world, box, 2, 0, 2, 5, 0, 8 - 2, false, rand, RandomLabTiles); //Floor this.fillWithRandomizedBlocks(world, box, 6, 0, 2, 6, 0, 3, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, 7, 0, 2, sizeX - 2, 0, sizeZ - 2, false, rand, RandomLabTiles); + this.fillWithRandomizedBlocks(world, box, 7, 0, 2, 12 - 2, 0, 8 - 2, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, 1, 4, 1, sizeX - 1, 4, sizeZ - 1, false, rand, RandomConcreteBricks); //Ceiling + this.fillWithRandomizedBlocks(world, box, 1, 4, 1, 12 - 1, 4, 8 - 1, false, rand, RandomConcreteBricks); //Ceiling //Decorations & Loot int eastMeta = this.getDecoMeta(4); int westMeta = this.getDecoMeta(5); int northMeta = this.getDecoMeta(3); int southMeta = this.getDecoMeta(2); - this.placeBlockAtCurrentPosition(world, ModBlocks.crashed_balefire, southMeta, 6, sizeY - 2, 3, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crashed_balefire, southMeta, 6, 11 - 2, 3, box); int doorMeta = this.getMetadataWithOffset(Blocks.wooden_door, 1); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, sizeX - 3, sizeY - 3, sizeZ - 2, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(sizeX - 3, sizeZ - 2), this.getYWithOffset(sizeY - 3), this.getZWithOffset(sizeX - 3, sizeZ - 2), + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 12 - 3, 11 - 3, 8 - 2, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(12 - 3, 8 - 2), this.getYWithOffset(11 - 3), this.getZWithOffset(12 - 3, 8 - 2), doorMeta, ModBlocks.door_office); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, sizeX - 2, sizeY - 3, sizeZ - 2, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(sizeX - 2, sizeZ - 2), this.getYWithOffset(sizeY - 3), this.getZWithOffset(sizeX - 2, sizeZ - 2), + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 12 - 2, 11 - 3, 8 - 2, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(12 - 2, 8 - 2), this.getYWithOffset(11 - 3), this.getZWithOffset(12 - 2, 8 - 2), doorMeta, ModBlocks.door_office); - this.fillWithBlocks(world, box, 1, sizeY - 3, 1, 1, sizeY - 1, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 1, sizeY - 3, 2, 1, sizeY - 2, 3, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, westMeta, 1, sizeY - 1, 2, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 1, sizeY - 1, 3, box); - this.fillWithBlocks(world, box, 1, sizeY - 3, 6, 1, sizeY - 1, 6, ModBlocks.deco_pipe_framed_rusted, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 11 - 3, 1, 1, 11 - 1, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 1, 11 - 3, 2, 1, 11 - 2, 3, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, westMeta, 1, 11 - 1, 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 1, 11 - 1, 3, box); + this.fillWithBlocks(world, box, 1, 11 - 3, 6, 1, 11 - 1, 6, ModBlocks.deco_pipe_framed_rusted, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX - 4, sizeY - 3, 1, sizeX - 4, sizeY - 1, 1, ModBlocks.steel_wall, eastMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 1, 1, sizeX - 2, sizeY - 1, 1, ModBlocks.steel_grate, 0, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 2, 1, sizeX - 2, sizeY - 2, 1, ModBlocks.tape_recorder, northMeta, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX - 3, sizeY - 3, 1, sizeX - 2, sizeY - 3, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX - 1, sizeY - 3, 1, sizeX - 1, sizeY - 1, 1, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 4, 11 - 3, 1, 12 - 4, 11 - 1, 1, ModBlocks.steel_wall, eastMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 1, 1, 12 - 2, 11 - 1, 1, ModBlocks.steel_grate, 0, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 2, 1, 12 - 2, 11 - 2, 1, ModBlocks.tape_recorder, northMeta, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 12 - 3, 11 - 3, 1, 12 - 2, 11 - 3, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 12 - 1, 11 - 3, 1, 12 - 1, 11 - 1, 1, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, 1, 2, 2, 1, sizeZ - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 1, 2, 2, 1, 8 - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.vitrified_barrel, 0, 2, 2, 2, box); this.fillWithMetadataBlocks(world, box, 3, 1, 2, 3, 3, 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 3, 1, 4, 3, 3, 4, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, 1, sizeZ - 2, 3, 3, sizeZ - 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 4, 1, sizeZ - 2, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 2, sizeZ - 2, box); + this.fillWithMetadataBlocks(world, box, 3, 1, 8 - 2, 3, 3, 8 - 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 4, 1, 8 - 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 2, 8 - 2, box); if(!hasPlacedLoot[0]) { - this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, sizeZ - 2, HbmChestContents.nuclearFuel, 10); + this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, 8 - 2, HbmChestContents.nuclearFuel, 10); } - this.fillWithBlocks(world, box, 4, 1, sizeZ - 3, 5, 1, sizeZ - 3, ModBlocks.crate_lead, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 1, 8 - 3, 5, 1, 8 - 3, ModBlocks.crate_lead, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX - 5, 1, sizeZ - 2, sizeX - 5, 3, sizeZ - 2, ModBlocks.deco_steel, Blocks.air, false);; - this.fillWithMetadataBlocks(world, box, sizeX - 4, 1, sizeZ - 2, sizeX - 2, 1, sizeZ - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 4, 2, sizeZ - 2, sizeX - 3, 2, sizeZ - 2, ModBlocks.tape_recorder, southMeta, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, sizeX - 2, 2, sizeZ - 2, box); - this.fillWithBlocks(world, box, sizeX - 4, 3, sizeZ - 2, sizeX - 2, 3, sizeZ - 2, ModBlocks.steel_roof, Blocks.air, false); + this.fillWithBlocks(world, box, 12 - 5, 1, 8 - 2, 12 - 5, 3, 8 - 2, ModBlocks.deco_steel, Blocks.air, false);; + this.fillWithMetadataBlocks(world, box, 12 - 4, 1, 8 - 2, 12 - 2, 1, 8 - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 4, 2, 8 - 2, 12 - 3, 2, 8 - 2, ModBlocks.tape_recorder, southMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 12 - 2, 2, 8 - 2, box); + this.fillWithBlocks(world, box, 12 - 4, 3, 8 - 2, 12 - 2, 3, 8 - 2, ModBlocks.steel_roof, Blocks.air, false); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 2, 1, 3, HbmChestContents.nukeTrash, 9); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 12 - 2, 1, 3, HbmChestContents.nukeTrash, 9); if(rand.nextInt(2) == 0) - generateLoreBook(world, box, sizeX - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); + generateLoreBook(world, box, 12 - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); } return true; @@ -586,8 +588,8 @@ public class CivilianFeatures { super(); } - public NTMWorkshop1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 10, 6, 8); + public NTMWorkshop1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 10, 6, 8); this.hasPlacedLoot = false; } @@ -612,20 +614,20 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, sizeX - 3, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.dirt, 0, 8, 1, sizeX, 6, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 8 - 3, 11, -1, box); + placeFoundationUnderneath(world, Blocks.dirt, 0, 8, 1, 10, 6, -1, box); - this.fillWithAir(world, box, 1, 0, 0, sizeX - 3, sizeY - 2, sizeZ); - this.fillWithAir(world, box, sizeX - 2, 0, 2, sizeX - 1, 2, 5); + this.fillWithAir(world, box, 1, 0, 0, 10 - 3, 6 - 2, 8); + this.fillWithAir(world, box, 10 - 2, 0, 2, 10 - 1, 2, 5); if(this.getBlockAtCurrentPosition(world, 0, 0, 5, box).getMaterial().isReplaceable() || this.getBlockAtCurrentPosition(world, 0, 0, 5, box) == Blocks.air) { int stairMeta = this.getMetadataWithOffset(Blocks.stone_brick_stairs, 1); this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, stairMeta, 0, 0, 5, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 1, 0, sizeZ - 1, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 1, 0, 8 - 1, -1, box); - this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, Blocks.stone_slab, 5, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, 8 - 1, Blocks.stone_slab, 5, Blocks.air, 0, false); } //Walls @@ -633,62 +635,62 @@ public class CivilianFeatures { int pillarMetaNS = this.getPillarMeta(8); this.fillWithBlocks(world, box, 1, 0, 0, 1, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, 0, box); - this.fillWithMetadataBlocks(world, box, 2, 4, 0, sizeX - 4, 4, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, sizeX - 3, 4, 0, box); - this.fillWithBlocks(world, box, sizeX - 3, 0, 0, sizeX - 3, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, 0, sizeX - 4, 1, 0, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 2, 4, 0, 10 - 4, 4, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 10 - 3, 4, 0, box); + this.fillWithBlocks(world, box, 10 - 3, 0, 0, 10 - 3, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 0, 0, 10 - 4, 1, 0, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 2, 2, 0, 2, 2, 0, false, rand, RandomSuperConcrete); this.fillWithBlocks(world, box, 3, 2, 0, 5, 2, 0, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, 2, 0, sizeX - 4, 2, 0, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 3, 0, sizeX - 4, 3, 0, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, 1, 4, 1, 1, 4, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, sizeZ, box); - this.fillWithBlocks(world, box, 1, 0, sizeZ, 1, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 10 - 4, 2, 0, 10 - 4, 2, 0, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 3, 0, 10 - 4, 3, 0, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 1, 4, 1, 1, 4, 8 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, 8, box); + this.fillWithBlocks(world, box, 1, 0, 8, 1, 3, 8, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 1, 1, 1, 4, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 1, 2, 1, 1, 2, 1, false, rand, RandomSuperConcrete); this.fillWithBlocks(world, box, 1, 2, 2, 1, 2, 3, ModBlocks.reinforced_glass, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 2, 4, 1, 2, 4, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 1, 3, 1, 1, 3, sizeZ - 1, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ - 2, 1, 3, sizeZ - 1, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, 2, 4, sizeZ, sizeX - 4, 4, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, sizeX - 3, 4, sizeZ, box); - this.fillWithBlocks(world, box, sizeX - 3, 0, sizeZ, sizeX - 3, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, sizeZ, sizeX - 4, 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 2, sizeZ, 2, 2, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 3, 2, sizeZ, 5, 2, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, 2, sizeZ, sizeX - 4, 2, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 3, sizeZ, sizeX - 4, 3, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, sizeX - 3, 4, 1, sizeX - 3, 4, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 3, 0, 1, sizeX - 3, 3, sizeZ - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 1, 3, 1, 1, 3, 8 - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 1, 0, 8 - 2, 1, 3, 8 - 1, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 2, 4, 8, 10 - 4, 4, 8, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 10 - 3, 4, 8, box); + this.fillWithBlocks(world, box, 10 - 3, 0, 8, 10 - 3, 3, 8, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 0, 8, 10 - 4, 1, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 2, 8, 2, 2, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 3, 2, 8, 5, 2, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 10 - 4, 2, 8, 10 - 4, 2, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 3, 8, 10 - 4, 3, 8, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 10 - 3, 4, 1, 10 - 3, 4, 8 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithRandomizedBlocks(world, box, 10 - 3, 0, 1, 10 - 3, 3, 8 - 1, false, rand, RandomSuperConcrete); pillarMetaWE = this.getPillarMeta(5); pillarMetaNS = this.getPillarMeta(9); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 2, 1, sizeX - 1, 2, 1, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Back Wall - this.fillWithMetadataBlocks(world, box, sizeX, 0, 1, sizeX, 2, 1, Blocks.log, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 1, sizeX - 1, 1, 1, Blocks.planks, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 2, 2, sizeX, 2, 5, Blocks.log, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithMetadataBlocks(world, box, sizeX, 0, 6, sizeX, 2, 6, Blocks.log, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 0, 3, sizeX, 1, 5, Blocks.planks, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 2, 6, sizeX - 1, 2, 6, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 6, sizeX - 1, 1, 6, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 2, 1, 10 - 1, 2, 1, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Back Wall + this.fillWithMetadataBlocks(world, box, 10, 0, 1, 10, 2, 1, Blocks.log, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 1, 10 - 1, 1, 1, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10, 2, 2, 10, 2, 5, Blocks.log, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithMetadataBlocks(world, box, 10, 0, 6, 10, 2, 6, Blocks.log, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10, 0, 3, 10, 1, 5, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 2, 6, 10 - 1, 2, 6, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 6, 10 - 1, 1, 6, Blocks.planks, 1, Blocks.air, 0, false); //Floor & Ceiling - this.fillWithBlocks(world, box, 2, 0, 1, 6, 0, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); //Floor + this.fillWithBlocks(world, box, 2, 0, 1, 6, 0, 8 - 1, ModBlocks.brick_light, Blocks.air, false); //Floor this.placeBlockAtCurrentPosition(world, ModBlocks.brick_light, 0, 1, 0, 5, box); this.fillWithRandomizedBlocks(world, box, 2, 4, 1, 6, 4, 3, false, rand, RandomSuperConcrete); //Ceiling this.fillWithRandomizedBlocks(world, box, 2, 4, 4, 2, 4, 4, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 5, 4, 4, 6, 4, 4, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 4, sizeZ - 3, 6, 4, sizeZ - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 4, 8 - 3, 6, 4, 8 - 1, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX - 2, 2, 2, sizeX - 1, 2, 5, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 10 - 2, 2, 2, 10 - 1, 2, 5, ModBlocks.deco_steel, Blocks.air, false); //Loot & Decorations int southMeta = this.getDecoMeta(2); int eastMeta = this.getDecoMeta(5); - this.placeBlockAtCurrentPosition(world, ModBlocks.pole_satellite_receiver, eastMeta, 2, sizeY - 1, 1, box); - this.fillWithBlocks(world, box, 3, sizeY - 1, 1, 4, sizeY - 1, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithBlocks(world, box, 2, sizeY - 1, 2, 4, sizeY - 1, 2, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithBlocks(world, box, 2, sizeY, 1, 4, sizeY, 2, ModBlocks.steel_roof, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.pole_satellite_receiver, eastMeta, 2, 6 - 1, 1, box); + this.fillWithBlocks(world, box, 3, 6 - 1, 1, 4, 6 - 1, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 2, 6 - 1, 2, 4, 6 - 1, 2, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 2, 6, 1, 4, 6, 2, ModBlocks.steel_roof, Blocks.air, false); this.fillWithBlocks(world, box, 2, 1, 1, 2, 3, 1, ModBlocks.deco_red_copper, Blocks.air, false); this.fillWithBlocks(world, box, 3, 1, 1, 3, 1, 2, ModBlocks.deco_beryllium, Blocks.air, false); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_generator, 0, 4, 1, 1, box); @@ -698,31 +700,464 @@ public class CivilianFeatures { this.fillWithBlocks(world, box, 3, 1, 4, 4, 1, 4, ModBlocks.concrete_super_broken, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 6, 1, 4, 6, 3, 4, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 6, 1, 5, 6, 1, 7, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.radiorec, eastMeta, 6, 2, sizeZ - 1, box); - this.fillWithMetadataBlocks(world, box, 2, 1, sizeZ - 1, 3, 1, sizeZ - 1, ModBlocks.machine_electric_furnace_off, southMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.radiorec, eastMeta, 6, 2, 8 - 1, box); + this.fillWithMetadataBlocks(world, box, 2, 1, 8 - 1, 3, 1, 8 - 1, ModBlocks.machine_electric_furnace_off, southMeta, Blocks.air, 0, false); if(!hasPlacedLoot) { - this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, sizeZ - 1, HbmChestContents.machineParts, 11); + this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, 8 - 1, HbmChestContents.machineParts, 11); } this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 5, 3, 1, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 2, 1, 2, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 6, 1, 2, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 6, 2, 5, box); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 5, sizeX - 1, 0, 5, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, southMeta, sizeX - 2, 1, 5, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), sizeX - 1, 1, 5, box); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(sizeX - 1, 5), this.getYWithOffset(1), this.getZWithOffset(sizeX - 1, 5)); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 5, 10 - 1, 0, 5, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, southMeta, 10 - 2, 1, 5, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), 10 - 1, 1, 5, box); + TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(10 - 1, 5), this.getYWithOffset(1), this.getZWithOffset(10 - 1, 5)); if(bobble != null) { bobble.type = BobbleType.values()[rand.nextInt(BobbleType.values().length - 1) + 1]; bobble.markDirty(); } - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 2, sizeX - 2, 0, 3, Blocks.log, pillarMetaWE, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.log, pillarMetaWE, sizeX - 2, 1, 2, box); - this.placeBlockAtCurrentPosition(world, Blocks.web, 0, sizeX - 2, 1, 3, box); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 2, 10 - 2, 0, 3, Blocks.log, pillarMetaWE, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.log, pillarMetaWE, 10 - 2, 1, 2, box); + this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 10 - 2, 1, 3, box); return true; } } + + public static class RuralHouse1 extends Component { + + public RuralHouse1() { + super(); + } + + public RuralHouse1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 14, 8, 14); + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { + return false; + } + + //FillWithAir + fillWithAir(world, box, 9, 1, 3, 12, 4, 8); + fillWithAir(world, box, 5, 1, 2, 8, 3, 8); + fillWithAir(world, box, 2, 1, 5, 4, 3, 8); + fillWithAir(world, box, 2, 1, 10, 7, 3, 12); + + //Foundations + fillWithBlocks(world, box, 1, 0, 4, 4, 0, 4, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 0, 2, 4, 0, 3, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 0, 1, 9, 0, 1, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 9, 0, 2, 10, 0, 2, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 12, 0, 2, box); + fillWithBlocks(world, box, 13, 0, 2, 13, 0, 9, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 5, 0, 9, 12, 0, 9, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 2, 0, 9, 3, 0, 9, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 8, 0, 10, box); + fillWithBlocks(world, box, 8, 0, 12, 8, 0, 13, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 1, 0, 13, 7, 0, 13, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 1, 0, 5, 1, 0, 12, ModBlocks.concrete_colored_ext); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 1, 10, 8, 13, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 1, 4, 3, 9, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 4, 1, 13, 9, -1, box); + + placeFoundationUnderneath(world, Blocks.log, 0, 2, 3, 2, 3, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 3, 2, 3, 2, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 3, 0, 3, 0, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 5, 0, 5, 0, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 8, 0, 8, 0, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 10, 0, 10, 0, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 1, 14, 1, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 3, 14, 3, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 5, 14, 6, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 8, 14, 8, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 10, 14, 10, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 9, 14, 9, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 7, 14, 7, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 4, 14, 5, 14, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 2, 14, 2, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 14, 0, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 13, 0, 13, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 11, 0, 11, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 9, 0, 9, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 6, 0, 7, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 4, 0, 4, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 3, 0, 4, -1, box); + + //Walls + //North/Front + fillWithBlocks(world, box, 1, 1, 4, 4, 4, 4, Blocks.brick_block); + fillWithBlocks(world, box, 2, 5, 4, 7, 5, 4, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 3, 6, 4, box); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 6, 6, 4, box); + fillWithBlocks(world, box, 4, 7, 4, 5, 7, 4, Blocks.brick_block); + fillWithBlocks(world, box, 4, 1, 1, 4, 4, 3, Blocks.brick_block); + fillWithBlocks(world, box, 5, 1, 1, 8, 1, 1, Blocks.brick_block); + fillWithBlocks(world, box, 5, 4, 1, 8, 4, 1, Blocks.brick_block); + fillWithBlocks(world, box, 9, 1, 1, 9, 4, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 1, 2, 10, 3, 2, Blocks.brick_block); + fillWithBlocks(world, box, 12, 1, 2, 13, 3, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 4, 2, 13, 4, 2, Blocks.brick_block); + fillWithBlocks(world, box, 9, 5, 2, 12, 5, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 6, 2, 11, 6, 2, Blocks.brick_block); + //East/Left + fillWithBlocks(world, box, 13, 1, 3, 13, 1, 8, Blocks.brick_block); + fillWithBlocks(world, box, 13, 3, 3, 13, 4, 8, Blocks.brick_block); + //South/Back + fillWithBlocks(world, box, 13, 1, 9, 13, 4, 9, Blocks.brick_block); + fillWithBlocks(world, box, 9, 1, 9, 12, 1, 9, Blocks.brick_block); + fillWithBlocks(world, box, 9, 4, 9, 12, 5, 9, Blocks.brick_block); + fillWithBlocks(world, box, 10, 6, 9, 11, 6, 9, Blocks.brick_block); + fillWithBlocks(world, box, 8, 1, 9, 8, 4, 10, Blocks.brick_block); + fillWithBlocks(world, box, 8, 1, 12, 8, 3, 13, Blocks.brick_block); + fillWithBlocks(world, box, 8, 4, 11, 8, 4, 13, Blocks.brick_block); + fillWithBlocks(world, box, 7, 1, 13, 7, 3, 13, Blocks.brick_block); + fillWithBlocks(world, box, 3, 1, 13, 6, 1, 13, Blocks.brick_block); + fillWithBlocks(world, box, 2, 4, 13, 7, 5, 13, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 6, 6, 13, box); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 3, 6, 13, box); + fillWithBlocks(world, box, 4, 7, 13, 5, 7, 13, Blocks.brick_block); + fillWithBlocks(world, box, 2, 1, 13, 2, 3, 13, Blocks.brick_block); + //West/Right + fillWithBlocks(world, box, 1, 1, 13, 1, 4, 13, Blocks.brick_block); + fillWithBlocks(world, box, 1, 1, 5, 1, 1, 12, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 1, 2, 9, box); + fillWithBlocks(world, box, 1, 3, 5, 1, 3, 12, Blocks.brick_block); + //Inside + fillWithBlocks(world, box, 2, 1, 9, 3, 3, 9, Blocks.brick_block); + fillWithBlocks(world, box, 5, 1, 9, 7, 3, 9, Blocks.brick_block); + //Wood Paneling + fillWithMetadataBlocks(world, box, 5, 2, 1, 5, 3, 1, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 8, 2, 1, 8, 3, 1, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 11, 3, 2, box); + fillWithMetadataBlocks(world, box, 13, 2, 3, 13, 2, 4, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 13, 2, 7, 13, 2, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 12, 2, 9, 12, 3, 9, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 9, 2, 9, 9, 3, 9, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 8, 3, 11, box); + fillWithMetadataBlocks(world, box, 6, 2, 13, 6, 3, 13, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 3, 2, 13, 3, 3, 13, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 12, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 10, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 8, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 5, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 4, 3, 9, box); + //Wood Framing + //North/Front + int logW = this.getPillarMeta(4); + int logN = this.getPillarMeta(8); + + fillWithBlocks(world, box, 0, 0, 3, 0, 3, 3, Blocks.log); + fillWithMetadataBlocks(world, box, 1, 4, 3, 3, 4, 3, Blocks.log, logW); + fillWithMetadataBlocks(world, box, 3, 4, 1, 3, 4, 2, Blocks.log, logN); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 1, 3, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 3, 3, 1, box); + fillWithMetadataBlocks(world, box, 1, 1, 3, 2, 1, 3, Blocks.wooden_slab, 1); + fillWithMetadataBlocks(world, box, 3, 1, 1, 3, 1, 3, Blocks.wooden_slab, 1); + fillWithBlocks(world, box, 3, 0, 0, 3, 3, 0, Blocks.log); + fillWithMetadataBlocks(world, box, 4, 1, 0, 9, 1, 0, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 4, 3, 0, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 9, 3, 0, box); + fillWithBlocks(world, box, 10, 0, 0, 10, 3, 0, Blocks.log); + fillWithMetadataBlocks(world, box, 10, 4, 1, 13, 4, 1, Blocks.log, logW); + fillWithBlocks(world, box, 14, 0, 1, 14, 3, 1, Blocks.log); + //East/Left + fillWithBlocks(world, box, 14, 0, 3, 14, 3, 3, Blocks.log); + fillWithBlocks(world, box, 14, 0, 8, 14, 3, 8, Blocks.log); + fillWithBlocks(world, box, 14, 0, 10, 14, 3, 10, Blocks.log); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 14, 1, 2, box); + fillWithMetadataBlocks(world, box, 14, 1, 4, 14, 1, 7, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 14, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 4, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 7, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 9, box); + //South/Back + fillWithMetadataBlocks(world, box, 9, 4, 10, 13, 4, 10, Blocks.log, logW); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 13, 3, 10, box); + fillWithBlocks(world, box, 9, 0, 14, 9, 3, 14, Blocks.log); + fillWithBlocks(world, box, 7, 0, 14, 7, 3, 14, Blocks.log); + fillWithBlocks(world, box, 2, 0, 14, 2, 3, 14, Blocks.log); + fillWithBlocks(world, box, 0, 0, 14, 0, 3, 14, Blocks.log); + fillWithMetadataBlocks(world, box, 1, 4, 14, 8, 4, 14, Blocks.log, logW); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 8, 1, 14, box); + fillWithMetadataBlocks(world, box, 3, 1, 14, 6, 1, 14, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 1, 1, 14, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 8, 3, 14, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 1, 3, 14, box); + //West/Right + fillWithBlocks(world, box, 0, 0, 9, 0, 3, 9, Blocks.log); + fillWithMetadataBlocks(world, box, 0, 1, 10, 0, 1, 13, Blocks.wooden_slab, 1); + fillWithMetadataBlocks(world, box, 0, 1, 4, 0, 1, 8, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 13, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 10, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 8, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 4, box); + + int stairW = this.getStairMeta(0); + int stairE = this.getStairMeta(1); + int stairN = this.getStairMeta(2); + int stairS = this.getStairMeta(3); + + //Floor + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 11, 0, 2, box); + fillWithMetadataBlocks(world, box, 9, 0, 3, 12, 0, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 5, 0, 2, 8, 0, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 2, 0, 5, 4, 0, 8, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 4, 0, 9, box); + fillWithMetadataBlocks(world, box, 2, 0, 10, 7, 0, 12, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 8, 0, 11, box); + fillWithBlocks(world, box, 13, 1, 0, 14, 1, 0, Blocks.fence); + //Porches + fillWithBlocks(world, box, 10, 0, 1, 13, 0, 1, Blocks.planks); + fillWithMetadataBlocks(world, box, 11, 0, 0, 12, 0, 0, Blocks.spruce_stairs, stairN); + fillWithMetadataBlocks(world, box, 13, 0, 0, 14, 0, 0, Blocks.planks, 1); + fillWithBlocks(world, box, 12, 0, 10, 13, 0, 10, Blocks.planks); + fillWithBlocks(world, box, 9, 0, 10, 11, 0, 11, Blocks.planks); + fillWithBlocks(world, box, 9, 0, 12, 10, 0, 12, Blocks.planks); + placeBlockAtCurrentPosition(world, Blocks.planks, 0, 9, 0, 13, box); + for(int i = 0; i < 3; i++) { + fillWithMetadataBlocks(world, box, 10 + i, 0, 13 - i, 11 + i, 0, 13 - i, Blocks.planks, 1); + fillWithBlocks(world, box, 10 + i, 1, 13 - i, 11 + i, 1, 13 - i, Blocks.fence); + } + + //Ceiling + fillWithMetadataBlocks(world, box, 12, 4, 3, 12, 4, 8, Blocks.oak_stairs, stairW | 4); + fillWithBlocks(world, box, 12, 5, 3, 12, 5, 8, Blocks.planks); + fillWithBlocks(world, box, 10, 5, 3, 11, 6, 8, Blocks.planks); + fillWithBlocks(world, box, 9, 5, 3, 9, 5, 8, Blocks.planks); + fillWithMetadataBlocks(world, box, 9, 4, 3, 9, 4, 8, Blocks.oak_stairs, stairE | 4); + fillWithBlocks(world, box, 8, 4, 5, 8, 4, 8, Blocks.planks); + fillWithBlocks(world, box, 5, 4, 2, 8, 4, 4, Blocks.planks); + fillWithBlocks(world, box, 1, 4, 5, 7, 4, 12, Blocks.planks); + + //Roofing + //Framing + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 1, 5, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 2, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 3, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 3, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 4, 7, 3, box); + fillWithMetadataBlocks(world, box, 4, 8, 3, 5, 8, 3, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 5, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 6, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 6, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 7, 6, 3, box); + fillWithMetadataBlocks(world, box, 2, 5, 3, 3, 5, 3, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 3, 5, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 3, 5, 1, box); + fillWithMetadataBlocks(world, box, 3, 4, 0, 14, 4, 0, Blocks.spruce_stairs, stairN); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 8, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 9, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 10, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 9, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 10, 6, 1, box); + fillWithMetadataBlocks(world, box, 10, 7, 1, 11, 7, 1, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 11, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 12, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 12, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 13, 5, 1, box); + fillWithMetadataBlocks(world, box, 14, 4, 1, 14, 4, 10, Blocks.spruce_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 13, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 12, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 12, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 11, 6, 10, box); + fillWithMetadataBlocks(world, box, 10, 7, 10, 11, 7, 10, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 10, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 9, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 9, 5, 10, box); + fillWithMetadataBlocks(world, box, 9, 4, 11, 9, 4, 14, Blocks.spruce_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 8, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 7, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 7, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 6, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 6, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 5, 7, 14, box); + fillWithMetadataBlocks(world, box, 4, 8, 14, 5, 8, 14, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 4, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 3, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 3, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 2, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 2, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 1, 5, 14, box); + fillWithMetadataBlocks(world, box, 0, 4, 3, 0, 4, 14, Blocks.spruce_stairs, stairW); + //Beams + for(int z = 6; z <= 11; z += 5) { + for(int i = 0; i < 3; i++) { + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 2 + i, 5 + i, z, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 7 - i, 5 + i, z, box); + } + } + + //Main (LEFT) + BrokenStairs roofStairs = new BrokenStairs(); + BrokenBlocks roofBlocks = new BrokenBlocks(); + + roofStairs.setMetadata(stairW); + fillWithBlocks(world, box, 4, 5, 1, 7, 5, 1, Blocks.wooden_slab); + fillWithRandomizedBlocks(world, box, 4, 5, 2, 7, 5, 3, rand, roofBlocks); //TODO separate into stair/slab/block block selectors + fillWithRandomizedBlocks(world, box, 8, 5, 2, 8, 5, 10, rand, roofBlocks); + fillWithRandomizedBlocks(world, box, 9, 6, 2, 9, 6, 9, rand, roofStairs); + randomlyFillWithBlocks(world, box, rand, 0.8F, 10, 7, 2, 11, 7, 9, Blocks.wooden_slab); + roofStairs.setMetadata(stairE); + fillWithRandomizedBlocks(world, box, 12, 6, 2, 12, 6, 9, rand, roofStairs); //i should redo like most of this shit + fillWithRandomizedBlocks(world, box, 13, 5, 2, 13, 5, 9, rand, roofStairs); + //Main (RIGHT) + fillWithRandomizedBlocks(world, box, 8, 5, 11, 8, 5, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 7, 6, 4, 7, 6, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 6, 7, 4, 6, 7, 7, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 6, 7, 11, 6, 7, 13, rand, roofStairs); + roofStairs.setMetadata(stairW); + fillWithBlocks(world, box, 4, 8, 4, 5, 8, 5, Blocks.wooden_slab); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 5, 8, 6, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 4, 8, 11, box); + fillWithBlocks(world, box, 4, 8, 12, 5, 8, 13, Blocks.wooden_slab); + fillWithRandomizedBlocks(world, box, 3, 7, 4, 3, 7, 6, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 3, 7, 10, 3, 7, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 2, 6, 4, 2, 6, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 1, 5, 4, 1, 5, 13, rand, roofStairs); + + //Deco + int metaN = getDecoMeta(3); + int metaE = getDecoMeta(4); + + //Webs + randomlyFillWithBlocks(world, box, rand, 0.05F, 12, 3, 3, 12, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 10, 4, 3, 11, 4, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 2, 8, 3, 2, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 3, 9, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 5, 4, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 10, 7, 3, 12, Blocks.web); + //Doors + placeDoor(world, box, Blocks.wooden_door, 1, false, false, 11, 1, 2); + placeDoor(world, box, Blocks.wooden_door, 1, false, rand.nextBoolean(), 4, 1, 9); + placeDoor(world, box, Blocks.wooden_door, 2, false, rand.nextBoolean(), 8, 1, 11); + //Windows + randomlyFillWithBlocks(world, box, rand, 0.5F, 6, 2, 1, 7, 3, 1, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 13, 2, 5, 13, 2, 6, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 10, 2, 9, 11, 3, 9, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 2, 13, 5, 3, 13, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 1, 2, 11, 1, 2, 11, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 1, 2, 6, 1, 2, 7, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 6, 4, 5, 6, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 6, 13, 5, 6, 13, Blocks.glass_pane); + //Attic Access + placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(4) >> 2, 6, 4, 10, box); + fillWithMetadataBlocks(world, box, 6, 2, 10, 6, 3, 10, Blocks.ladder, metaN); + //Furniture + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN | 4, 12, 1, 5, box); //tables + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 12, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS | 4, 12, 1, 7, box); + fillWithMetadataBlocks(world, box, 9, 1, 4, 9, 1, 5, Blocks.dark_oak_stairs, stairE | 4); + fillWithMetadataBlocks(world, box, 8, 1, 4, 8, 1, 5, Blocks.wooden_slab, 13); + fillWithMetadataBlocks(world, box, 7, 1, 4, 7, 1, 5, Blocks.dark_oak_stairs, stairW | 4); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS | 4, 8, 1, 2, box); //couch + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairW, 7, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS, 6, 1, 2, box); + fillWithMetadataBlocks(world, box, 5, 1, 2, 5, 1, 3, Blocks.dark_oak_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN, 5, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 10, 1, 5, box); //chairs + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN, 8, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 9, 1, 8, box); //bookshelf + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 9, 2, 8, box); + fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 7, 1, 8, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 7, 2, 8, box); + fillWithMetadataBlocks(world, box, 7, 3, 8, 9, 3, 8, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 4, 1, 5, box); //kitchen + placeBlockAtCurrentPosition(world, rand.nextBoolean() ? ModBlocks.machine_electric_furnace_off : Blocks.furnace, metaN, 3, 1, 5, box); //idk why the meta is off between all these blocks and idc + fillWithBlocks(world, box, 2, 1, 5, 2, 1, 6, Blocks.double_stone_slab); + placeBlockAtCurrentPosition(world, Blocks.cauldron, 2, 2, 1, 7, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 2, 1, 8, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 4, 3, 5, box); + placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 3, 3, 5, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 2, 3, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, metaN, 3, 3, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(2), 8, 2, 2, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 7, 2, 4, box); + + fillWithBlocks(world, box, 2, 1, 12, 3, 1, 12, Blocks.bookshelf); //bookshelf/desk + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 4, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 5, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 6, 1, 12, box); + fillWithBlocks(world, box, 7, 1, 12, 7, 2, 12, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 5, 5, 1, 11, box); //seat + placeBed(world, box, 1, 3, 1, 10); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 4, 2, 12, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 12, box); + + fillWithMetadataBlocks(world, box, 4, 5, 5, 5, 5, 5, Blocks.dark_oak_stairs, stairS | 4); //seat and desk + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 4, 5, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 7, 5, 7, box); //conserve crates + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 2, 5, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 3, 5, 11, box); + if(rand.nextBoolean()) + placeBlockAtCurrentPosition(world, ModBlocks.machine_diesel, metaE, 7, 5, 9, box); + placeBlockAtCurrentPosition(world, rand.nextBoolean() ? ModBlocks.crate_weapon : ModBlocks.crate, 0, 6, 5, 12, box); + + //inventories + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 7, 1, 10, HbmChestContents.officeTrash, 4); + generateInvContents(world, box, rand, Blocks.chest, metaE, 7, 5, 5, HbmChestContents.modGeneric, 8); + //loot + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 2, 12, box); + LootGenerator.lootBookLore(world, getXWithOffset(3, 12), getYWithOffset(2), getZWithOffset(3, 12), HbmChestContents.generateLabBook(rand)); //TODO write more lore + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 5, 6, 5, box); + LootGenerator.lootMakeshiftGun(world, getXWithOffset(5, 5), getYWithOffset(6), getZWithOffset(5, 5)); + placeRandomBobble(world, box, rand, 5, 5, 12); + + return true; + } + + //i don't like this class + public static class BrokenStairs extends BlockSelector { + //man. + public void setMetadata(int meta) { + this.selectedBlockMetaData = meta; + } + //mannnnnnnn. + @Override + public int getSelectedBlockMetaData() { + return this.field_151562_a instanceof BlockStairs ? this.selectedBlockMetaData : 0; + } + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.7) + this.field_151562_a = Blocks.oak_stairs; + else if(chance < 0.97) + this.field_151562_a = Blocks.wooden_slab; + else + this.field_151562_a = Blocks.air; + } + } + + //this fucking sucks. i am racist against the blockselector class + public static class BrokenBlocks extends BlockSelector { + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.6) { + this.field_151562_a = Blocks.planks; + this.selectedBlockMetaData = 0; + } else if(chance < 0.8) { + this.field_151562_a = Blocks.oak_stairs; + this.selectedBlockMetaData = rand.nextInt(4); + } else { + this.field_151562_a = Blocks.wooden_slab; + this.selectedBlockMetaData = 0; + } + } + } + } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 8ffa1292e..8607d2323 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -11,7 +11,6 @@ import com.hbm.handler.MultiblockHandlerXR; import com.hbm.tileentity.machine.TileEntityLockableBase; import net.minecraft.block.Block; -import net.minecraft.block.BlockWeb; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; @@ -25,12 +24,7 @@ import net.minecraft.world.gen.structure.StructureComponent; import net.minecraftforge.common.util.ForgeDirection; abstract public class Component extends StructureComponent { - /** The size of the bounding box for this feature in the X axis */ - protected int sizeX; - /** The size of the bounding box for this feature in the Y axis */ - protected int sizeY; - /** The size of the bounding box for this feature in the Z axis */ - protected int sizeZ; + /** Average height (Presumably stands for height position) */ protected int hpos = -1; @@ -44,9 +38,6 @@ abstract public class Component extends StructureComponent { protected Component(Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ ) { super(0); - this.sizeX = maxX; - this.sizeY = maxY; - this.sizeZ = maxZ; this.coordBaseMode = rand.nextInt(4); switch(this.coordBaseMode) { @@ -70,17 +61,11 @@ abstract public class Component extends StructureComponent { /** Set to NBT */ protected void func_143012_a(NBTTagCompound nbt) { - nbt.setInteger("Width", this.sizeX); - nbt.setInteger("Height", this.sizeY); - nbt.setInteger("Depth", this.sizeZ); nbt.setInteger("HPos", this.hpos); } /** Get from NBT */ protected void func_143011_b(NBTTagCompound nbt) { - this.sizeX = nbt.getInteger("Width"); - this.sizeY = nbt.getInteger("Height"); - this.sizeZ = nbt.getInteger("Depth"); this.hpos = nbt.getInteger("HPos"); } @@ -210,7 +195,7 @@ abstract public class Component extends StructureComponent { metadata = metadata ^ 3; break; } - + //genuinely like. why did i do that return metadata << 2; //To accommodate for BlockDecoModel's shift in the rotation bits; otherwise, simply bit-shift right and or any non-rotation meta after } @@ -377,6 +362,7 @@ abstract public class Component extends StructureComponent { return generateInvContents(world, box, rand, block, 0, featureX, featureY, featureZ, content, amount); } + //TODO: explore min / max item generations: e.g., between 3 and 5 separate items are generated protected boolean generateInvContents(World world, StructureBoundingBox box, Random rand, Block block, int meta, int featureX, int featureY, int featureZ, WeightedRandomChestContent[] content, int amount) { int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); @@ -520,47 +506,11 @@ abstract public class Component extends StructureComponent { } } - /** Fills an area with cobwebs. Cobwebs will concentrate on corners and surfaces without floating cobwebs. */ - protected void fillWithCobwebs(World world, StructureBoundingBox box, Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { - - if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) - return; - - for(int x = minX; x <= maxX; x++) { - - for(int z = minZ; z <= maxZ; z++) { - int posX = getXWithOffset(x, z); - int posZ = getZWithOffset(x, z); - - if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { - for(int y = minY; y <= maxY; y++) { - int posY = getYWithOffset(y); - Block genTarget = world.getBlock(posX, posY, posZ); - - if(!genTarget.isAir(world, posX, posY, posZ)) - continue; - - int validNeighbors = 0; - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - Block neighbor = world.getBlock(posX + dir.offsetX, posY + dir.offsetY, posZ + dir.offsetZ); - - if(neighbor.getMaterial().blocksMovement() || neighbor instanceof BlockWeb) - validNeighbors++; - } - - if(validNeighbors > 5 || (validNeighbors > 1 && rand.nextInt(6 - validNeighbors) == 0)) - world.setBlock(posX, posY, posZ, Blocks.web); - } - } - } - } - } - /** getXWithOffset & getZWithOffset Methods that are actually fixed **/ //Turns out, this entire time every single minecraft structure is mirrored instead of rotated when facing East and North //Also turns out, it's a scarily easy fix that they somehow didn't see *entirely* @Override - protected int getXWithOffset(int x, int z) { + public int getXWithOffset(int x, int z) { switch(this.coordBaseMode) { case 0: return this.boundingBox.minX + x; @@ -576,7 +526,7 @@ abstract public class Component extends StructureComponent { } @Override - protected int getZWithOffset(int x, int z) { + public int getZWithOffset(int x, int z) { switch(this.coordBaseMode) { case 0: return this.boundingBox.minZ + z; @@ -739,7 +689,7 @@ abstract public class Component extends StructureComponent { } } } - + //TODO replace the shitty block selector with something else. probably a lambda that returns a metablock for convenience protected void fillWithRandomizedBlocks(World world, StructureBoundingBox box, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, Random rand, BlockSelector selector) { //so i don't have to replace shit if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index e4a96eabb..724323390 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.lib.HbmChestContents; import com.hbm.util.LootGenerator; + import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -29,8 +30,8 @@ public class OfficeFeatures { super(); } - public LargeOffice(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 14, 5, 12); + public LargeOffice(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 14, 5, 12); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -59,60 +60,60 @@ public class OfficeFeatures { this.boundingBox.offset(0, -1, 0); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, sizeX, 1, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 2, sizeX, 7, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 8, 8, sizeZ, 0, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 9, 8, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, 14, 1, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 2, 14, 7, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 8, 8, 12, 0, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 9, 8, 14, 12, -1, box); fillWithAir(world, box, 1, 1, 3, 4, 3, 6); - fillWithAir(world, box, 6, 1, 1, sizeX - 1, 3, 6); - fillWithAir(world, box, 10, 1, 7, sizeX - 1, 3, sizeZ - 1); + fillWithAir(world, box, 6, 1, 1, 14 - 1, 3, 6); + fillWithAir(world, box, 10, 1, 7, 14 - 1, 3, 12 - 1); //Pillars //Back fillWithBlocks(world, box, 0, 0, 2, 0, 4, 2, ModBlocks.concrete_pillar); fillWithBlocks(world, box, 5, 0, 0, 5, 4, 0, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 4, 0, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 14, 0, 0, 14, 4, 0, ModBlocks.concrete_pillar); //Front fillWithBlocks(world, box, 0, 0, 7, 0, 3, 7, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 0, 0, sizeZ, 0, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 3, 0, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 6, 0, sizeZ, 6, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 9, 0, sizeZ, 9, 3, sizeZ, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 0, 0, 12, 0, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 3, 0, 12, 3, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 6, 0, 12, 6, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 9, 0, 12, 9, 3, 12, ModBlocks.concrete_pillar); fillWithBlocks(world, box, 9, 0, 7, 9, 3, 7, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 4, sizeZ, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 14, 0, 12, 14, 4, 12, ModBlocks.concrete_pillar); //Walls //Back fillWithRandomizedBlocks(world, box, 1, 0, 2, 5, 4, 2, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 5, 0, 1, 5, 4, 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 6, 0, 0, sizeX - 1, 1, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 0, 0, 14 - 1, 1, 0, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 6, 2, 0, 6, 2, 0, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 9, 2, 0, 10, 2, 0, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX - 1, 2, 0, sizeX - 1, 2, 0, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 6, 3, 0, sizeX - 1, 4, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14 - 1, 2, 0, 14 - 1, 2, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 3, 0, 14 - 1, 4, 0, rand, ConcreteBricks); //Right - fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 1, sizeZ - 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, 1, sizeX, 2, 2, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, 5, sizeX, 2, 7, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, sizeZ - 2, sizeX, 2, sizeZ - 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 3, 1, sizeX, 4, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 0, 1, 14, 1, 12 - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 1, 14, 2, 2, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 5, 14, 2, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 12 - 2, 14, 2, 12 - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 3, 1, 14, 4, 12 - 1, rand, ConcreteBricks); //Front - fillWithRandomizedBlocks(world, box, 0, 4, sizeZ, sizeX - 1, 4, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 0, sizeZ, sizeX - 1, 1, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 2, sizeZ, 10, 2, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX - 1, 2, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 3, sizeZ, sizeX - 1, 3, sizeZ, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 4, 12, 14 - 1, 4, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 0, 12, 14 - 1, 1, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 2, 12, 10, 2, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14 - 1, 2, 12, 14 - 1, 2, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 3, 12, 14 - 1, 3, 12, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 9, 0, 8, 9, 3, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 9, 0, 8, 9, 3, 12 - 1, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 0, 7, 8, 0, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 1, 7, 1, 2, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 4, 1, 7, 8, 3, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 3, 7, 3, 3, 7, rand, ConcreteBricks); //Left - fillWithRandomizedBlocks(world, box, 0, 4, 3, 0, 4, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 4, 3, 0, 4, 12 - 1, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 0, 3, 0, 1, 6, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 2, 3, 0, 3, 3, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 2, 6, 0, 3, 6, rand, ConcreteBricks); @@ -121,21 +122,21 @@ public class OfficeFeatures { fillWithRandomizedBlocks(world, box, 5, 3, 6, 5, 3, 6, rand, ConcreteBricks); //Trim - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, 2, 5, sizeY, 2, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 5, sizeY, 1, 5, sizeY, 1, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 5, sizeY, 0, sizeX, sizeY, 0, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, sizeX, sizeY, 1, sizeX, sizeY, sizeZ, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, sizeZ, sizeX - 1, sizeY, sizeZ, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, 3, 0, sizeY, sizeZ - 1, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 2, 5, 5, 2, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 5, 5, 1, 5, 5, 1, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 5, 5, 0, 14, 5, 0, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 14, 5, 1, 14, 5, 12, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 12, 14 - 1, 5, 12, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 3, 0, 5, 12 - 1, Blocks.stone_slab); //Floor fillWithMetadataBlocks(world, box, 1, 0, 3, 4, 0, 6, Blocks.wool, 13); //Green Wool fillWithBlocks(world, box, 5, 0, 3, 5, 0, 6, ModBlocks.brick_light); - fillWithBlocks(world, box, 6, 0, 1, sizeX - 1, 0, 6, ModBlocks.brick_light); - fillWithBlocks(world, box, 10, 0, 7, sizeX - 1, 0, sizeZ - 1, ModBlocks.brick_light); + fillWithBlocks(world, box, 6, 0, 1, 14 - 1, 0, 6, ModBlocks.brick_light); + fillWithBlocks(world, box, 10, 0, 7, 14 - 1, 0, 12 - 1, ModBlocks.brick_light); //Ceiling - fillWithBlocks(world, box, 6, 4, 1, sizeX - 1, 4, 2, ModBlocks.brick_light); - fillWithBlocks(world, box, 1, 4, 3, sizeX - 1, 4, sizeZ - 1, ModBlocks.brick_light); + fillWithBlocks(world, box, 6, 4, 1, 14 - 1, 4, 2, ModBlocks.brick_light); + fillWithBlocks(world, box, 1, 4, 3, 14 - 1, 4, 12 - 1, ModBlocks.brick_light); //Decorations //Carpet @@ -143,10 +144,10 @@ public class OfficeFeatures { //Windows randomlyFillWithBlocks(world, box, rand, 0.75F, 0, 2, 4, 0, 3, 5, Blocks.glass_pane); randomlyFillWithBlocks(world, box, rand, 0.75F, 7, 2, 0, 8, 2, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX - 3, 2, 0, sizeX - 2, 2, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX, 2, 3, sizeX, 2, 4, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX, 2, 8, sizeX, 2, 9, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX - 3, 2, sizeZ, sizeX - 2, 2, sizeZ, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14 - 3, 2, 0, 14 - 2, 2, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14, 2, 3, 14, 2, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14, 2, 8, 14, 2, 9, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14 - 3, 2, 12, 14 - 2, 2, 12, Blocks.glass_pane); //Fuwnituwe >w< int stairMetaE = getStairMeta(1); //East int stairMetaN = getStairMeta(2); //*SHOULD* be north @@ -170,35 +171,35 @@ public class OfficeFeatures { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 4, box); //Desk 3 :3 placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaEU, 10, 1, 1, box); - fillWithMetadataBlocks(world, box, 11, 1, 1, sizeX - 1, 1, 1, Blocks.spruce_stairs, stairMetaSU); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, 2, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, sizeX - 1, 1, 3, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, sizeX - 1, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, 5, box); + fillWithMetadataBlocks(world, box, 11, 1, 1, 14 - 1, 1, 1, Blocks.spruce_stairs, stairMetaSU); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, 14 - 1, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 14 - 1, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 5, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 11, 1, 2, box); //Chaiw ;3 - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, sizeX - 2, 1, 4, box); //Chaiw :333 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), sizeX - 3, 2, 1, box); //South-facing Computer :3 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), sizeX - 1, 2, 5, box); //West-facing Computer ^w^ - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, sizeX - 1, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(5), sizeX - 1, 2, 2, box); //Wadio + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 14 - 2, 1, 4, box); //Chaiw :333 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 14 - 3, 2, 1, box); //South-facing Computer :3 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 14 - 1, 2, 5, box); //West-facing Computer ^w^ + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 14 - 1, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(5), 14 - 1, 2, 2, box); //Wadio //Desk 4 DX placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaEU, 10, 1, 8, box); placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 11, 1, 8, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 10, 1, 9, box); //Chaiw ;3 placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 8, box); //South-facing Computer :33 //Desk 5 :333 - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, sizeX - 1, 1, sizeZ - 3, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, sizeX - 1, 1, sizeZ - 2, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, sizeZ - 1, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, sizeX - 3, 1, sizeZ - 1, box); //UwU... Chaiw!!!! :333 I wove chaiws XD :333 OwO what's this?? chaiw???? :333333333333333333 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), sizeX - 1, 2, sizeZ - 1, box); //West-facing Computer >w< + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, 14 - 1, 1, 12 - 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 14 - 1, 1, 12 - 2, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 12 - 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 14 - 3, 1, 12 - 1, box); //UwU... Chaiw!!!! :333 I wove chaiws XD :333 OwO what's this?? chaiw???? :333333333333333333 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 14 - 1, 2, 12 - 1, box); //West-facing Computer >w< //Cobwebs pwobabwy //Maybe make a method for this eventually? //Something where the tops of ceilings + empty corners along walls get most cobwebs, //with no cobwebs hanging midair + it not being performance intensive randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 3, 3, 4, 3, 6, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, sizeX - 1, 3, 6, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, sizeX - 1, 3, sizeZ - 1, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, 14 - 1, 3, 6, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, 14 - 1, 3, 12 - 1, Blocks.web); //Doors placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 2, 1, 7); placeDoor(world, box, ModBlocks.door_office, 3, true, rand.nextBoolean(), 3, 1, 7); @@ -206,7 +207,7 @@ public class OfficeFeatures { //Woot if(!this.hasPlacedLoot[0]) - this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), sizeX - 4, 1, sizeZ - 1, HbmChestContents.officeTrash, 8); + this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 14 - 4, 1, 12 - 1, HbmChestContents.officeTrash, 8); if(!this.hasPlacedLoot[1]) { this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, HbmChestContents.machineParts, 10, 0.5D); if(rand.nextInt(2) == 0) @@ -230,8 +231,8 @@ public class OfficeFeatures { super(); } - public LargeOfficeCorner(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 11, 15, 14); + public LargeOfficeCorner(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 11, 15, 14); } @Override @@ -545,7 +546,6 @@ public class OfficeFeatures { LootGenerator.lootCapStash(world, this.getXWithOffset(6, 11), this.getYWithOffset(13), this.getZWithOffset(6, 11)); placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 1, 10, 11, box); LootGenerator.lootMedicine(world, this.getXWithOffset(1, 11), this.getYWithOffset(10), this.getZWithOffset(1, 11)); - //this hurt my soul return true; diff --git a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java index b5f5d141d..9204e7b0e 100644 --- a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -26,8 +26,8 @@ public class RuinFeatures { super(); } - public NTMRuin1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 8, 6, 10); + public NTMRuin1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 8, 6, 10); } @Override @@ -39,52 +39,52 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 8, 10, -1, box); int pillarMetaWE = this.getPillarMeta(4); int pillarMetaNS = this.getPillarMeta(8); - this.fillWithBlocks(world, box, 0, 0, 0, 0, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 0, 0, 0, 0, 6, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall this.fillWithMetadataBlocks(world, box, 1, 3, 0, 3, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, 4, 0, 0, 4, sizeY - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 5, 3, 0, sizeX - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, sizeY - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 0, 0, 4, 6 - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 5, 3, 0, 8 - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 8, 0, 0, 8, 6 - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 3, 0, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 0, 8 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 3, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 0, 5, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 0, 8 - 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 4, 0, 3, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 4, 0, sizeX - 1, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, sizeY - 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 4, 0, 8 - 1, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall + this.fillWithBlocks(world, box, 0, 0, 10, 0, 6 - 1, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 2, 2, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 4, 0, 2, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, sizeZ - 2, 0, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 10 - 2, 0, 2, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 4, 1, 0, 4, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 5, 1, 0, 5, 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 4, sizeZ - 2, 0, 4, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, 1, 3, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithBlocks(world, box, 4, 0, sizeZ, 4, sizeY - 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 5, 3, sizeZ, sizeX - 1, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, sizeY - 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 3, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 1, sizeZ, 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 3, 1, sizeZ, 3, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 1, sizeZ, 5, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, sizeZ, sizeX - 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX, 3, 1, sizeX, 3, 2, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithMetadataBlocks(world, box, sizeX, 3, sizeZ - 1, sizeX, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, 2, 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, sizeZ - 2, sizeX, 1, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 2, sizeZ - 1, sizeX, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 4, 10 - 2, 0, 4, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 1, 3, 10, 3, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithBlocks(world, box, 4, 0, 10, 4, 6 - 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 5, 3, 10, 8 - 1, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 8, 0, 10, 8, 6 - 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 10, 3, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 10, 8 - 1, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 1, 10, 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 3, 1, 10, 3, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 1, 10, 5, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 10, 8 - 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 8, 3, 1, 8, 3, 2, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithMetadataBlocks(world, box, 8, 3, 10 - 1, 8, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 8, 0, 1, 8, 0, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 1, 1, 8, 2, 2, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 6, 8, 0, 6, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 10 - 2, 8, 1, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 2, 10 - 1, 8, 2, 10 - 1, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -98,8 +98,8 @@ public class RuinFeatures { super(); } - public NTMRuin2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 7, 5, 10); + public NTMRuin2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 7, 5, 10); } @Override @@ -111,43 +111,43 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 7, 10, -1, box); int pillarMetaWE = this.getPillarMeta(4); int pillarMetaNS = this.getPillarMeta(8); this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall - this.fillWithMetadataBlocks(world, box, 1, 3, 0, sizeX - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 1, 3, 0, 7 - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 7, 0, 0, 7, 5, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 7 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 4, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 3, 4, 0, sizeX - 1, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, sizeY, 0, sizeX - 1, sizeY, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 1, 0, 7 - 1, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 3, 4, 0, 7 - 1, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 5, 0, 7 - 1, 5, 0, false, rand, RandomConcreteBricks); this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall this.fillWithBlocks(world, box, 0, 0, 5, 0, 0, 5, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 0, 0, 10, 0, 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 2, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, sizeZ - 3, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, sizeZ - 1, 0, 1, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX - 1, 3, sizeZ, sizeX - 1, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 1, sizeZ, 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, sizeZ, sizeX - 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX, 3, 1, sizeX, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithBlocks(world, box, sizeX, 0, 5, sizeX, 4, 5, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX, 3, sizeZ - 2, sizeX, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, 2, 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 3, sizeX, 2, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 4, sizeX, 1, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 6, sizeX, 1, 7, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, sizeZ - 1, sizeX, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 10 - 3, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 10 - 1, 0, 1, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 7 - 1, 3, 10, 7 - 1, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithBlocks(world, box, 7, 0, 10, 7, 3, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 10, 7 - 1, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 1, 10, 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 1, 10, 7 - 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 7, 3, 1, 7, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithBlocks(world, box, 7, 0, 5, 7, 4, 5, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 7, 3, 10 - 2, 7, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 7, 0, 1, 7, 0, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 1, 7, 2, 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 3, 7, 2, 3, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 4, 7, 1, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 0, 6, 7, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 6, 7, 1, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 10 - 1, 7, 2, 10 - 1, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 7 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -161,8 +161,8 @@ public class RuinFeatures { super(); } - public NTMRuin3(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 8, 3, 10); + public NTMRuin3(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 8, 3, 10); } @Override @@ -174,37 +174,37 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 10, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 8, 0, 8, 10, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, sizeX, 0, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 4, sizeX, 4, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 8, 0, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 4, 8, 4, -1, box); - this.fillWithBlocks(world, box, 0, 0, 0, 0, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 8, 0, 0, 8, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 8 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 1, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 4, 1, 0, 4, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 2, 0, sizeX - 2, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 0, 8 - 1, 1, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 2, 0, 8 - 2, 2, 0, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, 0, 0, 4, 0, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Left Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 0, 0, sizeZ, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 0, 0, 10, box); this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, 5, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 5, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 5, 0, 1, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 7, 0, 1, 7, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, 4, sizeX, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 1, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 5, sizeX, 0, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, sizeZ - 1, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 8, 0, 4, 8, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall + this.fillWithBlocks(world, box, 8, 0, 10, 8, 1, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 8, 0, 1, 8, 1, 3, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 5, 8, 0, 6, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 10 - 1, 8, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 0, 10, 8 - 1, 0, 10, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, 4, 0, 4, 4, 2, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Center Wall this.fillWithRandomizedBlocks(world, box, 3, 0, 4, 3, 1, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, 4, sizeX - 1, 1, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 4, 8 - 1, 1, 4, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, sizeX - 1, 0, 3, Blocks.gravel, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 8 - 1, 0, 3, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -218,8 +218,8 @@ public class RuinFeatures { super(); } - public NTMRuin4(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 10, 2, 11); + public NTMRuin4(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 10, 2, 11); } @Override @@ -232,40 +232,40 @@ public class RuinFeatures { //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX, 5, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 11, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 10, 5, 10, 11, -1, box); placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, 5, 4, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, sizeZ, sizeX - 1, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 11, 10 - 1, 11, -1, box); placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 4, 0, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 5, sizeX - 1, 5, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 5, 10 - 1, 5, -1, box); this.fillWithBlocks(world, box, 0, 0, 0, 0, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 1 - this.fillWithBlocks(world, box, 5, 0, 0, 5, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 5, 0, 0, 5, 2, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 4, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 4, 1, 0, 4, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, 5, 0, 5, 5, sizeY, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 1 + this.fillWithBlocks(world, box, 5, 0, 5, 5, 2, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 1 this.fillWithRandomizedBlocks(world, box, 5, 0, 1, 5, 0, 4, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 1, 5, 1, 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 4, 5, 1, 4, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 2, 1, 5, 2, 4, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, 5, sizeX, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, 6, 0, 5, sizeX - 1, 0, 5, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 10, 0, 5, 10, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 6, 0, 5, 10 - 1, 0, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 6, 1, 5, 6, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 5, sizeX - 1, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 6, sizeX, 1, sizeZ - 3, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, 0, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Front Wall - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ, 7, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); //Left Wall + this.fillWithRandomizedBlocks(world, box, 10 - 1, 1, 5, 10 - 1, 1, 5, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 10, 0, 11, 10, 1, 11, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 10, 0, 6, 10, 0, 11 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 10, 1, 6, 10, 1, 11 - 3, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 0, 0, 11, 0, 0, 11, ModBlocks.concrete_pillar, Blocks.air, false); //Front Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 11, 1, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 6, 0, 11, 7, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 10 - 1, 0, 11, 10 - 1, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 11 - 1, false, rand, RandomConcreteBricks); //Left Wall this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 1, 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 4, 0, 1, 7, false, rand, RandomConcreteBricks); this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 4, 0, 5, Blocks.gravel, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, 10 - 1, 0, 11 - 1, Blocks.gravel, Blocks.air, false); return true; }