66 lines
3.0 KiB
Diff
66 lines
3.0 KiB
Diff
--- ../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
|
|
}
|
|
}
|
|
|