From 21c67ce31dda657eb42ba5bd0ce6e66cc2dced01 Mon Sep 17 00:00:00 2001 From: payonel Date: Thu, 14 May 2020 23:53:00 -0700 Subject: [PATCH] the y value passed to render methods changed in 1.10 to ref feet instead of eyes this breaks our screen render check when the player is standing just below the y value of text on the screen, but should still be able to see the text. closes #3252 --- .../cil/oc/client/renderer/tileentity/ScreenRenderer.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala b/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala index c86b2084f..1d5fce359 100644 --- a/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala +++ b/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala @@ -51,10 +51,14 @@ object ScreenRenderer extends TileEntitySpecialRenderer[Screen] { return } + // y = block.bottom - player.feet + // eye is higher, so the y delta should be more negative + val eye_delta: Double = y - Minecraft.getMinecraft.thePlayer.getEyeHeight + // Crude check whether screen text can be seen by the local player based // on the player's position -> angle relative to screen. val screenFacing = screen.facing.getOpposite - if (screenFacing.getFrontOffsetX * (x + 0.5) + screenFacing.getFrontOffsetY * (y + 0.5) + screenFacing.getFrontOffsetZ * (z + 0.5) < 0) { + if (screenFacing.getFrontOffsetX * (x + 0.5) + screenFacing.getFrontOffsetY * (eye_delta + 0.5) + screenFacing.getFrontOffsetZ * (z + 0.5) < 0) { return }