diff --git a/src/main/java/kaptainwutax/seedcracker/finder/FinderQueue.java b/src/main/java/kaptainwutax/seedcracker/finder/FinderQueue.java index 882332a..fc47b63 100644 --- a/src/main/java/kaptainwutax/seedcracker/finder/FinderQueue.java +++ b/src/main/java/kaptainwutax/seedcracker/finder/FinderQueue.java @@ -1,6 +1,8 @@ package kaptainwutax.seedcracker.finder; import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.systems.RenderSystem; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.World; @@ -40,7 +42,11 @@ public class FinderQueue { }); } - public void renderFinders() { + public void renderFinders(MatrixStack matrixStack) { + RenderSystem.pushMatrix(); + RenderSystem.multMatrix(matrixStack.peek().getModel()); + + //System.out.println("rendering"); if(this.renderType == RenderType.OFF)return; GlStateManager.disableTexture(); @@ -56,11 +62,7 @@ public class FinderQueue { } }); - GlStateManager.enableTexture(); - - if(this.renderType == RenderType.XRAY) { - GlStateManager.enableDepthTest(); - } + RenderSystem.popMatrix(); } public void clear() { diff --git a/src/main/java/kaptainwutax/seedcracker/mixin/GameRendererMixin.java b/src/main/java/kaptainwutax/seedcracker/mixin/GameRendererMixin.java index 2345295..b79d43b 100644 --- a/src/main/java/kaptainwutax/seedcracker/mixin/GameRendererMixin.java +++ b/src/main/java/kaptainwutax/seedcracker/mixin/GameRendererMixin.java @@ -2,6 +2,7 @@ package kaptainwutax.seedcracker.mixin; import kaptainwutax.seedcracker.render.RenderQueue; import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -10,14 +11,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(GameRenderer.class) public abstract class GameRendererMixin { - @Inject(method = "renderCenter", at = @At("HEAD")) - private void renderCenterStart(float delta, long time, CallbackInfo ci) { - RenderQueue.get().setTrackRender(true); + @Inject(method = "renderWorld", at = @At("HEAD")) + private void renderWorldStart(float delta, long time, MatrixStack matrixStack, CallbackInfo ci) { + RenderQueue.get().setTrackRender(matrixStack); } - @Inject(method = "renderCenter", at = @At("TAIL")) - private void renderCenterFinish(float delta, long time, CallbackInfo ci) { - RenderQueue.get().setTrackRender(false); + @Inject(method = "renderWorld", at = @At("TAIL")) + private void renderWorldFinish(float delta, long time, MatrixStack matrixStack, CallbackInfo ci) { + RenderQueue.get().setTrackRender(null); } } diff --git a/src/main/java/kaptainwutax/seedcracker/render/Line.java b/src/main/java/kaptainwutax/seedcracker/render/Line.java index 2113892..06861f2 100644 --- a/src/main/java/kaptainwutax/seedcracker/render/Line.java +++ b/src/main/java/kaptainwutax/seedcracker/render/Line.java @@ -33,7 +33,7 @@ public class Line extends Renderer { Vec3d camPos = this.mc.gameRenderer.getCamera().getPos(); Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buffer = tessellator.getBufferBuilder(); + BufferBuilder buffer = tessellator.getBuffer(); //This is how thick the line is. GlStateManager.lineWidth(2.0f); @@ -48,18 +48,16 @@ public class Line extends Renderer { } protected void putVertex(BufferBuilder buffer, Vec3d camPos, Vec3d pos) { - for(int i = 0; i < 2; i++) { - buffer.vertex( - pos.getX() - camPos.x, - pos.getY() - camPos.y, - pos.getZ() - camPos.z - ).color( - this.color.getX(), - this.color.getY(), - this.color.getZ(), - this.color.getW() - ).next(); - } + buffer.vertex( + pos.getX() - camPos.x, + pos.getY() - camPos.y, + pos.getZ() - camPos.z + ).color( + this.color.getX(), + this.color.getY(), + this.color.getZ(), + this.color.getW() + ).next(); } } diff --git a/src/main/java/kaptainwutax/seedcracker/render/RenderQueue.java b/src/main/java/kaptainwutax/seedcracker/render/RenderQueue.java index 0029650..e993726 100644 --- a/src/main/java/kaptainwutax/seedcracker/render/RenderQueue.java +++ b/src/main/java/kaptainwutax/seedcracker/render/RenderQueue.java @@ -1,19 +1,22 @@ package kaptainwutax.seedcracker.render; +import net.minecraft.client.util.math.MatrixStack; + import java.util.*; +import java.util.function.Consumer; public class RenderQueue { private final static RenderQueue INSTANCE = new RenderQueue(); - private Map> typeRunnableMap = new HashMap<>(); - private boolean trackRender = false; + private Map>> typeRunnableMap = new HashMap<>(); + private MatrixStack matrixStack = null; public static RenderQueue get() { return INSTANCE; } - public void add(String type, Runnable runnable) { + public void add(String type, Consumer runnable) { Objects.requireNonNull(type); Objects.requireNonNull(runnable); @@ -21,11 +24,11 @@ public class RenderQueue { this.typeRunnableMap.put(type, new ArrayList<>()); } - List runnableList = this.typeRunnableMap.get(type); + List> runnableList = this.typeRunnableMap.get(type); runnableList.add(runnable); } - public void remove(String type, Runnable runnable) { + public void remove(String type, Consumer runnable) { Objects.requireNonNull(type); Objects.requireNonNull(runnable); @@ -33,17 +36,17 @@ public class RenderQueue { return; } - List runnableList = this.typeRunnableMap.get(type); + List> runnableList = this.typeRunnableMap.get(type); runnableList.remove(runnable); } - public void setTrackRender(boolean flag) { - this.trackRender = flag; + public void setTrackRender(MatrixStack matrixStack) { + this.matrixStack = matrixStack; } public void onRender(String type) { - if(!this.trackRender || !this.typeRunnableMap.containsKey(type))return; - this.typeRunnableMap.get(type).forEach(Runnable::run); + if(this.matrixStack == null || !this.typeRunnableMap.containsKey(type))return; + this.typeRunnableMap.get(type).forEach(r -> r.accept(this.matrixStack)); } }