From a3dec3a47ec6f10186d824d3c6e305b4ce7fe96e Mon Sep 17 00:00:00 2001 From: Brady Date: Fri, 10 Jan 2020 19:37:00 -0600 Subject: [PATCH] Render stuff should be fixed now. There is likely a better solution, but I think this is fine in order to keep things in-line with the development over at Mojang. --- .../api/event/events/RenderEvent.java | 11 ++- .../launch/mixins/MixinGameRenderer.java | 4 +- .../baritone/command/defaults/SelCommand.java | 2 +- .../baritone/selection/SelectionRenderer.java | 11 +-- src/main/java/baritone/utils/GuiClick.java | 7 +- src/main/java/baritone/utils/IRenderer.java | 57 +++++++------ .../java/baritone/utils/PathRenderer.java | 83 ++++++++++--------- 7 files changed, 97 insertions(+), 78 deletions(-) diff --git a/src/api/java/baritone/api/event/events/RenderEvent.java b/src/api/java/baritone/api/event/events/RenderEvent.java index 1f879bfcb..356d3f920 100644 --- a/src/api/java/baritone/api/event/events/RenderEvent.java +++ b/src/api/java/baritone/api/event/events/RenderEvent.java @@ -17,6 +17,8 @@ package baritone.api.event.events; +import com.mojang.blaze3d.matrix.MatrixStack; + /** * @author Brady * @since 8/5/2018 @@ -28,8 +30,11 @@ public final class RenderEvent { */ private final float partialTicks; - public RenderEvent(float partialTicks) { + private final MatrixStack matrixStack; + + public RenderEvent(float partialTicks, MatrixStack matrixStack) { this.partialTicks = partialTicks; + this.matrixStack = matrixStack; } /** @@ -38,4 +43,8 @@ public final class RenderEvent { public final float getPartialTicks() { return this.partialTicks; } + + public final MatrixStack getMatrixStack() { + return this.matrixStack; + } } diff --git a/src/launch/java/baritone/launch/mixins/MixinGameRenderer.java b/src/launch/java/baritone/launch/mixins/MixinGameRenderer.java index 13f6fb628..3e995cc69 100644 --- a/src/launch/java/baritone/launch/mixins/MixinGameRenderer.java +++ b/src/launch/java/baritone/launch/mixins/MixinGameRenderer.java @@ -38,9 +38,9 @@ public class MixinGameRenderer { args = {"ldc=hand"} ) ) - private void renderWorldPass(float partialTicks, long finishTimeNano, MatrixStack idfk, CallbackInfo ci) { + private void renderWorldPass(float partialTicks, long finishTimeNano, MatrixStack matrixStack, CallbackInfo ci) { for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(partialTicks)); + ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(partialTicks, matrixStack)); } } } diff --git a/src/main/java/baritone/command/defaults/SelCommand.java b/src/main/java/baritone/command/defaults/SelCommand.java index 773b6812d..19805d912 100644 --- a/src/main/java/baritone/command/defaults/SelCommand.java +++ b/src/main/java/baritone/command/defaults/SelCommand.java @@ -68,7 +68,7 @@ public class SelCommand extends Command { float lineWidth = Baritone.settings().selectionLineWidth.value; boolean ignoreDepth = Baritone.settings().renderSelectionIgnoreDepth.value; IRenderer.startLines(color, opacity, lineWidth, ignoreDepth); - IRenderer.drawAABB(new AxisAlignedBB(pos1, pos1.add(1, 1, 1))); + IRenderer.drawAABB(event.getMatrixStack(), new AxisAlignedBB(pos1, pos1.add(1, 1, 1))); IRenderer.endLines(ignoreDepth); } }); diff --git a/src/main/java/baritone/selection/SelectionRenderer.java b/src/main/java/baritone/selection/SelectionRenderer.java index 89104d030..22a1d7fe9 100644 --- a/src/main/java/baritone/selection/SelectionRenderer.java +++ b/src/main/java/baritone/selection/SelectionRenderer.java @@ -5,6 +5,7 @@ import baritone.api.event.events.RenderEvent; import baritone.api.event.listener.AbstractGameEventListener; import baritone.api.selection.ISelection; import baritone.utils.IRenderer; +import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.util.math.AxisAlignedBB; public class SelectionRenderer implements IRenderer, AbstractGameEventListener { @@ -18,7 +19,7 @@ public class SelectionRenderer implements IRenderer, AbstractGameEventListener { baritone.getGameEventHandler().registerEventListener(this); } - public static void renderSelections(ISelection[] selections) { + public static void renderSelections(MatrixStack stack, ISelection[] selections) { float opacity = settings.selectionOpacity.value; boolean ignoreDepth = settings.renderSelectionIgnoreDepth.value; float lineWidth = settings.selectionLineWidth.value; @@ -30,20 +31,20 @@ public class SelectionRenderer implements IRenderer, AbstractGameEventListener { IRenderer.startLines(settings.colorSelection.value, opacity, lineWidth, ignoreDepth); for (ISelection selection : selections) { - IRenderer.drawAABB(selection.aabb(), SELECTION_BOX_EXPANSION); + IRenderer.drawAABB(stack, selection.aabb(), SELECTION_BOX_EXPANSION); } if (settings.renderSelectionCorners.value) { IRenderer.glColor(settings.colorSelectionPos1.value, opacity); for (ISelection selection : selections) { - IRenderer.drawAABB(new AxisAlignedBB(selection.pos1(), selection.pos1().add(1, 1, 1))); + IRenderer.drawAABB(stack, new AxisAlignedBB(selection.pos1(), selection.pos1().add(1, 1, 1))); } IRenderer.glColor(settings.colorSelectionPos2.value, opacity); for (ISelection selection : selections) { - IRenderer.drawAABB(new AxisAlignedBB(selection.pos2(), selection.pos2().add(1, 1, 1))); + IRenderer.drawAABB(stack, new AxisAlignedBB(selection.pos2(), selection.pos2().add(1, 1, 1))); } } @@ -52,6 +53,6 @@ public class SelectionRenderer implements IRenderer, AbstractGameEventListener { @Override public void onRenderPass(RenderEvent event) { - renderSelections(manager.getSelections()); + renderSelections(event.getMatrixStack(), manager.getSelections()); } } diff --git a/src/main/java/baritone/utils/GuiClick.java b/src/main/java/baritone/utils/GuiClick.java index 02d0275da..8d79a61cd 100644 --- a/src/main/java/baritone/utils/GuiClick.java +++ b/src/main/java/baritone/utils/GuiClick.java @@ -23,6 +23,7 @@ import baritone.api.pathing.goals.GoalBlock; import baritone.api.pathing.goals.GoalTwoBlocks; import baritone.api.utils.BetterBlockPos; import baritone.api.utils.Helper; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.entity.player.ClientPlayerEntity; @@ -115,7 +116,7 @@ public class GuiClick extends Screen implements Helper { return super.mouseClicked(mouseX, mouseY, mouseButton); } - public void onRender() { + public void onRender(MatrixStack stack) { glGetFloatv(GL_MODELVIEW_MATRIX, (FloatBuffer) MODELVIEW.clear()); glGetFloatv(GL_PROJECTION_MATRIX, (FloatBuffer) PROJECTION.clear()); glGetIntegerv(GL_VIEWPORT, (IntBuffer) VIEWPORT.clear()); @@ -123,7 +124,7 @@ public class GuiClick extends Screen implements Helper { if (currentMouseOver != null) { Entity e = mc.getRenderViewEntity(); // drawSingleSelectionBox WHEN? - PathRenderer.drawManySelectionBoxes(e, Collections.singletonList(currentMouseOver), Color.CYAN); + PathRenderer.drawManySelectionBoxes(stack, e, Collections.singletonList(currentMouseOver), Color.CYAN); if (clickStart != null && !clickStart.equals(currentMouseOver)) { RenderSystem.enableBlend(); RenderSystem.blendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO); @@ -134,7 +135,7 @@ public class GuiClick extends Screen implements Helper { RenderSystem.disableDepthTest(); BetterBlockPos a = new BetterBlockPos(currentMouseOver); BetterBlockPos b = new BetterBlockPos(clickStart); - IRenderer.drawAABB(new AxisAlignedBB(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z), Math.max(a.x, b.x) + 1, Math.max(a.y, b.y) + 1, Math.max(a.z, b.z) + 1)); + IRenderer.drawAABB(stack, new AxisAlignedBB(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z), Math.max(a.x, b.x) + 1, Math.max(a.y, b.y) + 1, Math.max(a.z, b.z) + 1)); RenderSystem.enableDepthTest(); RenderSystem.depthMask(true); diff --git a/src/main/java/baritone/utils/IRenderer.java b/src/main/java/baritone/utils/IRenderer.java index 2a2f05f40..b94ea820d 100644 --- a/src/main/java/baritone/utils/IRenderer.java +++ b/src/main/java/baritone/utils/IRenderer.java @@ -21,8 +21,10 @@ import baritone.api.BaritoneAPI; import baritone.api.Settings; import baritone.api.utils.Helper; import baritone.utils.accessor.IEntityRenderManager; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.renderer.BufferBuilder; +import net.minecraft.client.renderer.Matrix4f; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.math.AxisAlignedBB; @@ -72,41 +74,42 @@ public interface IRenderer { RenderSystem.disableBlend(); } - static void drawAABB(AxisAlignedBB aabb) { + static void drawAABB(MatrixStack stack, AxisAlignedBB aabb) { AxisAlignedBB toDraw = aabb.offset(-renderManager.renderPosX(), -renderManager.renderPosY(), -renderManager.renderPosZ()); + Matrix4f matrix4f = stack.func_227866_c_().func_227870_a_(); buffer.begin(GL_LINES, DefaultVertexFormats.POSITION); // bottom - buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); // top - buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); // corners - buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex(); - buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); tessellator.draw(); } - static void drawAABB(AxisAlignedBB aabb, double expand) { - drawAABB(aabb.grow(expand, expand, expand)); + static void drawAABB(MatrixStack stack, AxisAlignedBB aabb, double expand) { + drawAABB(stack, aabb.grow(expand, expand, expand)); } } diff --git a/src/main/java/baritone/utils/PathRenderer.java b/src/main/java/baritone/utils/PathRenderer.java index ffd840e4c..c759c3adb 100644 --- a/src/main/java/baritone/utils/PathRenderer.java +++ b/src/main/java/baritone/utils/PathRenderer.java @@ -26,8 +26,10 @@ import baritone.api.utils.Helper; import baritone.api.utils.interfaces.IGoalRenderPos; import baritone.behavior.PathingBehavior; import baritone.pathing.path.PathExecutor; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.block.BlockState; +import net.minecraft.client.renderer.Matrix4f; import net.minecraft.client.renderer.tileentity.BeaconTileEntityRenderer; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.entity.Entity; @@ -72,7 +74,7 @@ public final class PathRenderer implements IRenderer, Helper { float partialTicks = event.getPartialTicks(); Goal goal = behavior.getGoal(); if (Helper.mc.currentScreen instanceof GuiClick) { - ((GuiClick) Helper.mc.currentScreen).onRender(); + ((GuiClick) Helper.mc.currentScreen).onRender(event.getMatrixStack()); } int thisPlayerDimension = behavior.baritone.getPlayerContext().world().getDimension().getType().getId(); @@ -93,7 +95,7 @@ public final class PathRenderer implements IRenderer, Helper { } if (goal != null && settings.renderGoal.value) { - drawDankLitGoalBox(renderView, goal, partialTicks, settings.colorGoalBox.value); + drawDankLitGoalBox(event.getMatrixStack(), renderView, goal, partialTicks, settings.colorGoalBox.value); } if (!settings.renderPath.value) { @@ -103,9 +105,9 @@ public final class PathRenderer implements IRenderer, Helper { PathExecutor current = behavior.getCurrent(); // this should prevent most race conditions? PathExecutor next = behavior.getNext(); // like, now it's not possible for current!=null to be true, then suddenly false because of another thread if (current != null && settings.renderSelectionBoxes.value) { - drawManySelectionBoxes(renderView, current.toBreak(), settings.colorBlocksToBreak.value); - drawManySelectionBoxes(renderView, current.toPlace(), settings.colorBlocksToPlace.value); - drawManySelectionBoxes(renderView, current.toWalkInto(), settings.colorBlocksToWalkInto.value); + drawManySelectionBoxes(event.getMatrixStack(), renderView, current.toBreak(), settings.colorBlocksToBreak.value); + drawManySelectionBoxes(event.getMatrixStack(), renderView, current.toPlace(), settings.colorBlocksToPlace.value); + drawManySelectionBoxes(event.getMatrixStack(), renderView, current.toWalkInto(), settings.colorBlocksToWalkInto.value); } //drawManySelectionBoxes(player, Collections.singletonList(behavior.pathStart()), partialTicks, Color.WHITE); @@ -113,27 +115,27 @@ public final class PathRenderer implements IRenderer, Helper { // Render the current path, if there is one if (current != null && current.getPath() != null) { int renderBegin = Math.max(current.getPosition() - 3, 0); - drawPath(current.getPath(), renderBegin, settings.colorCurrentPath.value, settings.fadePath.value, 10, 20); + drawPath(event.getMatrixStack(), current.getPath(), renderBegin, settings.colorCurrentPath.value, settings.fadePath.value, 10, 20); } if (next != null && next.getPath() != null) { - drawPath(next.getPath(), 0, settings.colorNextPath.value, settings.fadePath.value, 10, 20); + drawPath(event.getMatrixStack(), next.getPath(), 0, settings.colorNextPath.value, settings.fadePath.value, 10, 20); } // If there is a path calculation currently running, render the path calculation process behavior.getInProgress().ifPresent(currentlyRunning -> { currentlyRunning.bestPathSoFar().ifPresent(p -> { - drawPath(p, 0, settings.colorBestPathSoFar.value, settings.fadePath.value, 10, 20); + drawPath(event.getMatrixStack(), p, 0, settings.colorBestPathSoFar.value, settings.fadePath.value, 10, 20); }); currentlyRunning.pathToMostRecentNodeConsidered().ifPresent(mr -> { - drawPath(mr, 0, settings.colorMostRecentConsidered.value, settings.fadePath.value, 10, 20); - drawManySelectionBoxes(renderView, Collections.singletonList(mr.getDest()), settings.colorMostRecentConsidered.value); + drawPath(event.getMatrixStack(), mr, 0, settings.colorMostRecentConsidered.value, settings.fadePath.value, 10, 20); + drawManySelectionBoxes(event.getMatrixStack(), renderView, Collections.singletonList(mr.getDest()), settings.colorMostRecentConsidered.value); }); }); } - public static void drawPath(IPath path, int startIndex, Color color, boolean fadeOut, int fadeStart0, int fadeEnd0) { + public static void drawPath(MatrixStack stack, IPath path, int startIndex, Color color, boolean fadeOut, int fadeStart0, int fadeEnd0) { IRenderer.startLines(color, settings.pathRenderLineWidthPixels.value, settings.renderPathIgnoreDepth.value); int fadeStart = fadeStart0 + startIndex; @@ -169,7 +171,7 @@ public final class PathRenderer implements IRenderer, Helper { IRenderer.glColor(color, alpha); } - drawLine(start.x, start.y, start.z, end.x, end.y, end.z); + drawLine(stack, start.x, start.y, start.z, end.x, end.y, end.z); tessellator.draw(); } @@ -178,24 +180,26 @@ public final class PathRenderer implements IRenderer, Helper { } - public static void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) { + public static void drawLine(MatrixStack stack, double x1, double y1, double z1, double x2, double y2, double z2) { + Matrix4f matrix4f = stack.func_227866_c_().func_227870_a_(); + double vpX = posX(); double vpY = posY(); double vpZ = posZ(); boolean renderPathAsFrickinThingy = !settings.renderPathAsLine.value; buffer.begin(renderPathAsFrickinThingy ? GL_LINE_STRIP : GL_LINES, DefaultVertexFormats.POSITION); - buffer.func_225582_a_(x1 + 0.5D - vpX, y1 + 0.5D - vpY, z1 + 0.5D - vpZ).endVertex(); - buffer.func_225582_a_(x2 + 0.5D - vpX, y2 + 0.5D - vpY, z2 + 0.5D - vpZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.5D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); + buffer.func_227888_a_(matrix4f, (float) (x2 + 0.5D - vpX), (float) (y2 + 0.5D - vpY), (float) (z2 + 0.5D - vpZ)).endVertex(); if (renderPathAsFrickinThingy) { - buffer.func_225582_a_(x2 + 0.5D - vpX, y2 + 0.53D - vpY, z2 + 0.5D - vpZ).endVertex(); - buffer.func_225582_a_(x1 + 0.5D - vpX, y1 + 0.53D - vpY, z1 + 0.5D - vpZ).endVertex(); - buffer.func_225582_a_(x1 + 0.5D - vpX, y1 + 0.5D - vpY, z1 + 0.5D - vpZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) (x2 + 0.5D - vpX), (float) (y2 + 0.53D - vpY), (float) (z2 + 0.5D - vpZ)).endVertex(); + buffer.func_227888_a_(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.53D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); + buffer.func_227888_a_(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.5D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); } } - public static void drawManySelectionBoxes(Entity player, Collection positions, Color color) { + public static void drawManySelectionBoxes(MatrixStack stack, Entity player, Collection positions, Color color) { IRenderer.startLines(color, settings.pathRenderLineWidthPixels.value, settings.renderSelectionBoxesIgnoreDepth.value); //BlockPos blockpos = movingObjectPositionIn.getBlockPos(); @@ -206,13 +210,13 @@ public final class PathRenderer implements IRenderer, Helper { VoxelShape shape = state.getShape(player.world, pos); AxisAlignedBB toDraw = shape.isEmpty() ? VoxelShapes.fullCube().getBoundingBox() : shape.getBoundingBox(); toDraw = toDraw.offset(pos); - IRenderer.drawAABB(toDraw, .002D); + IRenderer.drawAABB(stack, toDraw, .002D); }); IRenderer.endLines(settings.renderSelectionBoxesIgnoreDepth.value); } - public static void drawDankLitGoalBox(Entity player, Goal goal, float partialTicks, Color color) { + public static void drawDankLitGoalBox(MatrixStack stack, Entity player, Goal goal, float partialTicks, Color color) { double renderPosX = posX(); double renderPosY = posY(); double renderPosZ = posZ(); @@ -288,11 +292,11 @@ public final class PathRenderer implements IRenderer, Helper { maxY = 256 - renderPosY; } else if (goal instanceof GoalComposite) { for (Goal g : ((GoalComposite) goal).goals()) { - drawDankLitGoalBox(player, g, partialTicks, color); + drawDankLitGoalBox(stack, player, g, partialTicks, color); } return; } else if (goal instanceof GoalInverted) { - drawDankLitGoalBox(player, ((GoalInverted) goal).origin, partialTicks, settings.colorInvertedGoalBox.value); + drawDankLitGoalBox(stack, player, ((GoalInverted) goal).origin, partialTicks, settings.colorInvertedGoalBox.value); return; } else if (goal instanceof GoalYLevel) { GoalYLevel goalpos = (GoalYLevel) goal; @@ -310,31 +314,32 @@ public final class PathRenderer implements IRenderer, Helper { IRenderer.startLines(color, settings.goalRenderLineWidthPixels.value, settings.renderGoalIgnoreDepth.value); - renderHorizontalQuad(minX, maxX, minZ, maxZ, y1); - renderHorizontalQuad(minX, maxX, minZ, maxZ, y2); - + renderHorizontalQuad(stack, minX, maxX, minZ, maxZ, y1); + renderHorizontalQuad(stack, minX, maxX, minZ, maxZ, y2); + Matrix4f matrix4f = stack.func_227866_c_().func_227870_a_(); buffer.begin(GL_LINES, DefaultVertexFormats.POSITION); - buffer.func_225582_a_(minX, minY, minZ).endVertex(); - buffer.func_225582_a_(minX, maxY, minZ).endVertex(); - buffer.func_225582_a_(maxX, minY, minZ).endVertex(); - buffer.func_225582_a_(maxX, maxY, minZ).endVertex(); - buffer.func_225582_a_(maxX, minY, maxZ).endVertex(); - buffer.func_225582_a_(maxX, maxY, maxZ).endVertex(); - buffer.func_225582_a_(minX, minY, maxZ).endVertex(); - buffer.func_225582_a_(minX, maxY, maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) minX, (float) minY, (float) minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) minX, (float) maxY, (float) minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) maxX, (float) minY, (float) minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) maxX, (float) maxY, (float) minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) maxX, (float) minY, (float) maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) maxX, (float) maxY, (float) maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) minX, (float) minY, (float) maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) minX, (float) maxY, (float) maxZ).endVertex(); tessellator.draw(); IRenderer.endLines(settings.renderGoalIgnoreDepth.value); } - private static void renderHorizontalQuad(double minX, double maxX, double minZ, double maxZ, double y) { + private static void renderHorizontalQuad(MatrixStack stack, double minX, double maxX, double minZ, double maxZ, double y) { if (y != 0) { + Matrix4f matrix4f = stack.func_227866_c_().func_227870_a_(); buffer.begin(GL_LINE_LOOP, DefaultVertexFormats.POSITION); - buffer.func_225582_a_(minX, y, minZ).endVertex(); - buffer.func_225582_a_(maxX, y, minZ).endVertex(); - buffer.func_225582_a_(maxX, y, maxZ).endVertex(); - buffer.func_225582_a_(minX, y, maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) minX, (float) y, (float) minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) maxX, (float) y, (float) minZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) maxX, (float) y, (float) maxZ).endVertex(); + buffer.func_227888_a_(matrix4f, (float) minX, (float) y, (float) maxZ).endVertex(); tessellator.draw(); } }