package net.tropicraft.item; import net.minecraft.block.Block; import net.minecraft.block.IGrowable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.tropicraft.block.BlockTropicraftSapling; import net.tropicraft.registry.TCBlockRegistry; import net.tropicraft.registry.TCCreativeTabRegistry; public class ItemFertilizer extends ItemTropicraft { public ItemFertilizer() { super(); this.maxStackSize = 64; setCreativeTab(TCCreativeTabRegistry.tabMaterials); } @Override public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l, float par8, float par9, float par10) { Block block = world.getBlock(i, j, k); if (block == TCBlockRegistry.saplings) { if (!world.isRemote) { ((BlockTropicraftSapling) TCBlockRegistry.saplings).markOrGrowMarked(world, i, j, k, world.rand); itemstack.stackSize--; } return true; } boolean decrementStack = false; if (block instanceof IGrowable) { IGrowable igrowable = (IGrowable)block; if (igrowable.func_149851_a(world, i, j, k, world.isRemote)) { if (!world.isRemote) { if (igrowable.func_149852_a(world, world.rand, i, j, k)) { decrementStack = true; igrowable.func_149853_b(world, world.rand, i, j, k); } } } } if (block == Blocks.grass) { if (!world.isRemote) { decrementStack = true; label0: for (int j1 = 0; j1 < 128; j1++) { int k1 = i; int l1 = j + 1; int i2 = k; for (int j2 = 0; j2 < j1 / 16; j2++) { k1 += itemRand.nextInt(3) - 1; l1 += ((itemRand.nextInt(3) - 1) * itemRand.nextInt(3)) / 2; i2 += itemRand.nextInt(3) - 1; if (world.getBlock(k1, l1 - 1, i2) != Blocks.grass || world.isBlockNormalCubeDefault(k1, l1, i2, true)) { continue label0; } } if (!world.isAirBlock(k1, l1, i2)) { continue; } if (itemRand.nextInt(9) == 0) { world.setBlock(k1, l1, i2, TCBlockRegistry.flowers, itemRand.nextInt(16), 3); continue; } if (itemRand.nextInt(9) == 0) { world.setBlock(k1, l1, i2, TCBlockRegistry.flowers, itemRand.nextInt(16), 3); continue; } if (itemRand.nextInt(9) == 0) { //pineapple world.setBlock(k1, l1, i2, TCBlockRegistry.pineapple, 7, 3); world.setBlock(k1, l1 + 1, i2, TCBlockRegistry.pineapple, 8, 3); continue; } else if (itemRand.nextInt(8) == 0) { //iris world.setBlock(k1, l1, i2, TCBlockRegistry.tallFlowers, 0, 3); world.setBlock(k1, l1 + 1, i2, TCBlockRegistry.tallFlowers, 1, 3); continue; } } } if (decrementStack) itemstack.stackSize--; return true; } if (decrementStack) itemstack.stackSize--; return false; } }