From f4c2a32f38baead44086c00c94bfcae00e4cb6f1 Mon Sep 17 00:00:00 2001 From: Ven Date: Fri, 30 Jun 2023 11:00:13 +0100 Subject: [PATCH] Added render utility for translating the camera relative to the player --- .../com/falsepattern/lib/util/RenderUtil.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/falsepattern/lib/util/RenderUtil.java b/src/main/java/com/falsepattern/lib/util/RenderUtil.java index 56b0cb9..7f36e2f 100644 --- a/src/main/java/com/falsepattern/lib/util/RenderUtil.java +++ b/src/main/java/com/falsepattern/lib/util/RenderUtil.java @@ -21,7 +21,6 @@ package com.falsepattern.lib.util; import com.falsepattern.lib.StableAPI; -import lombok.NoArgsConstructor; import lombok.SneakyThrows; import lombok.experimental.UtilityClass; import lombok.val; @@ -31,9 +30,9 @@ import net.minecraft.util.IIcon; import net.minecraft.util.Timer; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import static cpw.mods.fml.relauncher.Side.CLIENT; -import static lombok.AccessLevel.PRIVATE; import static net.minecraft.client.Minecraft.getMinecraft; @SideOnly(CLIENT) @@ -42,6 +41,18 @@ import static net.minecraft.client.Minecraft.getMinecraft; public final class RenderUtil { private static final Timer MINECRAFT_TIMER = getMinecraftTimer(); + @StableAPI.Expose(since = "0.12.0") + public static void setGLTranslationRelativeToPlayer() { + val player = getMinecraft().thePlayer; + val partialTick = partialTick(); + + val offsetX = (float) (player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTick); + val offsetY = (float) (player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTick); + val offsetZ = (float) (player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTick); + + GL11.glTranslatef(-offsetX, -offsetY, -offsetZ); + } + @StableAPI.Expose(since = "0.10.0") public static IIcon getFullTextureIcon(String iconName, int width, int height) { return new IIcon() {