protected void placeSpawnerAtCurrentPosition( World var1, Random var2, int var3, int var4, int var5, String var6, StructureBoundingBox var7) { int var8 = this.getXWithOffset(var3, var5); int var9 = this.getYWithOffset(var4); int var10 = this.getZWithOffset(var3, var5); if (var7.isVecInside(var8, var9, var10) && var1.getBlockId(var8, var9, var10) != Block.mobSpawner.blockID) { var1.setBlockWithNotify(var8, var9, var10, Block.mobSpawner.blockID); TileEntityMobSpawner var11 = (TileEntityMobSpawner) var1.getBlockTileEntity(var8, var9, var10); if (var11 != null) { var11.setMobID(var6); } } }
/** * 'second Part of Structure generating, this for example places Spiderwebs, Mob Spawners, it * closes Mineshafts at the end, it adds Fences...' */ public boolean addComponentParts( World par1World, Random par2Random, StructureBoundingBox par3StructureBoundingBox) { if (isLiquidInStructureBoundingBox(par1World, par3StructureBoundingBox)) { return false; } int i = sectionCount * 5 - 1; fillWithBlocks(par1World, par3StructureBoundingBox, 0, 0, 0, 2, 1, i, 0, 0, false); randomlyFillWithBlocks( par1World, par3StructureBoundingBox, par2Random, 0.8F, 0, 2, 0, 2, 2, i, 0, 0, false); if (hasSpiders) { randomlyFillWithBlocks( par1World, par3StructureBoundingBox, par2Random, 0.6F, 0, 0, 0, 2, 1, i, Block.web.blockID, 0, false); } for (int j = 0; j < sectionCount; j++) { int i1 = 2 + j * 5; fillWithBlocks( par1World, par3StructureBoundingBox, 0, 0, i1, 0, 1, i1, Block.fence.blockID, 0, false); fillWithBlocks( par1World, par3StructureBoundingBox, 2, 0, i1, 2, 1, i1, Block.fence.blockID, 0, false); if (par2Random.nextInt(4) != 0) { fillWithBlocks( par1World, par3StructureBoundingBox, 0, 2, i1, 2, 2, i1, Block.planks.blockID, 0, false); } else { fillWithBlocks( par1World, par3StructureBoundingBox, 0, 2, i1, 0, 2, i1, Block.planks.blockID, 0, false); fillWithBlocks( par1World, par3StructureBoundingBox, 2, 2, i1, 2, 2, i1, Block.planks.blockID, 0, false); } randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.1F, 0, 2, i1 - 1, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.1F, 2, 2, i1 - 1, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.1F, 0, 2, i1 + 1, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.1F, 2, 2, i1 + 1, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.05F, 0, 2, i1 - 2, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.05F, 2, 2, i1 - 2, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.05F, 0, 2, i1 + 2, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.05F, 2, 2, i1 + 2, Block.web.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.05F, 1, 2, i1 - 1, Block.torchWood.blockID, 0); randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.05F, 1, 2, i1 + 1, Block.torchWood.blockID, 0); if (par2Random.nextInt(100) == 0) { createTreasureChestAtCurrentPosition( par1World, par3StructureBoundingBox, par2Random, 2, 0, i1 - 1, StructureMineshaftPieces.getTreasurePieces(), 3 + par2Random.nextInt(4)); } if (par2Random.nextInt(100) == 0) { createTreasureChestAtCurrentPosition( par1World, par3StructureBoundingBox, par2Random, 0, 0, i1 + 1, StructureMineshaftPieces.getTreasurePieces(), 3 + par2Random.nextInt(4)); } if (!hasSpiders || spawnerPlaced) { continue; } int l1 = getYWithOffset(0); int j2 = (i1 - 1) + par2Random.nextInt(3); int k2 = getXWithOffset(1, j2); j2 = getZWithOffset(1, j2); if (!par3StructureBoundingBox.isVecInside(k2, l1, j2)) { continue; } spawnerPlaced = true; par1World.setBlockWithNotify(k2, l1, j2, Block.mobSpawner.blockID); TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner) par1World.getBlockTileEntity(k2, l1, j2); if (tileentitymobspawner != null) { tileentitymobspawner.setMobID("CaveSpider"); } } for (int k = 0; k <= 2; k++) { for (int j1 = 0; j1 <= i; j1++) { int i2 = getBlockIdAtCurrentPosition(par1World, k, -1, j1, par3StructureBoundingBox); if (i2 == 0) { placeBlockAtCurrentPosition( par1World, Block.planks.blockID, 0, k, -1, j1, par3StructureBoundingBox); } } } if (hasRails) { for (int l = 0; l <= i; l++) { int k1 = getBlockIdAtCurrentPosition(par1World, 1, -1, l, par3StructureBoundingBox); if (k1 > 0 && Block.opaqueCubeLookup[k1]) { randomlyPlaceBlock( par1World, par3StructureBoundingBox, par2Random, 0.7F, 1, 0, l, Block.rail.blockID, getMetadataWithOffset(Block.rail.blockID, 0)); } } } return true; }
/** * second Part of Structure generating, this for example places Spiderwebs, Mob Spawners, it * closes Mineshafts at the end, it adds Fences... */ public boolean addComponentParts( World par1World, Random par2Random, StructureBoundingBox par3StructureBoundingBox) { this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 0, 0, 0, 10, 7, 15, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.placeDoor(par1World, par2Random, par3StructureBoundingBox, EnumDoor.GRATES, 4, 1, 0); byte var4 = 6; this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 1, var4, 1, 1, var4, 14, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 9, var4, 1, 9, var4, 14, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 2, var4, 1, 8, var4, 2, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 2, var4, 14, 8, var4, 14, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 1, 1, 1, 2, 1, 4, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 8, 1, 1, 9, 1, 4, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithBlocks( par1World, par3StructureBoundingBox, 1, 1, 1, 1, 1, 3, Block.lavaMoving.blockID, Block.lavaMoving.blockID, false); this.fillWithBlocks( par1World, par3StructureBoundingBox, 9, 1, 1, 9, 1, 3, Block.lavaMoving.blockID, Block.lavaMoving.blockID, false); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 3, 1, 8, 7, 1, 12, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithBlocks( par1World, par3StructureBoundingBox, 4, 1, 9, 6, 1, 11, Block.lavaMoving.blockID, Block.lavaMoving.blockID, false); int var5; for (var5 = 3; var5 < 14; var5 += 2) { this.fillWithBlocks( par1World, par3StructureBoundingBox, 0, 3, var5, 0, 4, var5, Block.fenceIron.blockID, Block.fenceIron.blockID, false); this.fillWithBlocks( par1World, par3StructureBoundingBox, 10, 3, var5, 10, 4, var5, Block.fenceIron.blockID, Block.fenceIron.blockID, false); } for (var5 = 2; var5 < 9; var5 += 2) { this.fillWithBlocks( par1World, par3StructureBoundingBox, var5, 3, 15, var5, 4, 15, Block.fenceIron.blockID, Block.fenceIron.blockID, false); } var5 = this.getMetadataWithOffset(Block.stairsStoneBrickSmooth.blockID, 3); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 4, 1, 5, 6, 1, 7, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 4, 2, 6, 6, 2, 7, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); this.fillWithRandomizedBlocks( par1World, par3StructureBoundingBox, 4, 3, 7, 6, 3, 7, false, par2Random, StructureStrongholdPieces.getStrongholdStones()); for (int var6 = 4; var6 <= 6; ++var6) { this.placeBlockAtCurrentPosition( par1World, Block.stairsStoneBrickSmooth.blockID, var5, var6, 1, 4, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.stairsStoneBrickSmooth.blockID, var5, var6, 2, 5, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.stairsStoneBrickSmooth.blockID, var5, var6, 3, 6, par3StructureBoundingBox); } byte var14 = 2; byte var7 = 0; byte var8 = 3; byte var9 = 1; switch (this.coordBaseMode) { case 0: var14 = 0; var7 = 2; break; case 1: var14 = 1; var7 = 3; var8 = 0; var9 = 2; case 2: default: break; case 3: var14 = 3; var7 = 1; var8 = 0; var9 = 2; } this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var14 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 4, 3, 8, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var14 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 5, 3, 8, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var14 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 6, 3, 8, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var7 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 4, 3, 12, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var7 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 5, 3, 12, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var7 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 6, 3, 12, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var8 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 3, 3, 9, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var8 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 3, 3, 10, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var8 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 3, 3, 11, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var9 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 7, 3, 9, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var9 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 7, 3, 10, par3StructureBoundingBox); this.placeBlockAtCurrentPosition( par1World, Block.endPortalFrame.blockID, var9 + (par2Random.nextFloat() > 0.9F ? 4 : 0), 7, 3, 11, par3StructureBoundingBox); if (!this.hasSpawner) { int var13 = this.getYWithOffset(3); int var10 = this.getXWithOffset(5, 6); int var11 = this.getZWithOffset(5, 6); if (par3StructureBoundingBox.isVecInside(var10, var13, var11)) { this.hasSpawner = true; par1World.setBlockWithNotify(var10, var13, var11, Block.mobSpawner.blockID); TileEntityMobSpawner var12 = (TileEntityMobSpawner) par1World.getBlockTileEntity(var10, var13, var11); if (var12 != null) { var12.setMobID("Silverfish"); } } } return true; }
public boolean func_35023_a( World p_35023_1_, Random p_35023_2_, StructureBoundingBox p_35023_3_) { if (func_35013_a(p_35023_1_, p_35023_3_)) { return false; } int i = field_35067_d * 5 - 1; func_35011_a(p_35023_1_, p_35023_3_, 0, 0, 0, 2, 1, i, 0, 0, false); func_35010_a(p_35023_1_, p_35023_3_, p_35023_2_, 0.8F, 0, 2, 0, 2, 2, i, 0, 0, false); if (field_35068_b) { func_35010_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.6F, 0, 0, 0, 2, 1, i, Block.field_9258_W.field_376_bc, 0, false); } for (int j = 0; j < field_35067_d; j++) { int i1 = 2 + j * 5; func_35011_a( p_35023_1_, p_35023_3_, 0, 0, i1, 0, 1, i1, Block.field_4057_ba.field_376_bc, 0, false); func_35011_a( p_35023_1_, p_35023_3_, 2, 0, i1, 2, 1, i1, Block.field_4057_ba.field_376_bc, 0, false); if (p_35023_2_.nextInt(4) != 0) { func_35011_a( p_35023_1_, p_35023_3_, 0, 2, i1, 2, 2, i1, Block.field_334_y.field_376_bc, 0, false); } else { func_35011_a( p_35023_1_, p_35023_3_, 0, 2, i1, 0, 2, i1, Block.field_334_y.field_376_bc, 0, false); func_35011_a( p_35023_1_, p_35023_3_, 2, 2, i1, 2, 2, i1, Block.field_334_y.field_376_bc, 0, false); } func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.1F, 0, 2, i1 - 1, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.1F, 2, 2, i1 - 1, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.1F, 0, 2, i1 + 1, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.1F, 2, 2, i1 + 1, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.05F, 0, 2, i1 - 2, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.05F, 2, 2, i1 - 2, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.05F, 0, 2, i1 + 2, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.05F, 2, 2, i1 + 2, Block.field_9258_W.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.05F, 1, 2, i1 - 1, Block.field_404_ar.field_376_bc, 0); func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.05F, 1, 2, i1 + 1, Block.field_404_ar.field_376_bc, 0); if (p_35023_2_.nextInt(100) == 0) { func_35003_a( p_35023_1_, p_35023_3_, p_35023_2_, 2, 0, i1 - 1, StructureMineshaftPieces.func_35588_a(), 3 + p_35023_2_.nextInt(4)); } if (p_35023_2_.nextInt(100) == 0) { func_35003_a( p_35023_1_, p_35023_3_, p_35023_2_, 0, 0, i1 + 1, StructureMineshaftPieces.func_35588_a(), 3 + p_35023_2_.nextInt(4)); } if (!field_35068_b || field_35069_c) { continue; } int l1 = func_35008_a(0); int j2 = (i1 - 1) + p_35023_2_.nextInt(3); int k2 = func_35017_a(1, j2); j2 = func_35006_b(1, j2); if (!p_35023_3_.func_35742_b(k2, l1, j2)) { continue; } field_35069_c = true; p_35023_1_.func_690_d(k2, l1, j2, Block.field_400_at.field_376_bc); TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner) p_35023_1_.func_603_b(k2, l1, j2); if (tileentitymobspawner != null) { tileentitymobspawner.func_21098_a("CaveSpider"); } } for (int k = 0; k <= 2; k++) { for (int j1 = 0; j1 <= i; j1++) { int i2 = func_35007_a(p_35023_1_, k, -1, j1, p_35023_3_); if (i2 == 0) { func_35018_a(p_35023_1_, Block.field_334_y.field_376_bc, 0, k, -1, j1, p_35023_3_); } } } if (field_35070_a) { for (int l = 0; l <= i; l++) { int k1 = func_35007_a(p_35023_1_, 1, -1, l, p_35023_3_); if (k1 > 0 && Block.field_343_p[k1]) { func_35014_a( p_35023_1_, p_35023_3_, p_35023_2_, 0.7F, 1, 0, l, Block.field_440_aH.field_376_bc, func_35009_c(Block.field_440_aH.field_376_bc, 0)); } } } return true; }