public void onNeighborBlockChange(World world, int i, int j, int k, int l) { int dir = world.getBlockMetadata(i, j, k); if (dir == 0) { if (!world.isBlockOpaqueCube(i, j, k + 1)) { this.breakBlock(world, i, j, k, blockID, dir); world.setBlock(i, j, k, 0); } } else if (dir == 1) { if (!world.isBlockOpaqueCube(i - 1, j, k)) { this.breakBlock(world, i, j, k, blockID, dir); world.setBlock(i, j, k, 0); } } else if (dir == 2) { if (!world.isBlockOpaqueCube(i, j, k - 1)) { this.breakBlock(world, i, j, k, blockID, dir); world.setBlock(i, j, k, 0); } } else if (dir == 3) { if (!world.isBlockOpaqueCube(i + 1, j, k)) { this.breakBlock(world, i, j, k, blockID, dir); world.setBlock(i, j, k, 0); } } }
@Override public void onNeighborBlockChange(World world, int i, int j, int k, int l) { boolean check = false; for (int h = -1; h <= 1; h++) { for (int g = -1; g <= 1; g++) { for (int f = -1; f <= 1; f++) { if (world.getBlockId(i + h, j + g, k + f) == blockID && world.getBlockMetadata(i + h, j + g, k + f) == world.getBlockMetadata(i, j, k)) { check = true; } } } } if (!check) { world.setBlock(i, j, k, 0); } }
@Override public void onNeighborBlockChange(World world, int i, int j, int k, int l) { boolean check = false; for (int h = -2; h <= 2; h++) { for (int g = -2; g <= 2; g++) { for (int f = -2; f <= 2; f++) { if (world.getBlockId(i + h, j + g, k + f) == blockID && world.getBlockMetadata(i + h, j + g, k + f) == world.getBlockMetadata(i, j, k)) { check = true; } } } } if (!check) { world.setBlock(i, j, k, 0); dropBlockAsItem_do(world, i, j, k, new ItemStack(Item.itemsList[TFCItems.Logs.itemID], 1, l)); } }
public void SurroundWithLeaves(World world, int i, int j, int k) { for (int y = 0; y <= 1; y++) { for (int x = 1; x >= -1; x--) { for (int z = 1; z >= -1; z--) { if (world.getBlockId(i + x, j + y, k + z) == 0 && (world.getBlockId(i + x, j + y + 1, k + z) == 0 || world.getBlockId(i + x, j + y + 2, k + z) == 0)) { int meta = world.getBlockMetadata(i, j, k); int id = meta < 8 ? TFCBlocks.fruitTreeLeaves.blockID : TFCBlocks.fruitTreeLeaves2.blockID; if (world.getBlockId(i, j, k) != TFCBlocks.fruitTreeWood.blockID) id = 0; world.setBlockAndMetadata(i + x, j + y, k + z, id, world.getBlockMetadata(i, j, k)); } } } } }
@Override public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, Block block) { ChunkCoordinates coord = getBase(par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4)); if (par1World.getBlock(coord.posX, coord.posY, coord.posZ) != NailedBlocks.portalCrystal) { this.dropBlockAsItem(par1World, par2, par3, par4, 0, 0); par1World.setBlockToAir(par2, par3, par4); } super.onNeighborBlockChange(par1World, par2, par3, par4, block); }
/** Ticks the block if it's been scheduled */ public void updateTick(World world, int x, int y, int z, Random random) { // Initialize variables int volume = 0; int remainder = 0; int direction = 0; boolean[] optimal = new boolean[4]; int meta = world.getBlockMetadata(x, y, z); // Try to move down if (moveToBlock(world, x, y, z, x, y - 1, z)) { return; } // Get optimal flow direction optimal = getOptimalFlowDirections(world, x, y, z); // Move if (optimal[0]) { if (!moveToBlock(world, x, y, z, x - 1, y, z)) if (!moveToBlock(world, x, y, z, x, y, z + 1)) if (!moveToBlock(world, x, y, z, x, y, z - 1)) if (!moveToBlock(world, x, y, z, x + 1, y, z)) ; } else if (optimal[1]) { if (!moveToBlock(world, x, y, z, x + 1, y, z)) if (!moveToBlock(world, x, y, z, x, y, z + 1)) if (!moveToBlock(world, x, y, z, x, y, z - 1)) if (!moveToBlock(world, x, y, z, x - 1, y, z)) ; } else if (optimal[2]) { if (!moveToBlock(world, x, y, z, x, y, z - 1)) if (!moveToBlock(world, x, y, z, x - 1, y, z)) if (!moveToBlock(world, x, y, z, x + 1, y, z)) if (!moveToBlock(world, x, y, z, x, y, z + 1)) ; } else if (optimal[3]) { if (!moveToBlock(world, x, y, z, x, y, z + 1)) if (!moveToBlock(world, x, y, z, x - 1, y, z)) if (!moveToBlock(world, x, y, z, x + 1, y, z)) if (!moveToBlock(world, x, y, z, x, y, z - 1)) ; } // if (meta == world.getBlockMetadata(x, y, z) && meta > 5) // { // if(random.nextInt(100) < 10) // { // if(meta > 1) // world.setBlockMetadata(x, y, z, meta-1); // else // world.setBlock(x, y, z, 0); // } // } }
/** * Returns a boolean array indicating which flow directions are optimal based on each direction's * calculated flow cost. Each array index corresponds to one of the four cardinal directions. A * value of true indicates the direction is optimal. */ private boolean[] getOptimalFlowDirections(World par1World, int par2, int par3, int par4) { int var5; int var6; for (var5 = 0; var5 < 4; ++var5) { this.flowCost[var5] = 1000; var6 = par2; int var8 = par4; if (var5 == 0) { var6 = par2 - 1; } if (var5 == 1) { ++var6; } if (var5 == 2) { var8 = par4 - 1; } if (var5 == 3) { ++var8; } if (!this.blockBlocksFlow(par1World, var6, par3, var8) && (par1World.getBlockId(var6, par3, var8) != this.blockID || par1World.getBlockMetadata(var6, par3, var8) != 0)) { if (!this.blockBlocksFlow(par1World, var6, par3 - 1, var8)) { this.flowCost[var5] = 0; } else { this.flowCost[var5] = this.calculateFlowCost(par1World, var6, par3, var8, 1, var5); } } } var5 = this.flowCost[0]; for (var6 = 1; var6 < 4; ++var6) { if (this.flowCost[var6] < var5) { var5 = this.flowCost[var6]; } } for (var6 = 0; var6 < 4; ++var6) { this.isOptimalFlowDirection[var6] = this.flowCost[var6] == var5; } return this.isOptimalFlowDirection; }
private static void depolarize(World world, int i, int j, int k, List<ChunkCoordinates> blocks) { Block block = world.getBlock(i, j, k); if (isValidLinkPortalBlock(block) == 0) { return; } if (world.getBlockMetadata(i, j, k) == 0) { return; } world.setBlockMetadataWithNotify(i, j, k, 0, 0); if ((block == NailedBlocks.portal) && (!BlockPortal.isValidPortal(world, i, j, k))) { world.setBlock(i, j, k, Blocks.air, 0, 2); } blocks.add(new ChunkCoordinates(i, j, k)); }
@Override public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int i, int j, int k) { int dir = world.getBlockMetadata(i, j, k); if (dir == 0) { return AxisAlignedBB.getBoundingBox(i + 0.0F, j + 0F, k + 0.85F, i + 1F, j + 1F, k + 1F); } else if (dir == 1) { return AxisAlignedBB.getBoundingBox(i + 0.0F, j + 0F, k + 0.0F, i + 0.15F, j + 1F, k + 1F); } else if (dir == 2) { return AxisAlignedBB.getBoundingBox(i + 0.0F, j + 0F, k + 0.00F, i + 1F, j + 1F, k + 0.15F); } else if (dir == 3) { return AxisAlignedBB.getBoundingBox(i + 0.85F, j + 0F, k + 0.0F, i + 1F, j + 1F, k + 1F); } return AxisAlignedBB.getBoundingBox(i, j, k, i + 1, j + 1, k + 1); }
@Override public AxisAlignedBB getSelectedBoundingBoxFromPool( World par1World, int par2, int par3, int par4) { int i = par1World.getBlockMetadata(par2, par3, par4); float f = 0.375F; setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, f, 1.0F); if (i == 0) { setBlockBounds(0.0F, 1.0F - f, 0.0F, 1.0F, 1.0F, 1.0F); } if (i == 1) { setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, f, 1.0F); } if (i == 2) { setBlockBounds(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F); } if (i == 3) { setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f); } if (i == 4) { setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } if (i == 5) { setBlockBounds(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F); } AxisAlignedBB box = AxisAlignedBB.getAABBPool() .getAABB( par2 + this.minX, par3 + this.minY, par4 + this.minZ, par2 + this.maxX, par3 + this.maxY, par4 + this.maxZ); setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.375F); return box; }
public void generate( Random random, int i, int k, World world, IChunkProvider provider, IChunkProvider provider2) { int x = i * 16; int z = k * 16; try { if (world.getBlockId(x + 4, 0, z) == Block.bedrock.blockID && world.getWorldInfo().getTerrainType() != WorldType.FLAT) { if (world.getBlockMetadata(x + 4, 0, z) == 0) { for (int it = 0; it < 1; it++) { world.setBlockMetadataWithNotify(x + 4, 0, z, 0x1, 2); x = i * 16; z = k * 16; int y = EmasherGas.flatBedrockTop; if (!EmasherGas.flatBedrock) y = random.nextInt(2) + 3; x += random.nextInt(16); z += random.nextInt(16); if (world.provider.dimensionId != -1) { if (random.nextInt(8) == 0) { world.setBlock(x, y, z, EmasherGas.shaleResource.blockID, 0, 2); // System.out.println("Gen: " + x + ", " + y + ", " + z); } else if (Loader.isModLoaded("BuildCraft|Energy") && random.nextInt(12) == 0) { world.setBlock(x, y, z, EmasherGas.shaleResource.blockID, 1, 2); } } else { if (random.nextInt(6) == 0) world.setBlock(x, y, z, EmasherGas.shaleResource.blockID, 2, 2); } } } } } catch (Exception e) { System.out.println("[GasCraft] Error generating shale resorces for chunk @" + i + ", " + k); } }
private static void directPortal( World world, int i, int j, int k, int meta, List<ChunkCoordinates> blocks, List<ChunkCoordinates> portals) { if (isValidLinkPortalBlock(world.getBlock(i, j, k)) == 0) { return; } if (world.getBlockMetadata(i, j, k) != 0) { return; } world.setBlockMetadataWithNotify(i, j, k, meta, 0); if (world.getBlock(i, j, k) == NailedBlocks.portal) { portals.add(new ChunkCoordinates(i, j, k)); } else { blocks.add(new ChunkCoordinates(i, j, k)); } }
private void updateTileEntityOrientation(World world, int i, int j, int k) { TileEntityPortalController controller = (TileEntityPortalController) world.getTileEntity(i, j, k); int metadata = world.getBlockMetadata(i, j, k); if (metadata == 1) { controller.pitch = -90; controller.yaw = -90; /*}else if(metadata == 1){ controller.pitch = 90; controller.yaw = -90;*/ } else if (metadata == 2) { controller.yaw = 270; } else if (metadata == 3) { controller.yaw = 90; } else if (metadata == 4) { controller.yaw = 0; } else if (metadata == 5) { controller.yaw = 180; } controller.markDirty(); }
private static void redirectPortal( World world, TileEntity tileentity, int i, int j, int k, int meta, List<ChunkCoordinates> blocks) { if (isValidLinkPortalBlock(world.getBlock(i, j, k)) == 0) { return; } if (world.getBlockMetadata(i, j, k) == meta) { for (int m = 1; m < 7; m++) { if (m != meta) { world.setBlockMetadataWithNotify(i, j, k, m, 2); TileEntity local = getTileEntity(world, i, j, k); if ((local == tileentity) || ((local != null) && (tileentity == null))) { return; } } } world.setBlockMetadataWithNotify(i, j, k, 0, 2); } }
private boolean moveToBlock(World world, int x, int y, int z, int x2, int y2, int z2) { int blockID2 = world.getBlockId(x2, y2, z2); int originMeta = world.getBlockMetadata(x, y, z); int destMeta = world.getBlockMetadata(x2, y2, z2); if (blockID2 == this.blockID) { if (destMeta > originMeta || y > y2) { if (originMeta < 7 && destMeta > 0) { world.setBlockMetadata(x, y, z, originMeta + 1); world.markBlockForUpdate(x, y, z); world.setBlockMetadata(x2, y2, z2, destMeta - 1); world.markBlockForUpdate(x2, y2, z2); return true; } else if (destMeta > 0) { world.setBlockWithNotify(x, y, z, 0); world.markBlockForUpdate(x, y, z); world.setBlockMetadata(x2, y2, z2, destMeta - 1); world.markBlockForUpdate(x2, y2, z2); return true; } else { return false; } } else { return false; } } else if (liquidCanDisplaceBlock(world, x2, y2, z2)) { if (blockID2 > 0) { if (this.blockMaterial == Material.lava) { this.triggerLavaMixEffects(world, x2, y2, z2); } else if (blockID2 == Block.waterMoving.blockID || blockID2 == Block.waterStill.blockID) { if (originMeta < 7) { world.setBlockMetadataWithNotify(x, y, z, originMeta + 1); world.markBlockForUpdate(x, y, z); return true; } else { world.setBlockWithNotify(x, y, z, 0); world.markBlockForUpdate(x, y, z); return true; } } else { Block.blocksList[blockID2].dropBlockAsItem( world, x2, y2, z2, world.getBlockMetadata(x2, y2, z2), 0); } } if (y2 < y) { world.setBlockWithNotify(x, y, z, 0); world.markBlockForUpdate(x, y, z); world.setBlockAndMetadataWithNotify(x2, y2, z2, blockID, originMeta); world.markBlockForUpdate(x2, y2, z2); return true; } if (originMeta < 7) { world.setBlockMetadataWithNotify(x, y, z, originMeta + 1); world.markBlockForUpdate(x, y, z); world.setBlockAndMetadataWithNotify(x2, y2, z2, blockID, 7); world.markBlockForUpdate(x2, y2, z2); return true; } else if (world.getBlockId(x - 1, y, z) != this.blockID && world.getBlockId(x + 1, y, z) != this.blockID && world.getBlockId(x, y + 1, z) != this.blockID && world.getBlockId(x, y, z - 1) != this.blockID && world.getBlockId(x, y, z + 1) != this.blockID) { world.setBlockWithNotify(x, y, z, 0); return true; } else { world.setBlockWithNotify(x, y, z, 0); world.markBlockForUpdate(x, y, z); world.setBlockAndMetadataWithNotify(x2, y2, z2, blockID, 7); world.markBlockForUpdate(x2, y2, z2); return true; } } else { return false; } }
public static void fire(World world, int i, int j, int k) { ChunkCoordinates coord = getBase(i, j, k, world.getBlockMetadata(i, j, k)); onpulse(world, coord.posX, coord.posY, coord.posZ); pathto(world, i, j, k); }
public boolean onBlockActivated( World world, int i, int j, int k, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { TileEntityToolRack te = (TileEntityToolRack) world.getBlockTileEntity(i, j, k); int dir = world.getBlockMetadata(i, j, k); if (te != null) { if (dir == 0) { if (hitX < 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 0, 0); } else if (hitX > 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 1, 0); } else if (hitX < 0.5) { handleArea(world, i, j, k, entityplayer, te, 2, 0); } else if (hitX > 0.5) { handleArea(world, i, j, k, entityplayer, te, 3, 0); } } else if (dir == 1) { if (hitZ < 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 0, 1); } else if (hitZ > 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 1, 1); } else if (hitZ < 0.5) { handleArea(world, i, j, k, entityplayer, te, 2, 1); } else if (hitZ > 0.5) { handleArea(world, i, j, k, entityplayer, te, 3, 1); } } else if (dir == 2) { if (hitX < 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 0, 2); } else if (hitX > 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 1, 2); } else if (hitX < 0.5) { handleArea(world, i, j, k, entityplayer, te, 2, 2); } else if (hitX > 0.5) { handleArea(world, i, j, k, entityplayer, te, 3, 2); } } else if (dir == 3) { if (hitZ < 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 0, 3); } else if (hitZ > 0.5 && hitY > 0.5) { handleArea(world, i, j, k, entityplayer, te, 1, 3); } else if (hitZ < 0.5) { handleArea(world, i, j, k, entityplayer, te, 2, 3); } else if (hitZ > 0.5) { handleArea(world, i, j, k, entityplayer, te, 3, 3); } } te.broadcastPacketInRange(te.createUpdatePacket()); return true; } } return false; }
@Override public void onBlockDestroyedByExplosion(World world, int i, int j, int k, Explosion ex) { ProcessTree(world, i, j, k, world.getBlockMetadata(i, j, k), null); }
@Override public void updateTick(World world, int i, int j, int k, Random rand) { FloraManager manager = FloraManager.getInstance(); FloraIndex fi = manager.findMatchingIndex(this.getType(world.getBlockMetadata(i, j, k))); float temp = TFC_Climate.getHeightAdjustedTemp(i, j, k); if (!world.isRemote && world.getBlockTileEntity(i, j, k) != null && TFC_Time.currentMonth < 6 && fi != null && temp >= fi.minTemp && temp < fi.maxTemp) { TileEntityFruitTreeWood te = (TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k); int t = 1; if (TFC_Time.currentMonth < 3) t = 2; int leafGrowthRate = 20; int trunkGrowTime = 30; int branchGrowTime = 20; // grow upward if (te.birthTimeWood + trunkGrowTime < TFC_Time.totalDays() && te.height < 3 && te.isTrunk && rand.nextInt(16 / t) == 0 && (world.getBlockId(i, j + 1, k) == 0 || world.getBlockId(i, j + 1, k) == TFCBlocks.fruitTreeLeaves.blockID)) { world.setBlockAndMetadata(i, j + 1, k, this.blockID, world.getBlockMetadata(i, j, k)); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j + 1, k)).setTrunk(true); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j + 1, k)).setHeight(te.height + 1); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j + 1, k)).setBirth(); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k)).setBirthWood(trunkGrowTime); } else if (te.birthTimeWood + branchGrowTime < TFC_Time.totalDays() && te.height == 2 && te.isTrunk && rand.nextInt(16 / t) == 0 && world.getBlockId(i, j + 1, k) != blockID) { int r = rand.nextInt(4); if (r == 0 && world.getBlockId(i + 1, j, k) == 0 || world.getBlockId(i + 1, j, k) == TFCBlocks.fruitTreeLeaves.blockID) { world.setBlockAndMetadata(i + 1, j, k, this.blockID, world.getBlockMetadata(i, j, k)); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i + 1, j, k)).setTrunk(false); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i + 1, j, k)).setHeight(te.height); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i + 1, j, k)).setBirth(); } else if (r == 1 && world.getBlockId(i, j, k - 1) == 0 || world.getBlockId(i, j, k - 1) == TFCBlocks.fruitTreeLeaves.blockID) { world.setBlockAndMetadata(i, j, k - 1, this.blockID, world.getBlockMetadata(i, j, k)); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k - 1)).setTrunk(false); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k - 1)).setHeight(te.height); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k - 1)).setBirth(); } else if (r == 2 && world.getBlockId(i - 1, j, k) == 0 || world.getBlockId(i - 1, j, k) == TFCBlocks.fruitTreeLeaves.blockID) { world.setBlockAndMetadata(i - 1, j, k, this.blockID, world.getBlockMetadata(i, j, k)); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i - 1, j, k)).setTrunk(false); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i - 1, j, k)).setHeight(te.height); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i - 1, j, k)).setBirth(); } else if (r == 3 && world.getBlockId(i, j, k + 1) == 0 || world.getBlockId(i, j, k + 1) == TFCBlocks.fruitTreeLeaves.blockID) { world.setBlockAndMetadata(i, j, k + 1, this.blockID, world.getBlockMetadata(i, j, k)); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k + 1)).setTrunk(false); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k + 1)).setHeight(te.height); ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k + 1)).setBirth(); } ((TileEntityFruitTreeWood) world.getBlockTileEntity(i, j, k)).setBirthWood(branchGrowTime); } else if (te.birthTimeWood + 1 < TFC_Time.totalDays() && rand.nextInt(leafGrowthRate) == 0 && world.getBlockId(i, j + 2, k) != blockID) { if (world.getBlockId(i, j + 1, k) == 0 && world.getBlockId(i, j + 2, k) == 0 && BlockFruitLeaves.canStay( world, i, j + 1, k, TFCBlocks.fruitTreeLeaves.blockID)) // above { world.setBlockAndMetadata( i, j + 1, k, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i, j + 1, k); } else if (world.getBlockId(i + 1, j, k) == 0 && world.getBlockId(i + 1, j + 1, k) == 0 && BlockFruitLeaves.canStay( world, i + 1, j, k, TFCBlocks.fruitTreeLeaves.blockID)) // +x { world.setBlockAndMetadata( i + 1, j, k, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i + 1, j, k); } else if (world.getBlockId(i - 1, j, k) == 0 && world.getBlockId(i - 1, j + 1, k) == 0 && BlockFruitLeaves.canStay( world, i - 1, j, k, TFCBlocks.fruitTreeLeaves.blockID)) // -x { world.setBlockAndMetadata( i - 1, j, k, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i - 1, j, k); } else if (world.getBlockId(i, j, k + 1) == 0 && world.getBlockId(i, j + 1, k + 1) == 0 && BlockFruitLeaves.canStay( world, i, j, k + 1, TFCBlocks.fruitTreeLeaves.blockID)) // +z { world.setBlockAndMetadata( i, j, k + 1, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i, j, k + 1); } else if (world.getBlockId(i, j, k - 1) == 0 && world.getBlockId(i, j + 1, k - 1) == 0 && BlockFruitLeaves.canStay( world, i, j, k - 1, TFCBlocks.fruitTreeLeaves.blockID)) // -z { world.setBlockAndMetadata( i, j, k - 1, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i, j, k - 1); } else if (world.getBlockId(i + 1, j, k - 1) == 0 && world.getBlockId(i + 1, j + 1, k - 1) == 0 && BlockFruitLeaves.canStay( world, i + 1, j, k - 1, TFCBlocks.fruitTreeLeaves.blockID)) // +x/-z { world.setBlockAndMetadata( i + 1, j, k - 1, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i + 1, j, k - 1); } else if (world.getBlockId(i + 1, j, k + 1) == 0 && world.getBlockId(i + 1, j + 1, k + 1) == 0 && BlockFruitLeaves.canStay( world, i + 1, j, k + 1, TFCBlocks.fruitTreeLeaves.blockID)) // +x/+z { world.setBlockAndMetadata( i + 1, j, k + 1, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i + 1, j, k + 1); } else if (world.getBlockId(i - 1, j, k - 1) == 0 && world.getBlockId(i - 1, j + 1, k - 1) == 0 && BlockFruitLeaves.canStay( world, i - 1, j, k - 1, TFCBlocks.fruitTreeLeaves.blockID)) // -x/-z { world.setBlockAndMetadata( i - 1, j, k - 1, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i - 1, j, k - 1); } else if (world.getBlockId(i - 1, j, k + 1) == 0 && world.getBlockId(i - 1, j + 1, k + 1) == 0 && BlockFruitLeaves.canStay( world, i - 1, j, k + 1, TFCBlocks.fruitTreeLeaves.blockID)) // -x/+z { world.setBlockAndMetadata( i - 1, j, k + 1, TFCBlocks.fruitTreeLeaves.blockID, world.getBlockMetadata(i, j, k)); world.markBlockForUpdate(i - 1, j, k + 1); } } } }
private boolean checkOut(World world, int i, int j, int k, int l) { if (world.getBlockId(i, j, k) == blockID && world.getBlockMetadata(i, j, k) == l) { return true; } return false; }