Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 57 lines 2.0 kB view raw
1package net.minecraft.server; 2 3import org.bukkit.event.block.BlockSpreadEvent; 4 5import uk.betacraft.uberbukkit.UberbukkitConfig; 6 7import java.util.Random; 8 9public class BlockMushroom extends BlockFlower { 10 11 protected BlockMushroom(int i, int j) { 12 super(i, j); 13 float f = 0.2F; 14 15 this.a(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 2.0F, 0.5F + f); 16 this.a(true); 17 } 18 19 public void a(World world, int i, int j, int k, Random random) { 20 // uberbukkit 21 if (!UberbukkitConfig.getInstance().getBoolean("mechanics.mushroom_spread", true)) return; 22 23 if (random.nextInt(100) == 0) { 24 int l = i + random.nextInt(3) - 1; 25 int i1 = j + random.nextInt(2) - random.nextInt(2); 26 int j1 = k + random.nextInt(3) - 1; 27 28 if (world.isEmpty(l, i1, j1) && this.f(world, l, i1, j1)) { 29 int k1 = i + (random.nextInt(3) - 1); 30 31 k1 = k + (random.nextInt(3) - 1); 32 if (world.isEmpty(l, i1, j1) && this.f(world, l, i1, j1)) { 33 // CraftBukkit start 34 org.bukkit.World bworld = world.getWorld(); 35 org.bukkit.block.BlockState blockState = bworld.getBlockAt(l, i1, j1).getState(); 36 blockState.setTypeId(this.id); 37 38 BlockSpreadEvent event = new BlockSpreadEvent(blockState.getBlock(), bworld.getBlockAt(i, j, k), blockState); 39 world.getServer().getPluginManager().callEvent(event); 40 41 if (!event.isCancelled()) { 42 blockState.update(true); 43 } 44 // CraftBukkit end 45 } 46 } 47 } 48 } 49 50 protected boolean c(int i) { 51 return Block.o[i]; 52 } 53 54 public boolean f(World world, int i, int j, int k) { 55 return j >= 0 && j < 128 ? world.k(i, j, k) < 13 && this.c(world.getTypeId(i, j - 1, k)) : false; 56 } 57}