You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.3 KiB
60 lines
2.3 KiB
--- ../src-base/minecraft/net/minecraft/block/BlockMushroom.java |
|
+++ ../src-work/minecraft/net/minecraft/block/BlockMushroom.java |
|
@@ -6,6 +6,12 @@ |
|
import net.minecraft.world.gen.feature.WorldGenBigMushroom; |
|
import net.minecraftforge.common.util.ForgeDirection; |
|
|
|
+// CraftBukkit start |
|
+import org.bukkit.block.BlockState; |
|
+import org.bukkit.event.block.BlockSpreadEvent; |
|
+import org.bukkit.TreeType; |
|
+// CraftBukkit end |
|
+ |
|
public class BlockMushroom extends BlockBush implements IGrowable |
|
{ |
|
private static final String __OBFID = "CL_00000272"; |
|
@@ -19,7 +25,9 @@ |
|
|
|
public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) |
|
{ |
|
- if (p_149674_5_.nextInt(25) == 0) |
|
+ final int sourceX = p_149674_2_, sourceY = p_149674_3_, sourceZ = p_149674_4_; // CraftBukkit |
|
+ |
|
+ if (p_149674_5_.nextInt(Math.max(1, (int) p_149674_1_.growthOdds / p_149674_1_.getSpigotConfig().mushroomModifier * 25)) == 0) // Spigot // Cauldron |
|
{ |
|
byte b0 = 4; |
|
int l = 5; |
|
@@ -66,7 +74,19 @@ |
|
|
|
if (p_149674_1_.isAirBlock(i1, j1, k1) && this.canBlockStay(p_149674_1_, i1, j1, k1)) |
|
{ |
|
- p_149674_1_.setBlock(i1, j1, k1, this, 0, 2); |
|
+ // CraftBukkit start |
|
+ org.bukkit.World bworld = p_149674_1_.getWorld(); |
|
+ BlockState blockState = bworld.getBlockAt(i1, j1, k1).getState(); |
|
+ blockState.setTypeId(Block.getIdFromBlock(this)); // nms: this.id, 0, 2 |
|
+ BlockSpreadEvent event = new BlockSpreadEvent(blockState.getBlock(), bworld.getBlockAt(sourceX, sourceY, sourceZ), blockState); |
|
+ p_149674_1_.getServer().getPluginManager().callEvent(event); |
|
+ |
|
+ if (!event.isCancelled()) |
|
+ { |
|
+ blockState.update(true); |
|
+ } |
|
+ |
|
+ // CraftBukkit end |
|
} |
|
} |
|
} |
|
@@ -102,10 +122,12 @@ |
|
|
|
if (this == Blocks.brown_mushroom) |
|
{ |
|
+ BlockSapling.treeType = TreeType.BROWN_MUSHROOM; // CraftBukkit |
|
worldgenbigmushroom = new WorldGenBigMushroom(0); |
|
} |
|
else if (this == Blocks.red_mushroom) |
|
{ |
|
+ BlockSapling.treeType = TreeType.RED_MUSHROOM; // CraftBukkit |
|
worldgenbigmushroom = new WorldGenBigMushroom(1); |
|
} |
|
|
|
|