Push various rendering attempts and limbo gen.

This commit is contained in:
Waterpicker 2020-04-29 22:01:27 -05:00
parent 0caa2980e3
commit e2a7928de9

View file

@ -20,7 +20,7 @@ import org.lwjgl.opengl.GL11;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class DetachedRiftBlockEntityRenderer extends BlockEntityRenderer<DetachedRiftBlockEntity> { public class DetachedRiftBlockEntityRenderer extends BlockEntityRenderer<DetachedRiftBlockEntity> {
private static final Identifier tesseract_path = new Identifier("dimdoors:textures/other/tesseract.png"); public static final Identifier tesseract_path = new Identifier("dimdoors:textures/other/tesseract.png");
private static final Tesseract tesseract = new Tesseract(); private static final Tesseract tesseract = new Tesseract();
private static final LSystem.PolygonInfo CURVE = LSystem.curves.get(0); private static final LSystem.PolygonInfo CURVE = LSystem.curves.get(0);
@ -33,56 +33,37 @@ public class DetachedRiftBlockEntityRenderer extends BlockEntityRenderer<Detache
@Override @Override
public void render(DetachedRiftBlockEntity rift, float tickDelta, MatrixStack matrices, VertexConsumerProvider vcs, int breakProgress, int alpha) { public void render(DetachedRiftBlockEntity rift, float tickDelta, MatrixStack matrices, VertexConsumerProvider vcs, int breakProgress, int alpha) {
if (ModConfig.GRAPHICS.showRiftCore) { if (ModConfig.GRAPHICS.showRiftCore) {
renderTesseract(vcs.getBuffer(RenderLayer.getTranslucent()), rift, tickDelta); renderTesseract(vcs.getBuffer(RenderLayer.getTranslucent()), rift, matrices, tickDelta);
} else { } else {
long timeLeft = showRiftCoreUntil - System.currentTimeMillis(); long timeLeft = showRiftCoreUntil - System.currentTimeMillis();
if (timeLeft >= 0) { if (timeLeft >= 0) {
renderTesseract(vcs.getBuffer(RenderLayer.getTranslucent()), rift, tickDelta); renderTesseract(vcs.getBuffer(RenderLayer.getTranslucent()), rift, matrices, tickDelta);
} }
} }
renderCrack(vcs.getBuffer(RenderLayer.getTranslucent()), rift); renderCrack(vcs.getBuffer(MyRenderLayer.CRACK), matrices, rift);
} }
private void renderCrack(VertexConsumer vc, DetachedRiftBlockEntity rift) { private void renderCrack(VertexConsumer vc, MatrixStack matricees, DetachedRiftBlockEntity rift) {
GL11.glPushMatrix(); matricees.push();
matricees.translate(0.5, 0.5, 0.5);
// Make the rift render on both sides, disable texture mapping and lighting
RenderSystem.disableLighting();
RenderSystem.disableCull();
RenderSystem.disableTexture();
RenderSystem.enableBlend();
RenderSystem.translated(0.5, 0.5, 0.5);
RiftCrackRenderer.drawCrack(vc, 0, CURVE, ModConfig.GRAPHICS.riftSize * rift.size, 0xF1234568L * rift.getPos().hashCode()); RiftCrackRenderer.drawCrack(vc, 0, CURVE, ModConfig.GRAPHICS.riftSize * rift.size, 0xF1234568L * rift.getPos().hashCode());
matricees.pop();
RenderSystem.disableBlend();
RenderSystem.enableTexture();
RenderSystem.enableCull();
RenderSystem.enableLighting();
GL11.glPopMatrix();
} }
private void renderTesseract(VertexConsumer vc, DetachedRiftBlockEntity rift, float tickDelta) { private void renderTesseract(VertexConsumer vc, DetachedRiftBlockEntity rift, MatrixStack matrices, float tickDelta) {
double radian = nextAngle(rift, tickDelta) * TrigMath.DEG_TO_RAD; double radian = nextAngle(rift, tickDelta) * TrigMath.DEG_TO_RAD;
float[] color = rift.getColor(); float[] color = rift.getColor();
if (color == null) color = new float[]{1, 0.5f, 1, 1}; if (color == null) color = new float[]{1, 0.5f, 1, 1};
RenderSystem.disableLighting(); matrices.push();
RenderSystem.pushMatrix();
RenderSystem.disableCull();
MinecraftClient.getInstance().getTextureManager().bindTexture(tesseract_path); matrices.translate(0.5, 0.5, 0.5);
matrices.scale(0.25f, 0.25f, 0.25f);
RenderSystem.translated(0.5, 0.5, 0.5);
RenderSystem.scaled(0.25, 0.25, 0.25);
tesseract.draw(vc, color, radian); tesseract.draw(vc, color, radian);
RenderSystem.enableCull(); matrices.pop();
RenderSystem.popMatrix();
RenderSystem.enableLighting();
} }
private double nextAngle(DetachedRiftBlockEntity rift, float partialTicks) { private double nextAngle(DetachedRiftBlockEntity rift, float partialTicks) {