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;
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() {
@@ -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);
}
}
@@ -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();
}
}
@@ -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<String, List<Runnable>> typeRunnableMap = new HashMap<>();
private boolean trackRender = false;
private Map<String, List<Consumer<MatrixStack>>> 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<MatrixStack> runnable) {
Objects.requireNonNull(type);
Objects.requireNonNull(runnable);
@@ -21,11 +24,11 @@ public class RenderQueue {
this.typeRunnableMap.put(type, new ArrayList<>());
}
List<Runnable> runnableList = this.typeRunnableMap.get(type);
List<Consumer<MatrixStack>> runnableList = this.typeRunnableMap.get(type);
runnableList.add(runnable);
}
public void remove(String type, Runnable runnable) {
public void remove(String type, Consumer<MatrixStack> runnable) {
Objects.requireNonNull(type);
Objects.requireNonNull(runnable);
@@ -33,17 +36,17 @@ public class RenderQueue {
return;
}
List<Runnable> runnableList = this.typeRunnableMap.get(type);
List<Consumer<MatrixStack>> 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));
}
}