updated rendering code to new render engine
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user