updated rendering code to new render engine

This commit is contained in:
Unknown
2019-12-12 18:06:53 -05:00
parent 3743ccc7de
commit f484ab8fc9
4 changed files with 39 additions and 35 deletions
@@ -1,6 +1,8 @@
package kaptainwutax.seedcracker.finder; package kaptainwutax.seedcracker.finder;
import com.mojang.blaze3d.platform.GlStateManager; 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.util.math.ChunkPos;
import net.minecraft.world.World; 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; if(this.renderType == RenderType.OFF)return;
GlStateManager.disableTexture(); GlStateManager.disableTexture();
@@ -56,11 +62,7 @@ public class FinderQueue {
} }
}); });
GlStateManager.enableTexture(); RenderSystem.popMatrix();
if(this.renderType == RenderType.XRAY) {
GlStateManager.enableDepthTest();
}
} }
public void clear() { public void clear() {
@@ -2,6 +2,7 @@ package kaptainwutax.seedcracker.mixin;
import kaptainwutax.seedcracker.render.RenderQueue; import kaptainwutax.seedcracker.render.RenderQueue;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
@@ -10,14 +11,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(GameRenderer.class) @Mixin(GameRenderer.class)
public abstract class GameRendererMixin { public abstract class GameRendererMixin {
@Inject(method = "renderCenter", at = @At("HEAD")) @Inject(method = "renderWorld", at = @At("HEAD"))
private void renderCenterStart(float delta, long time, CallbackInfo ci) { private void renderWorldStart(float delta, long time, MatrixStack matrixStack, CallbackInfo ci) {
RenderQueue.get().setTrackRender(true); RenderQueue.get().setTrackRender(matrixStack);
} }
@Inject(method = "renderCenter", at = @At("TAIL")) @Inject(method = "renderWorld", at = @At("TAIL"))
private void renderCenterFinish(float delta, long time, CallbackInfo ci) { private void renderWorldFinish(float delta, long time, MatrixStack matrixStack, CallbackInfo ci) {
RenderQueue.get().setTrackRender(false); RenderQueue.get().setTrackRender(null);
} }
} }
@@ -33,7 +33,7 @@ public class Line extends Renderer {
Vec3d camPos = this.mc.gameRenderer.getCamera().getPos(); Vec3d camPos = this.mc.gameRenderer.getCamera().getPos();
Tessellator tessellator = Tessellator.getInstance(); Tessellator tessellator = Tessellator.getInstance();
BufferBuilder buffer = tessellator.getBufferBuilder(); BufferBuilder buffer = tessellator.getBuffer();
//This is how thick the line is. //This is how thick the line is.
GlStateManager.lineWidth(2.0f); GlStateManager.lineWidth(2.0f);
@@ -48,18 +48,16 @@ public class Line extends Renderer {
} }
protected void putVertex(BufferBuilder buffer, Vec3d camPos, Vec3d pos) { protected void putVertex(BufferBuilder buffer, Vec3d camPos, Vec3d pos) {
for(int i = 0; i < 2; i++) { buffer.vertex(
buffer.vertex( pos.getX() - camPos.x,
pos.getX() - camPos.x, pos.getY() - camPos.y,
pos.getY() - camPos.y, pos.getZ() - camPos.z
pos.getZ() - camPos.z ).color(
).color( this.color.getX(),
this.color.getX(), this.color.getY(),
this.color.getY(), this.color.getZ(),
this.color.getZ(), this.color.getW()
this.color.getW() ).next();
).next();
}
} }
} }
@@ -1,19 +1,22 @@
package kaptainwutax.seedcracker.render; package kaptainwutax.seedcracker.render;
import net.minecraft.client.util.math.MatrixStack;
import java.util.*; import java.util.*;
import java.util.function.Consumer;
public class RenderQueue { public class RenderQueue {
private final static RenderQueue INSTANCE = new RenderQueue(); private final static RenderQueue INSTANCE = new RenderQueue();
private Map<String, List<Runnable>> typeRunnableMap = new HashMap<>(); private Map<String, List<Consumer<MatrixStack>>> typeRunnableMap = new HashMap<>();
private boolean trackRender = false; private MatrixStack matrixStack = null;
public static RenderQueue get() { public static RenderQueue get() {
return INSTANCE; return INSTANCE;
} }
public void add(String type, Runnable runnable) { public void add(String type, Consumer<MatrixStack> runnable) {
Objects.requireNonNull(type); Objects.requireNonNull(type);
Objects.requireNonNull(runnable); Objects.requireNonNull(runnable);
@@ -21,11 +24,11 @@ public class RenderQueue {
this.typeRunnableMap.put(type, new ArrayList<>()); this.typeRunnableMap.put(type, new ArrayList<>());
} }
List<Runnable> runnableList = this.typeRunnableMap.get(type); List<Consumer<MatrixStack>> runnableList = this.typeRunnableMap.get(type);
runnableList.add(runnable); runnableList.add(runnable);
} }
public void remove(String type, Runnable runnable) { public void remove(String type, Consumer<MatrixStack> runnable) {
Objects.requireNonNull(type); Objects.requireNonNull(type);
Objects.requireNonNull(runnable); Objects.requireNonNull(runnable);
@@ -33,17 +36,17 @@ public class RenderQueue {
return; return;
} }
List<Runnable> runnableList = this.typeRunnableMap.get(type); List<Consumer<MatrixStack>> runnableList = this.typeRunnableMap.get(type);
runnableList.remove(runnable); runnableList.remove(runnable);
} }
public void setTrackRender(boolean flag) { public void setTrackRender(MatrixStack matrixStack) {
this.trackRender = flag; this.matrixStack = matrixStack;
} }
public void onRender(String type) { public void onRender(String type) {
if(!this.trackRender || !this.typeRunnableMap.containsKey(type))return; if(this.matrixStack == null || !this.typeRunnableMap.containsKey(type))return;
this.typeRunnableMap.get(type).forEach(Runnable::run); this.typeRunnableMap.get(type).forEach(r -> r.accept(this.matrixStack));
} }
} }