Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}