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