mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-11-20 00:34:52 +00:00
Force the monitor depth blocker to be flushed
As explained in the comment, "built-in" rendering types are now manually rendered ("finish"ed) before calling finish() on the main renderer. This means our depth blocker hasn't actually been drawn (if a monitor is the last TE to be rendered), and so blocks pass the depth test when they shouldn't. Fixes #599
This commit is contained in:
parent
c92f06cfd9
commit
61f8e97f6b
@ -17,10 +17,7 @@ import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer;
|
||||
import dan200.computercraft.shared.peripheral.monitor.TileMonitor;
|
||||
import dan200.computercraft.shared.util.Colour;
|
||||
import dan200.computercraft.shared.util.DirectionUtil;
|
||||
import net.minecraft.client.renderer.BufferBuilder;
|
||||
import net.minecraft.client.renderer.GLAllocation;
|
||||
import net.minecraft.client.renderer.IRenderTypeBuffer;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.*;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
@ -147,6 +144,10 @@ public class TileEntityMonitorRenderer extends TileEntityRenderer<TileMonitor>
|
||||
(float) (xSize + 2 * TileMonitor.RENDER_MARGIN), (float) -(ySize + TileMonitor.RENDER_MARGIN * 2)
|
||||
);
|
||||
|
||||
// Force a flush of the blocker. WorldRenderer.updateCameraAndRender will "finish" all the built-in
|
||||
// buffers before calling renderer.finish, which means the blocker isn't actually rendered at that point!
|
||||
renderer.getBuffer( RenderType.getSolid() );
|
||||
|
||||
transform.pop();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user