public class BlockCrops extends BlockPlant implements IBlockFragilePlantElement { public static final BlockStateInteger AGE = BlockStateInteger.of("age", 0, 7); protected BlockCrops() { this.j(this.blockStateList.getBlockData().set(AGE, Integer.valueOf(0))); this.a(true); float var1 = 0.5F; this.a(0.5F - var1, 0.0F, 0.5F - var1, 0.5F + var1, 0.25F, 0.5F + var1); this.a((CreativeModeTab) null); this.c(0.0F); this.a(h); this.K(); } protected boolean c(Block var1) { return var1 == Blocks.FARMLAND; } public void b(World var1, BlockPosition var2, IBlockData var3, Random var4) { super.b(var1, var2, var3, var4); if (var1.getLightLevel(var2.up()) >= 9) { int var5 = ((Integer) var3.get(AGE)).intValue(); if (var5 < 7) { float var6 = a(this, var1, var2); if (var4.nextInt((int) (25.0F / var6) + 1) == 0) { var1.setTypeAndData(var2, var3.set(AGE, Integer.valueOf(var5 + 1)), 2); } } } } public void g(World var1, BlockPosition var2, IBlockData var3) { int var4 = ((Integer) var3.get(AGE)).intValue() + MathHelper.nextInt(var1.random, 2, 5); if (var4 > 7) { var4 = 7; } var1.setTypeAndData(var2, var3.set(AGE, Integer.valueOf(var4)), 2); } protected static float a(Block var0, World var1, BlockPosition var2) { float var3 = 1.0F; BlockPosition var4 = var2.down(); for (int var5 = -1; var5 <= 1; ++var5) { for (int var6 = -1; var6 <= 1; ++var6) { float var7 = 0.0F; IBlockData var8 = var1.getType(var4.a(var5, 0, var6)); if (var8.getBlock() == Blocks.FARMLAND) { var7 = 1.0F; if (((Integer) var8.get(BlockSoil.MOISTURE)).intValue() > 0) { var7 = 3.0F; } } if (var5 != 0 || var6 != 0) { var7 /= 4.0F; } var3 += var7; } } BlockPosition var12 = var2.north(); BlockPosition var13 = var2.south(); BlockPosition var15 = var2.west(); BlockPosition var14 = var2.east(); boolean var9 = var0 == var1.getType(var15).getBlock() || var0 == var1.getType(var14).getBlock(); boolean var10 = var0 == var1.getType(var12).getBlock() || var0 == var1.getType(var13).getBlock(); if (var9 && var10) { var3 /= 2.0F; } else { boolean var11 = var0 == var1.getType(var15.north()).getBlock() || var0 == var1.getType(var14.north()).getBlock() || var0 == var1.getType(var14.south()).getBlock() || var0 == var1.getType(var15.south()).getBlock(); if (var11) { var3 /= 2.0F; } } return var3; } public boolean f(World var1, BlockPosition var2, IBlockData var3) { return (var1.k(var2) >= 8 || var1.i(var2)) && this.c(var1.getType(var2.down()).getBlock()); } protected Item l() { return Items.WHEAT_SEEDS; } protected Item n() { return Items.WHEAT; } public void dropNaturally(World var1, BlockPosition var2, IBlockData var3, float var4, int var5) { super.dropNaturally(var1, var2, var3, var4, 0); if (!var1.isClientSide) { int var6 = ((Integer) var3.get(AGE)).intValue(); if (var6 >= 7) { int var7 = 3 + var5; for (int var8 = 0; var8 < var7; ++var8) { if (var1.random.nextInt(15) <= var6) { a(var1, var2, new ItemStack(this.l(), 1, 0)); } } } } } public Item getDropType(IBlockData var1, Random var2, int var3) { return ((Integer) var1.get(AGE)).intValue() == 7 ? this.n() : this.l(); } public boolean a(World var1, BlockPosition var2, IBlockData var3, boolean var4) { return ((Integer) var3.get(AGE)).intValue() < 7; } public boolean a(World var1, Random var2, BlockPosition var3, IBlockData var4) { return true; } public void b(World var1, Random var2, BlockPosition var3, IBlockData var4) { this.g(var1, var3, var4); } public IBlockData fromLegacyData(int var1) { return this.getBlockData().set(AGE, Integer.valueOf(var1)); } public int toLegacyData(IBlockData var1) { return ((Integer) var1.get(AGE)).intValue(); } protected BlockStateList getStateList() { return new BlockStateList(this, new IBlockState[] {AGE}); } }