diff --git a/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java b/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java index 4f5f5502..6e8b5cc8 100644 --- a/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java +++ b/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java @@ -3,15 +3,31 @@ package com.replaymod.core.events; import de.johni0702.minecraft.gui.utils.Event; +//#if MC>=11500 +//$$ import net.minecraft.client.util.math.MatrixStack; +//#endif + public interface PostRenderWorldCallback { Event EVENT = Event.create((listeners) -> + //#if MC>=11500 + //$$ (MatrixStack matrixStack) -> { + //#else () -> { + //#endif for (PostRenderWorldCallback listener : listeners) { - listener.postRenderWorld(); + listener.postRenderWorld( + //#if MC>=11500 + //$$ matrixStack + //#endif + ); } } ); - void postRenderWorld(); + void postRenderWorld( + //#if MC>=11500 + //$$ MatrixStack matrixStack + //#endif + ); } //#endif diff --git a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java index 7f62367d..1073b9d7 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java +++ b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java @@ -30,7 +30,11 @@ public class MixinGameRenderer { //$$ MatrixStack matrixStack, //#endif CallbackInfo ci) { - PostRenderWorldCallback.EVENT.invoker().postRenderWorld(); + PostRenderWorldCallback.EVENT.invoker().postRenderWorld( + //#if MC>=11500 + //$$ matrixStack + //#endif + ); } @Inject(method = "renderHand", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java index 66a66522..efe9a1f7 100644 --- a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java +++ b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java @@ -24,6 +24,11 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Triple; import org.lwjgl.opengl.GL11; +//#if MC>=11500 +//$$ import com.mojang.blaze3d.systems.RenderSystem; +//$$ import net.minecraft.client.util.math.MatrixStack; +//#endif + //#if FABRIC>=1 import com.replaymod.core.events.PostRenderWorldCallback; //#else @@ -55,7 +60,11 @@ public class PathPreviewRenderer extends EventRegistrations { //#if FABRIC>=1 { on(PostRenderWorldCallback.EVENT, this::renderCameraPath); } + //#if MC>=11500 + //$$ private void renderCameraPath(MatrixStack matrixStack) { + //#else private void renderCameraPath() { + //#endif //#else //$$ @SubscribeEvent //$$ public void renderCameraPath(RenderWorldLastEvent event) { @@ -80,18 +89,27 @@ public class PathPreviewRenderer extends EventRegistrations { int renderDistance = mc.options.viewDistance * 16; int renderDistanceSquared = renderDistance * renderDistance; - //#if MC>=10800 - // Eye height is subtracted to make path appear higher (at eye height) than it actually is (at foot height) - Triple viewPos = Triple.of(Entity_getX(view), Entity_getY(view) - view.getStandingEyeHeight(), Entity_getZ(view)); - //#else - //$$ Triple viewPos = Triple.of(view.posX, view.posY, view.posZ); - //#endif + Triple viewPos = Triple.of( + Entity_getX(view), + //#if MC>=10800 && MC<11500 + // Eye height is subtracted to make path appear higher (at eye height) than it actually is (at foot height) + Entity_getY(view) - view.getStandingEyeHeight(), + //#else + //$$ Entity_getY(view), + //#endif + Entity_getZ(view) + ); GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); + GL11.glPushMatrix(); try { GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_TEXTURE_2D); + //#if MC>=11500 + //$$ RenderSystem.multMatrix(matrixStack.peek().getModel()); + //#endif + for (PathSegment segment : path.getSegments()) { Interpolator interpolator = segment.getInterpolator(); Keyframe start = segment.getStartKeyframe(); @@ -180,6 +198,7 @@ public class PathPreviewRenderer extends EventRegistrations { } } } finally { + GL11.glPopMatrix(); GlStateManager.popAttributes(); } }