fixed shapes for 1.17 rendringo

This commit is contained in:
gnembon committed 2021-03-18 00:37:05 -03:00
1 parent 0b93101248
commit 7d135187b1
4 files changed
+56 -121

No files matched your search

+2 -2
View File
@@ -4,8 +4,8 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
# or better: https://modmuss50.me/fabric.html # or better: https://modmuss50.me/fabric.html
minecraft_version=21w10a minecraft_version=21w11a
yarn_mappings=21w10a+build.23 yarn_mappings=21w11a+build.2
loader_version=0.11.3 loader_version=0.11.3
fabric_version=0.32.2+1.17 fabric_version=0.32.2+1.17
@@ -2,10 +2,7 @@ package carpet.mixins;
import carpet.network.CarpetClient; import carpet.network.CarpetClient;
import carpet.script.utils.ShapesRenderer; import carpet.script.utils.ShapesRenderer;
import carpet.utils.FabricAPIHooks;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gl.ShaderEffect;
import net.minecraft.client.render.BufferBuilderStorage; import net.minecraft.client.render.BufferBuilderStorage;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
@@ -14,7 +11,6 @@ import net.minecraft.client.render.WorldRenderer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Matrix4f; import net.minecraft.util.math.Matrix4f;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
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;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -30,7 +26,9 @@ public class WorldRenderer_scarpetRenderMixin
@Inject(method = "render", at = @At( @Inject(method = "render", at = @At(
value = "INVOKE", value = "INVOKE",
target = "Lnet/minecraft/client/render/BufferBuilderStorage;getEffectVertexConsumers()Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;", shift = At.Shift.BEFORE target = "Lnet/minecraft/client/render/TexturedRenderLayers;getEntityTranslucentCull()Lnet/minecraft/client/render/RenderLayer;", shift = At.Shift.BEFORE
//target = "Lnet/minecraft/client/render/RenderLayer;getWaterMask()Lnet/minecraft/client/render/RenderLayer;", shift = At.Shift.AFTER
//target = "Lnet/minecraft/client/render/BufferBuilderStorage;getEffectVertexConsumers()Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;", shift = At.Shift.BEFORE
//target = "Lnet/minecraft/client/render/WorldRenderer;renderChunkDebugInfo(Lnet/minecraft/client/render/Camera;)V", shift = At.Shift.AFTER //target = "Lnet/minecraft/client/render/WorldRenderer;renderChunkDebugInfo(Lnet/minecraft/client/render/Camera;)V", shift = At.Shift.AFTER
//target = "Lnet/minecraft/client/render/BackgroundRenderer;method_23792()V", shift = At.Shift.AFTER //target = "Lnet/minecraft/client/render/BackgroundRenderer;method_23792()V", shift = At.Shift.AFTER
//target = "Lnet/minecraft/client/render/BufferBuilderStorage;getEntityVertexConsumers()Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;", shift = At.Shift.AFTER //target = "Lnet/minecraft/client/render/BufferBuilderStorage;getEntityVertexConsumers()Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;", shift = At.Shift.AFTER
@@ -40,13 +38,10 @@ public class WorldRenderer_scarpetRenderMixin
{ {
// in normal circumstances we want to render shapes at the very end so it appears correctly behind stuff. // in normal circumstances we want to render shapes at the very end so it appears correctly behind stuff.
// we might actually not need to play with render hooks here. // we might actually not need to play with render hooks here.
if (!FabricAPIHooks.WORLD_RENDER_EVENTS && CarpetClient.shapes != null ) //if (!FabricAPIHooks.WORLD_RENDER_EVENTS && CarpetClient.shapes != null )
if (CarpetClient.shapes != null)
{ {
matrices.push();
CarpetClient.shapes.render(matrices, camera, tickDelta); CarpetClient.shapes.render(matrices, camera, tickDelta);
matrices.pop();
RenderSystem.applyModelViewMatrix();
} }
} }
} }
@@ -7,19 +7,17 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.BufferBuilder;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.Tessellator;
import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.VertexFormat; import net.minecraft.client.render.VertexFormat;
import net.minecraft.client.render.debug.DebugRenderer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import net.minecraft.client.render.VertexFormats; import net.minecraft.client.render.VertexFormats;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag; import net.minecraft.nbt.ListTag;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Matrix4f;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3f; import net.minecraft.util.math.Vec3f;
import net.minecraft.util.registry.RegistryKey; import net.minecraft.util.registry.RegistryKey;
@@ -62,25 +60,19 @@ public class ShapesRenderer
long currentTime = client.world.getTime(); long currentTime = client.world.getTime();
RenderSystem.disableTexture(); RenderSystem.disableTexture();
RenderSystem.enableDepthTest(); RenderSystem.enableDepthTest();
RenderSystem.setShader(GameRenderer::method_34540);
RenderSystem.depthFunc(515); RenderSystem.depthFunc(515);
RenderSystem.enableBlend(); RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc(); RenderSystem.defaultBlendFunc();
// too bright
//RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE, GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ZERO); //RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE, GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ZERO);
//RenderSystem.shadeModel(7425); // meh
//////////RenderSystem.shadeModel(GL11.GL_FLAT); //RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA);
//////////RenderSystem.enableAlphaTest();
//GL11.glEnable(GL11.GL_ALPHA_TEST);
//////////RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f);
//GL11.glAlphaFunc(GL11.GL_GREATER, 0.003f);
RenderSystem.disableCull(); RenderSystem.disableCull();
//////////RenderSystem.disableLighting();
RenderSystem.depthMask(false); RenderSystem.depthMask(false);
// causes water to vanish
//RenderSystem.depthMask(true);
//RenderSystem.polygonOffset(-3f, -3f); //RenderSystem.polygonOffset(-3f, -3f);
//RenderSystem.enablePolygonOffset(); //RenderSystem.enablePolygonOffset();
//Entity entity = this.client.gameRenderer.getCamera().getFocusedEntity();
Tessellator tessellator = Tessellator.getInstance(); Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferBuilder = tessellator.getBuffer(); BufferBuilder bufferBuilder = tessellator.getBuffer();
@@ -94,52 +86,40 @@ public class ShapesRenderer
shapes.get(dimensionType).long2ObjectEntrySet().removeIf( shapes.get(dimensionType).long2ObjectEntrySet().removeIf(
entry -> entry.getValue().isExpired(currentTime) entry -> entry.getValue().isExpired(currentTime)
); );
MatrixStack matrixStack = RenderSystem.getModelViewStack();
matrices.push(); matrixStack.push();
matrices.method_34425(matrices.peek().getModel()); matrixStack.method_34425(matrices.peek().getModel());
RenderSystem.applyModelViewMatrix(); RenderSystem.applyModelViewMatrix();
shapes.get(dimensionType).values().forEach(
s ->
{
if (s.shouldRender(dimensionType))
s.renderFaces(tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
}
);
// lines // lines
shapes.get(dimensionType).values().forEach( RenderSystem.lineWidth(0.5F);
shapes.get(dimensionType).values().forEach( s -> {
s -> { if (s.shouldRender(dimensionType)) s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
if (s.shouldRender(dimensionType)) });
s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick); // faces
} RenderSystem.lineWidth(0.1F);
); shapes.get(dimensionType).values().forEach(s -> {
matrices.pop(); if (s.shouldRender(dimensionType)) s.renderFaces(tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
});
RenderSystem.lineWidth(1.0F);
matrixStack.pop();
RenderSystem.applyModelViewMatrix(); RenderSystem.applyModelViewMatrix();
}} }}
if (labels.size() != 0) { synchronized (labels) if (labels.size() != 0) { synchronized (labels)
{ {
labels.get(dimensionType).long2ObjectEntrySet().removeIf( labels.get(dimensionType).long2ObjectEntrySet().removeIf(
entry -> entry.getValue().isExpired(currentTime) entry -> entry.getValue().isExpired(currentTime)
); );
//texts labels.get(dimensionType).values().forEach(s -> {
// maybe we can move it laster to lines and makes sure we don't overpass and don't have blinky transparency problems if (s.shouldRender(dimensionType)) s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
labels.get(dimensionType).values().forEach( });
s ->
{
if (s.shouldRender(dimensionType))
s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
}
);
}} }}
RenderSystem.enableCull(); RenderSystem.enableCull();
RenderSystem.depthMask(true); RenderSystem.depthMask(true);
RenderSystem.lineWidth(1.0F);
RenderSystem.enableBlend(); RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc(); RenderSystem.defaultBlendFunc();
RenderSystem.enableTexture(); RenderSystem.enableTexture();
//////////////RenderSystem.shadeModel(7424);
} }
public void addShapes(ListTag tag) public void addShapes(ListTag tag)
@@ -197,15 +177,11 @@ public class ShapesRenderer
{ {
synchronized (shapes) synchronized (shapes)
{ {
shapes.values().forEach(el -> el.values().forEach(shape -> { shapes.values().forEach(el -> el.values().forEach(shape -> shape.expiryTick++));
shape.expiryTick++;
}));
} }
synchronized (labels) synchronized (labels)
{ {
labels.values().forEach(el -> el.values().forEach(shape -> { labels.values().forEach(el -> el.values().forEach(shape -> shape.expiryTick++));
shape.expiryTick++;
}));
} }
} }
@@ -238,8 +214,7 @@ public class ShapesRenderer
if (shape.followEntity <=0 ) return true; if (shape.followEntity <=0 ) return true;
if (client.world == null) return false; if (client.world == null) return false;
if (client.world.getRegistryKey() != dim) return false; if (client.world.getRegistryKey() != dim) return false;
if (client.world.getEntityById(shape.followEntity) == null) return false; return client.world.getEntityById(shape.followEntity) != null;
return true;
} }
public boolean stageDeux() public boolean stageDeux()
{ {
@@ -267,25 +242,16 @@ public class ShapesRenderer
Vec3d v1 = shape.relativiseRender(client.world, shape.pos, partialTick); Vec3d v1 = shape.relativiseRender(client.world, shape.pos, partialTick);
Camera camera1 = client.gameRenderer.getCamera(); Camera camera1 = client.gameRenderer.getCamera();
TextRenderer textRenderer = client.textRenderer; TextRenderer textRenderer = client.textRenderer;
double d = camera1.getPos().x;
double e = camera1.getPos().y;
double f = camera1.getPos().z;
if (shape.doublesided) if (shape.doublesided)
RenderSystem.disableCull(); RenderSystem.disableCull();
else else
RenderSystem.enableCull(); RenderSystem.enableCull();
//RenderSystem.pushMatrix();
matrices.push(); matrices.push();
//RenderSystem.translatef((float)(v1.x - d), (float)(v1.y - e), (float)(v1.z - f)); matrices.translate(v1.x - cx,v1.y - cy,v1.z - cz);
matrices.translate(v1.x - d,v1.y - e,v1.z - f);
//RenderSystem.normal3f(0.0F, 1.0F, 0.0F);
// not needed
if (shape.facing == null) if (shape.facing == null)
{ {
matrices.method_34425(new Matrix4f(camera1.getRotation())); //matrices.method_34425(new Matrix4f(camera1.getRotation()));
// or better matrices.multiply(camera1.getRotation()); matrices.multiply(camera1.getRotation());
//RenderSystem.multMatrix(new Matrix4f(camera1.getRotation()));
} }
else else
{ {
@@ -295,23 +261,18 @@ public class ShapesRenderer
break; break;
case SOUTH: case SOUTH:
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180)); matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180));
//RenderSystem.rotatef(180.0f, 0.0f, 1.0f, 0.0f);
break; break;
case EAST: case EAST:
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(270)); matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(270));
//RenderSystem.rotatef(270.0f, 0.0f, 1.0f, 0.0f);
break; break;
case WEST: case WEST:
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(90)); matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(90));
//RenderSystem.rotatef(90.0f, 0.0f, 1.0f, 0.0f);
break; break;
case UP: case UP:
matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(90)); matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(90));
//RenderSystem.rotatef(90.0f, 1.0f, 0.0f, 0.0f);
break; break;
case DOWN: case DOWN:
matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(-90)); matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(-90));
//RenderSystem.rotatef(-90.0f, 1.0f, 0.0f, 0.0f);
break; break;
} }
} }
@@ -320,14 +281,11 @@ public class ShapesRenderer
if (shape.tilt!=0.0f) if (shape.tilt!=0.0f)
{ {
matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(shape.tilt)); matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(shape.tilt));
//RenderSystem.rotatef(shape.tilt, 0.0f, 0.0f, 1.0f);
} }
matrices.translate(-10*shape.indent, -10*shape.height-9, (-10*renderEpsilon)-10*shape.raise); matrices.translate(-10*shape.indent, -10*shape.height-9, (-10*renderEpsilon)-10*shape.raise);
//RenderSystem.translatef(-10*shape.indent, -10*shape.height-9, (float) (-10*renderEpsilon)-10*shape.raise);
//if (visibleThroughWalls) RenderSystem.disableDepthTest(); //if (visibleThroughWalls) RenderSystem.disableDepthTest();
//RenderSystem.scalef(-1.0F, 1.0F, 1.0F);
matrices.scale(-1, 1, 1); matrices.scale(-1, 1, 1);
//RenderSystem.applyModelViewMatrix(); // passed matrix directly to textRenderer.draw //RenderSystem.applyModelViewMatrix(); // passed matrix directly to textRenderer.draw, not AffineTransformation.identity().getMatrix(),
float text_x = 0; float text_x = 0;
if (shape.align == 0) if (shape.align == 0)
@@ -338,20 +296,11 @@ public class ShapesRenderer
{ {
text_x = (float)(-textRenderer.getWidth(shape.value.getString())); text_x = (float)(-textRenderer.getWidth(shape.value.getString()));
} }
VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(Tessellator.getInstance().getBuffer()); VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(builder);
textRenderer.draw(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.peek().getModel(), /*AffineTransformation.identity().getMatrix(),*/ immediate, false, shape.textbck, 15728880); textRenderer.draw(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.peek().getModel(), immediate, false, shape.textbck, 15728880);
//textRenderer.draw(shape.value, text_x, 0.0F, shape.textcolor, false, AffineTransformation.identity().getMatrix(), immediate, false, shape.textbck, 15728880);
immediate.draw(); immediate.draw();
matrices.pop(); matrices.pop();
RenderSystem.applyModelViewMatrix();
//RenderSystem.popMatrix();
RenderSystem.enableCull(); RenderSystem.enableCull();
//RenderSystem.enableDepthTest();
//RenderSystem.depthFunc(515);
//RenderSystem.enableAlphaTest();
//RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f);
} }
@Override @Override
@@ -389,8 +338,6 @@ public class ShapesRenderer
if (shape.a == 0.0) return; if (shape.a == 0.0) return;
Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick); Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick);
Vec3d v2 = shape.relativiseRender(client.world, shape.to, partialTick); Vec3d v2 = shape.relativiseRender(client.world, shape.to, partialTick);
RenderSystem.lineWidth(shape.lineWidth);
//DebugRenderer.drawBox(new Box(v1.x, v1.y, v1.z, v2.x, v2.y, v2.z), 0.5f, 0.5f, 0.5f, 0.5f);//shape.r, shape.g, shape.b, shape.a);
drawBoxWireGLLines(tessellator, bufferBuilder, drawBoxWireGLLines(tessellator, bufferBuilder,
(float)(v1.x-cx-renderEpsilon), (float)(v1.y-cy-renderEpsilon), (float)(v1.z-cz-renderEpsilon), (float)(v1.x-cx-renderEpsilon), (float)(v1.y-cy-renderEpsilon), (float)(v1.z-cz-renderEpsilon),
(float)(v2.x-cx+renderEpsilon), (float)(v2.y-cy+renderEpsilon), (float)(v2.z-cz+renderEpsilon), (float)(v2.x-cx+renderEpsilon), (float)(v2.y-cy+renderEpsilon), (float)(v2.z-cz+renderEpsilon),
@@ -404,7 +351,8 @@ public class ShapesRenderer
if (shape.fa == 0.0) return; if (shape.fa == 0.0) return;
Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick); Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick);
Vec3d v2 = shape.relativiseRender(client.world, shape.to, partialTick); Vec3d v2 = shape.relativiseRender(client.world, shape.to, partialTick);
RenderSystem.lineWidth(1.0F); // consider using built-ins
//DebugRenderer.drawBox(new Box(v1.x, v1.y, v1.z, v2.x, v2.y, v2.z), 0.5f, 0.5f, 0.5f, 0.5f);//shape.r, shape.g, shape.b, shape.a);
drawBoxFaces(tessellator, bufferBuilder, drawBoxFaces(tessellator, bufferBuilder,
(float)(v1.x-cx-renderEpsilon), (float)(v1.y-cy-renderEpsilon), (float)(v1.z-cz-renderEpsilon), (float)(v1.x-cx-renderEpsilon), (float)(v1.y-cy-renderEpsilon), (float)(v1.z-cz-renderEpsilon),
(float)(v2.x-cx+renderEpsilon), (float)(v2.y-cy+renderEpsilon), (float)(v2.z-cz+renderEpsilon), (float)(v2.x-cx+renderEpsilon), (float)(v2.y-cy+renderEpsilon), (float)(v2.z-cz+renderEpsilon),
@@ -426,7 +374,6 @@ public class ShapesRenderer
{ {
Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick); Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick);
Vec3d v2 = shape.relativiseRender(client.world, shape.to, partialTick); Vec3d v2 = shape.relativiseRender(client.world, shape.to, partialTick);
RenderSystem.lineWidth(shape.lineWidth);
drawLine(tessellator, bufferBuilder, drawLine(tessellator, bufferBuilder,
(float)(v1.x-cx-renderEpsilon), (float)(v1.y-cy-renderEpsilon), (float)(v1.z-cz-renderEpsilon), (float)(v1.x-cx-renderEpsilon), (float)(v1.y-cy-renderEpsilon), (float)(v1.z-cz-renderEpsilon),
(float)(v2.x-cx+renderEpsilon), (float)(v2.y-cy+renderEpsilon), (float)(v2.z-cz+renderEpsilon), (float)(v2.x-cx+renderEpsilon), (float)(v2.y-cy+renderEpsilon), (float)(v2.z-cz+renderEpsilon),
@@ -446,7 +393,6 @@ public class ShapesRenderer
{ {
if (shape.a == 0.0) return; if (shape.a == 0.0) return;
Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick); Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick);
RenderSystem.lineWidth(shape.lineWidth);
drawSphereWireframe(tessellator, bufferBuilder, drawSphereWireframe(tessellator, bufferBuilder,
(float)(vc.x-cx), (float)(vc.y-cy), (float)(vc.z-cz), (float)(vc.x-cx), (float)(vc.y-cy), (float)(vc.z-cz),
(float)(shape.radius+renderEpsilon), shape.subdivisions, (float)(shape.radius+renderEpsilon), shape.subdivisions,
@@ -457,7 +403,6 @@ public class ShapesRenderer
{ {
if (shape.fa == 0.0) return; if (shape.fa == 0.0) return;
Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick); Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick);
RenderSystem.lineWidth(1.0f);
drawSphereFaces(tessellator, bufferBuilder, drawSphereFaces(tessellator, bufferBuilder,
(float)(vc.x-cx), (float)(vc.y-cy), (float)(vc.z-cz), (float)(vc.x-cx), (float)(vc.y-cy), (float)(vc.z-cz),
(float)(shape.radius+renderEpsilon), shape.subdivisions, (float)(shape.radius+renderEpsilon), shape.subdivisions,
@@ -476,7 +421,6 @@ public class ShapesRenderer
{ {
if (shape.a == 0.0) return; if (shape.a == 0.0) return;
Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick); Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick);
RenderSystem.lineWidth(shape.lineWidth);
double dir = MathHelper.sign(shape.height); double dir = MathHelper.sign(shape.height);
drawCylinderWireframe(tessellator, bufferBuilder, drawCylinderWireframe(tessellator, bufferBuilder,
(float) (vc.x - cx - dir * renderEpsilon), (float) (vc.y - cy - dir * renderEpsilon), (float) (vc.z - cz - dir * renderEpsilon), (float) (vc.x - cx - dir * renderEpsilon), (float) (vc.y - cy - dir * renderEpsilon), (float) (vc.z - cz - dir * renderEpsilon),
@@ -490,7 +434,6 @@ public class ShapesRenderer
{ {
if (shape.fa == 0.0) return; if (shape.fa == 0.0) return;
Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick); Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick);
RenderSystem.lineWidth(1.0f);
double dir = MathHelper.sign(shape.height); double dir = MathHelper.sign(shape.height);
drawCylinderFaces(tessellator, bufferBuilder, drawCylinderFaces(tessellator, bufferBuilder,
(float) (vc.x - cx - dir * renderEpsilon), (float) (vc.y - cy - dir * renderEpsilon), (float) (vc.z - cz - dir * renderEpsilon), (float) (vc.x - cx - dir * renderEpsilon), (float) (vc.y - cy - dir * renderEpsilon), (float) (vc.z - cz - dir * renderEpsilon),
@@ -503,7 +446,7 @@ public class ShapesRenderer
// some raw shit // some raw shit
public static void drawLine(Tessellator tessellator, BufferBuilder builder, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha) { public static void drawLine(Tessellator tessellator, BufferBuilder builder, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha) {
builder.begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR); builder.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR);
builder.vertex(x1, y1, z1).color(red1, grn1, blu1, alpha).next(); builder.vertex(x1, y1, z1).color(red1, grn1, blu1, alpha).next();
builder.vertex(x2, y2, z2).color(red1, grn1, blu1, alpha).next(); builder.vertex(x2, y2, z2).color(red1, grn1, blu1, alpha).next();
tessellator.draw(); tessellator.draw();
@@ -516,7 +459,7 @@ public class ShapesRenderer
boolean xthick, boolean ythick, boolean zthick, boolean xthick, boolean ythick, boolean zthick,
float red1, float grn1, float blu1, float alpha, float red2, float grn2, float blu2) float red1, float grn1, float blu1, float alpha, float red2, float grn2, float blu2)
{ {
builder.begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR); builder.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR);
if (xthick) if (xthick)
{ {
builder.vertex(x1, y1, z1).color(red1, grn2, blu2, alpha).next(); builder.vertex(x1, y1, z1).color(red1, grn2, blu2, alpha).next();
@@ -644,7 +587,7 @@ public class ShapesRenderer
for (int dh = 0; dh < hsteps; dh++) for (int dh = 0; dh < hsteps; dh++)
{ {
float hh = dh*hstep; float hh = dh*hstep;
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip
for (int i = 0; i <= num_steps360+1; i++) for (int i = 0; i <= num_steps360+1; i++)
{ {
float theta = step * i; float theta = step * i;
@@ -660,7 +603,7 @@ public class ShapesRenderer
{ {
for (int i = 0; i <= num_steps180; i++) for (int i = 0; i <= num_steps180; i++)
{ {
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip
float theta = step * i; float theta = step * i;
float x = r * MathHelper.cos(theta); float x = r * MathHelper.cos(theta);
@@ -676,7 +619,7 @@ public class ShapesRenderer
} }
else else
{ {
builder.begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR); builder.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR);
for (int i = 0; i <= num_steps180; i++) for (int i = 0; i <= num_steps180; i++)
{ {
float theta = step * i; float theta = step * i;
@@ -694,7 +637,7 @@ public class ShapesRenderer
for (int dh = 0; dh < hsteps; dh++) for (int dh = 0; dh < hsteps; dh++)
{ {
float hh = dh * hstep; float hh = dh * hstep;
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip
for (int i = 0; i <= num_steps360; i++) for (int i = 0; i <= num_steps360; i++)
{ {
float theta = step * i; float theta = step * i;
@@ -710,7 +653,7 @@ public class ShapesRenderer
{ {
for (int i = 0; i <= num_steps180; i++) for (int i = 0; i <= num_steps180; i++)
{ {
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip
float theta = step * i; float theta = step * i;
float y = r * MathHelper.cos(theta); float y = r * MathHelper.cos(theta);
@@ -725,7 +668,7 @@ public class ShapesRenderer
} }
else else
{ {
builder.begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR); builder.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR);
for (int i = 0; i <= num_steps180; i++) for (int i = 0; i <= num_steps180; i++)
{ {
float theta = step * i; float theta = step * i;
@@ -742,7 +685,7 @@ public class ShapesRenderer
for (int dh = 0; dh < hsteps; dh++) for (int dh = 0; dh < hsteps; dh++)
{ {
float hh = dh * hstep; float hh = dh * hstep;
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip
for (int i = 0; i <= num_steps360; i++) for (int i = 0; i <= num_steps360; i++)
{ {
float theta = step * i; float theta = step * i;
@@ -757,7 +700,7 @@ public class ShapesRenderer
{ {
for (int i = 0; i <= num_steps180; i++) for (int i = 0; i <= num_steps180; i++)
{ {
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip
float theta = step * i; float theta = step * i;
float x = r * MathHelper.cos(theta); float x = r * MathHelper.cos(theta);
@@ -772,7 +715,7 @@ public class ShapesRenderer
} }
else else
{ {
builder.begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR); builder.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR);
for (int i = 0; i <= num_steps180; i++) for (int i = 0; i <= num_steps180; i++)
{ {
float theta = step * i; float theta = step * i;
@@ -939,7 +882,7 @@ public class ShapesRenderer
int num_steps360 = (int)(2*Math.PI / step)+1; int num_steps360 = (int)(2*Math.PI / step)+1;
for (int i = 0; i <= num_steps360; i++) for (int i = 0; i <= num_steps360; i++)
{ {
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR);
float theta = step * i ; float theta = step * i ;
for (int j = 0; j <= num_steps180; j++) for (int j = 0; j <= num_steps180; j++)
{ {
@@ -953,7 +896,7 @@ public class ShapesRenderer
} }
for (int j = 0; j <= num_steps180; j++) for (int j = 0; j <= num_steps180; j++)
{ {
builder.begin(VertexFormat.DrawMode.LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip builder.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR); // line loop to line strip
float phi = step * j ; float phi = step * j ;
for (int i = 0; i <= num_steps360; i++) for (int i = 0; i <= num_steps360; i++)
@@ -18,11 +18,8 @@ public class FabricAPIHooks {
public static void initialize() { public static void initialize() {
if (WORLD_RENDER_EVENTS) { if (WORLD_RENDER_EVENTS) {
WorldRenderEvents.BEFORE_DEBUG_RENDER.register(context -> { WorldRenderEvents.BEFORE_DEBUG_RENDER.register(context -> {
if (CarpetClient.shapes != null) { if (false) {//(CarpetClient.shapes != null) { // likely won't need it.
context.matrixStack().push();
CarpetClient.shapes.render(context.matrixStack(), context.camera(), context.tickDelta()); CarpetClient.shapes.render(context.matrixStack(), context.camera(), context.tickDelta());
context.matrixStack().pop();
RenderSystem.applyModelViewMatrix();
} }
}); });
} }