Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 116 lines 3.5 kB view raw
1package net.minecraft.server; 2 3import java.util.ArrayList; 4import java.util.List; 5import java.util.Optional; 6import java.util.Random; 7 8public class BlockCrops extends BlockFlower { 9 10 protected BlockCrops(int i, int j) { 11 super(i, j); 12 this.textureId = j; 13 this.a(true); 14 float f = 0.5F; 15 16 this.a(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f); 17 } 18 19 protected boolean c(int i) { 20 return i == Block.SOIL.id; 21 } 22 23 public void a(World world, int i, int j, int k, Random random) { 24 super.a(world, i, j, k, random); 25 if (world.getLightLevel(i, j + 1, k) >= 9) { 26 int l = world.getData(i, j, k); 27 28 if (l < 7) { 29 float f = this.h(world, i, j, k); 30 31 if (random.nextInt((int) (100.0F / f)) == 0) { 32 ++l; 33 world.setData(i, j, k, l); 34 } 35 } 36 } 37 } 38 39 public void d_(World world, int i, int j, int k) { 40 world.setData(i, j, k, 7); 41 } 42 43 private float h(World world, int i, int j, int k) { 44 float f = 1.0F; 45 int l = world.getTypeId(i, j, k - 1); 46 int i1 = world.getTypeId(i, j, k + 1); 47 int j1 = world.getTypeId(i - 1, j, k); 48 int k1 = world.getTypeId(i + 1, j, k); 49 int l1 = world.getTypeId(i - 1, j, k - 1); 50 int i2 = world.getTypeId(i + 1, j, k - 1); 51 int j2 = world.getTypeId(i + 1, j, k + 1); 52 int k2 = world.getTypeId(i - 1, j, k + 1); 53 boolean flag = j1 == this.id || k1 == this.id; 54 boolean flag1 = l == this.id || i1 == this.id; 55 boolean flag2 = l1 == this.id || i2 == this.id || j2 == this.id || k2 == this.id; 56 57 for (int l2 = i - 1; l2 <= i + 1; ++l2) { 58 for (int i3 = k - 1; i3 <= k + 1; ++i3) { 59 int j3 = world.getTypeId(l2, j - 1, i3); 60 float f1 = 0.0F; 61 62 if (j3 == Block.SOIL.id) { 63 f1 = 1.0F; 64 if (world.getData(l2, j - 1, i3) > 0) { 65 f1 = 3.0F; 66 } 67 } 68 69 if (l2 != i || i3 != k) { 70 f1 /= 4.0F; 71 } 72 73 f += f1; 74 } 75 } 76 77 if (flag2 || flag && flag1) { 78 f /= 2.0F; 79 } 80 81 return f; 82 } 83 84 public int a(int i, int j) { 85 if (j < 0) { 86 j = 7; 87 } 88 89 return this.textureId + j; 90 } 91 92 public void dropNaturally(World world, int i, int j, int k, int l, float f) { 93 super.dropNaturally(world, i, j, k, l, f); 94 if (!world.isStatic) { 95 for (int i1 = 0; i1 < 3; ++i1) { 96 if (world.random.nextInt(15) <= l) { 97 float f1 = 0.7F; 98 float f2 = world.random.nextFloat() * f1 + (1.0F - f1) * 0.5F; 99 float f3 = world.random.nextFloat() * f1 + (1.0F - f1) * 0.5F; 100 float f4 = world.random.nextFloat() * f1 + (1.0F - f1) * 0.5F; 101 EntityItem entityitem = new EntityItem(world, (double) ((float) i + f2), (double) ((float) j + f3), (double) ((float) k + f4), new ItemStack(Item.SEEDS)); 102 entityitem.pickupDelay = 10; 103 world.addEntity(entityitem); 104 } 105 } 106 } 107 } 108 109 public int a(int i, Random random) { 110 return i == 7 ? Item.WHEAT.id : -1; 111 } 112 113 public int a(Random random) { 114 return 1; 115 } 116}