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.
65 lines
3.0 KiB
65 lines
3.0 KiB
--- ../src-base/minecraft/net/minecraftforge/fluids/BlockFluidClassic.java |
|
+++ ../src-work/minecraft/net/minecraftforge/fluids/BlockFluidClassic.java |
|
@@ -133,9 +133,21 @@ |
|
world.setBlockMetadataWithNotify(x, y, z, 0, 2); |
|
} |
|
|
|
+ // Cauldron start |
|
+ org.bukkit.Server server = world.getServer(); |
|
+ org.bukkit.World bworld = world.getWorld(); |
|
+ org.bukkit.block.Block source = bworld == null ? null : bworld.getBlockAt(x, y, z); |
|
+ // Cauldron end |
|
+ |
|
// Flow vertically if possible |
|
if (canDisplace(world, x, y + densityDir, z)) |
|
{ |
|
+ // Cauldron start |
|
+ org.bukkit.block.BlockFace face = densityDir < 0 ? org.bukkit.block.BlockFace.DOWN : org.bukkit.block.BlockFace.UP; |
|
+ org.bukkit.event.block.BlockFromToEvent event = new org.bukkit.event.block.BlockFromToEvent(source, face); |
|
+ if (server != null) server.getPluginManager().callEvent(event); |
|
+ if (event.isCancelled()) return; |
|
+ // Cauldron end |
|
flowIntoBlock(world, x, y + densityDir, z, 1); |
|
return; |
|
} |
|
@@ -155,10 +167,38 @@ |
|
} |
|
boolean flowTo[] = getOptimalFlowDirections(world, x, y, z); |
|
|
|
- if (flowTo[0]) flowIntoBlock(world, x - 1, y, z, flowMeta); |
|
+ // Cauldron start |
|
+ /*if (flowTo[0]) flowIntoBlock(world, x - 1, y, z, flowMeta); |
|
if (flowTo[1]) flowIntoBlock(world, x + 1, y, z, flowMeta); |
|
if (flowTo[2]) flowIntoBlock(world, x, y, z - 1, flowMeta); |
|
- if (flowTo[3]) flowIntoBlock(world, x, y, z + 1, flowMeta); |
|
+ if (flowTo[3]) flowIntoBlock(world, x, y, z + 1, flowMeta);*/ |
|
+ org.bukkit.block.BlockFace[] faces = new org.bukkit.block.BlockFace[] { org.bukkit.block.BlockFace.NORTH, org.bukkit.block.BlockFace.SOUTH, |
|
+ org.bukkit.block.BlockFace.EAST, org.bukkit.block.BlockFace.WEST }; |
|
+ for (int i = 0; i < 4; i++) |
|
+ { |
|
+ if (flowTo[i]) |
|
+ { |
|
+ org.bukkit.event.block.BlockFromToEvent event = new org.bukkit.event.block.BlockFromToEvent(source, faces[i]); |
|
+ if (server != null) server.getPluginManager().callEvent(event); |
|
+ if (event.isCancelled()) continue; |
|
+ switch (i) |
|
+ { |
|
+ case 0: |
|
+ flowIntoBlock(world, x - 1, y, z, flowMeta); |
|
+ break; |
|
+ case 1: |
|
+ flowIntoBlock(world, x + 1, y, z, flowMeta); |
|
+ break; |
|
+ case 2: |
|
+ flowIntoBlock(world, x, y, z - 1, flowMeta); |
|
+ break; |
|
+ case 3: |
|
+ flowIntoBlock(world, x, y, z + 1, flowMeta); |
|
+ break; |
|
+ } |
|
+ } |
|
+ } |
|
+ // Cauldron end |
|
} |
|
} |
|
|
|
|