diff --git a/common/net/minecraftforge/fluids/BlockFluidBase.java b/common/net/minecraftforge/fluids/BlockFluidBase.java index 5aea68e42..a3bc54f76 100644 --- a/common/net/minecraftforge/fluids/BlockFluidBase.java +++ b/common/net/minecraftforge/fluids/BlockFluidBase.java @@ -121,7 +121,15 @@ public abstract class BlockFluidBase extends Block implements IFluidBlock { return false; } - return true; + + if (this.density > getDensity(world, x, y, z)) + { + return true; + } + else + { + return false; + } } /** @@ -156,7 +164,15 @@ public abstract class BlockFluidBase extends Block implements IFluidBlock return false; } Block.blocksList[bId].dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); - return true; + + if (this.density > getDensity(world, x, y, z)) + { + return true; + } + else + { + return false; + } } public abstract int getQuantaValue(IBlockAccess world, int x, int y, int z); diff --git a/common/net/minecraftforge/fluids/BlockFluidClassic.java b/common/net/minecraftforge/fluids/BlockFluidClassic.java index ae63e2ceb..4defe7f6e 100644 --- a/common/net/minecraftforge/fluids/BlockFluidClassic.java +++ b/common/net/minecraftforge/fluids/BlockFluidClassic.java @@ -302,7 +302,15 @@ public class BlockFluidClassic extends BlockFluidBase { return false; } - return true; + + if (this.density > getDensity(world, x, y, z)) + { + return true; + } + else + { + return false; + } } protected int getLargerQuanta(IBlockAccess world, int x, int y, int z, int compare) diff --git a/common/net/minecraftforge/fluids/RenderBlockFluid.java b/common/net/minecraftforge/fluids/RenderBlockFluid.java index 5a0e6b180..6a065c554 100644 --- a/common/net/minecraftforge/fluids/RenderBlockFluid.java +++ b/common/net/minecraftforge/fluids/RenderBlockFluid.java @@ -1,4 +1,3 @@ - package net.minecraftforge.fluids; import net.minecraft.block.Block; @@ -29,12 +28,14 @@ public class RenderBlockFluid implements ISimpleBlockRenderingHandler { float total = 0; int count = 0; + + float end = 0; for (int i = 0; i < flow.length; i++) { - if (flow[i] >= 0.875F) + if (flow[i] >= 0.875F && end != 1F) { - return flow[i]; + end = flow[i]; } if (flow[i] >= 0) @@ -43,7 +44,11 @@ public class RenderBlockFluid implements ISimpleBlockRenderingHandler count++; } } - return total / count; + + if (end == 0) + end = total / count; + + return end; } public float getFluidHeightForRender(IBlockAccess world, int x, int y, int z, BlockFluidBase block) @@ -319,4 +324,4 @@ public class RenderBlockFluid implements ISimpleBlockRenderingHandler { return FluidRegistry.renderIdFluid; } -} +} \ No newline at end of file