rework on shapes. Labels are showing up, but lines don't.
This commit is contained in:
1 parent
e19ae0ef0f
commit
1bd6dcbf12
6 files changed
+89
-63
No files matched your search
+3
-3
@@ -5,9 +5,9 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
# 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=21w10a
|
||||||
yarn_mappings=21w10a+build.1
|
yarn_mappings=21w10a+build.15
|
||||||
loader_version=0.11.2
|
loader_version=0.11.3
|
||||||
fabric_version=0.32.1+1.17
|
fabric_version=0.32.2+1.17
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.4.29
|
mod_version = 1.4.29
|
||||||
|
|||||||
@@ -468,7 +468,7 @@ public class ScriptCommand
|
|||||||
{
|
{
|
||||||
ServerCommandSource source = context.getSource();
|
ServerCommandSource source = context.getSource();
|
||||||
CarpetScriptHost host = getHost(context);
|
CarpetScriptHost host = getHost(context);
|
||||||
BlockBox area = BlockBox.method_34390(a, b);
|
BlockBox area = BlockBox.create(a, b);
|
||||||
CarpetExpression cexpr = new CarpetExpression(host.main, expr, source, origin);
|
CarpetExpression cexpr = new CarpetExpression(host.main, expr, source, origin);
|
||||||
int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ();
|
int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ();
|
||||||
if (int_1 > CarpetSettings.fillLimit)
|
if (int_1 > CarpetSettings.fillLimit)
|
||||||
@@ -517,7 +517,7 @@ public class ScriptCommand
|
|||||||
{
|
{
|
||||||
ServerCommandSource source = context.getSource();
|
ServerCommandSource source = context.getSource();
|
||||||
CarpetScriptHost host = getHost(context);
|
CarpetScriptHost host = getHost(context);
|
||||||
BlockBox area = BlockBox.method_34390(a, b); // create
|
BlockBox area = BlockBox.create(a, b);
|
||||||
CarpetExpression cexpr = new CarpetExpression(host.main, expr, source, origin);
|
CarpetExpression cexpr = new CarpetExpression(host.main, expr, source, origin);
|
||||||
int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ();
|
int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ();
|
||||||
if (int_1 > CarpetSettings.fillLimit)
|
if (int_1 > CarpetSettings.fillLimit)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public abstract class PistonBlockEntity_playerHandlingMixin
|
|||||||
|
|
||||||
@Shadow public abstract Direction getMovementDirection();
|
@Shadow public abstract Direction getMovementDirection();
|
||||||
|
|
||||||
@Inject(method = "method_23672", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "moveEntity", at = @At("HEAD"), cancellable = true)
|
||||||
private static void dontPushSpectators(Direction direction, Entity entity, double d, Direction direction2, CallbackInfo ci)
|
private static void dontPushSpectators(Direction direction, Entity entity, double d, Direction direction2, CallbackInfo ci)
|
||||||
{
|
{
|
||||||
if (CarpetSettings.creativeNoClip && entity instanceof PlayerEntity && (((PlayerEntity) entity).isCreative()) && ((PlayerEntity) entity).getAbilities().flying) ci.cancel();
|
if (CarpetSettings.creativeNoClip && entity instanceof PlayerEntity && (((PlayerEntity) entity).isCreative()) && ((PlayerEntity) entity).getAbilities().flying) ci.cancel();
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
@Mixin(WorldRenderer.class)
|
@Mixin(WorldRenderer.class)
|
||||||
public class WorldRenderer_scarpetRenderMixin
|
public class WorldRenderer_scarpetRenderMixin
|
||||||
{
|
{
|
||||||
@Shadow private /*@Nullable*/ ShaderEffect transparencyShader;
|
|
||||||
|
|
||||||
@Inject(method = "<init>", at = @At("RETURN"))
|
@Inject(method = "<init>", at = @At("RETURN"))
|
||||||
private void addRenderers(MinecraftClient client, BufferBuilderStorage bufferBuilders, CallbackInfo ci)
|
private void addRenderers(MinecraftClient client, BufferBuilderStorage bufferBuilders, CallbackInfo ci)
|
||||||
{
|
{
|
||||||
@@ -32,37 +30,23 @@ public class WorldRenderer_scarpetRenderMixin
|
|||||||
|
|
||||||
@Inject(method = "render", at = @At(
|
@Inject(method = "render", at = @At(
|
||||||
value = "INVOKE",
|
value = "INVOKE",
|
||||||
target = "Lnet/minecraft/client/render/WorldRenderer;renderChunkDebugInfo(Lnet/minecraft/client/render/Camera;)V",
|
target = "Lnet/minecraft/client/render/BufferBuilderStorage;getEffectVertexConsumers()Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;", shift = At.Shift.BEFORE
|
||||||
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/BufferBuilderStorage;getEntityVertexConsumers()Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;", shift = At.Shift.AFTER
|
||||||
|
//target = "Lnet/minecraft/client/render/WorldRenderer;renderChunkDebugInfo(Lnet/minecraft/client/render/Camera;)V", shift = At.Shift.AFTER // before return
|
||||||
))
|
))
|
||||||
private void renderScarpetThings(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f matrix4f, CallbackInfo ci)
|
private void renderScarpetThings(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f matrix4f, CallbackInfo ci)
|
||||||
{
|
{
|
||||||
// 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.
|
||||||
if (!FabricAPIHooks.WORLD_RENDER_EVENTS && CarpetClient.shapes != null && transparencyShader == null)
|
// we might actually not need to play with render hooks here.
|
||||||
|
if (!FabricAPIHooks.WORLD_RENDER_EVENTS && CarpetClient.shapes != null )
|
||||||
{
|
{
|
||||||
matrices.push();
|
matrices.push();
|
||||||
//RenderSystem.pushMatrix(); ??
|
|
||||||
CarpetClient.shapes.render(matrices, camera, tickDelta);
|
CarpetClient.shapes.render(matrices, camera, tickDelta);
|
||||||
//RenderSystem.popMatrix(); ??
|
|
||||||
matrices.pop();
|
matrices.pop();
|
||||||
}
|
RenderSystem.applyModelViewMatrix();
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "render", at = @At(
|
|
||||||
value = "INVOKE",
|
|
||||||
target = "Lnet/minecraft/client/render/debug/DebugRenderer;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;DDD)V",
|
|
||||||
shift = At.Shift.AFTER
|
|
||||||
))
|
|
||||||
private void renderScarpetThingsFabulously(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f matrix4f, CallbackInfo ci)
|
|
||||||
{
|
|
||||||
// with fabulous graphics - stuff doesn't work this way for some reason - need to render with chunk lines.
|
|
||||||
if (!FabricAPIHooks.WORLD_RENDER_EVENTS && CarpetClient.shapes != null && transparencyShader != null)
|
|
||||||
{
|
|
||||||
matrices.push();
|
|
||||||
//RenderSystem.pushMatrix();
|
|
||||||
CarpetClient.shapes.render(matrices, camera, tickDelta);
|
|
||||||
//RenderSystem.popMatrix();
|
|
||||||
matrices.pop();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,19 +10,20 @@ import net.minecraft.client.render.Camera;
|
|||||||
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.util.math.AffineTransformation;
|
|
||||||
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.Matrix4f;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
import net.minecraft.util.math.Vec3f;
|
||||||
import net.minecraft.util.registry.RegistryKey;
|
import net.minecraft.util.registry.RegistryKey;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import org.lwjgl.opengl.GL11;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -31,6 +32,7 @@ import java.util.function.BiFunction;
|
|||||||
public class ShapesRenderer
|
public class ShapesRenderer
|
||||||
{
|
{
|
||||||
private final Map<RegistryKey<World>, Long2ObjectOpenHashMap<RenderedShape<? extends ShapeDispatcher.ExpiringShape>>> shapes;
|
private final Map<RegistryKey<World>, Long2ObjectOpenHashMap<RenderedShape<? extends ShapeDispatcher.ExpiringShape>>> shapes;
|
||||||
|
private final Map<RegistryKey<World>, Long2ObjectOpenHashMap<RenderedShape<? extends ShapeDispatcher.ExpiringShape>>> labels;
|
||||||
private MinecraftClient client;
|
private MinecraftClient client;
|
||||||
|
|
||||||
private Map<String, BiFunction<MinecraftClient, ShapeDispatcher.ExpiringShape, RenderedShape<? extends ShapeDispatcher.ExpiringShape >>> renderedShapes
|
private Map<String, BiFunction<MinecraftClient, ShapeDispatcher.ExpiringShape, RenderedShape<? extends ShapeDispatcher.ExpiringShape >>> renderedShapes
|
||||||
@@ -47,6 +49,7 @@ public class ShapesRenderer
|
|||||||
{
|
{
|
||||||
this.client = minecraftClient;
|
this.client = minecraftClient;
|
||||||
shapes = new HashMap<>();
|
shapes = new HashMap<>();
|
||||||
|
labels = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void render(MatrixStack matrices, Camera camera, float partialTick)
|
public void render(MatrixStack matrices, Camera camera, float partialTick)
|
||||||
@@ -54,18 +57,22 @@ public class ShapesRenderer
|
|||||||
//Camera camera = this.client.gameRenderer.getCamera();
|
//Camera camera = this.client.gameRenderer.getCamera();
|
||||||
ClientWorld iWorld = this.client.world;
|
ClientWorld iWorld = this.client.world;
|
||||||
RegistryKey<World> dimensionType = iWorld.getRegistryKey();
|
RegistryKey<World> dimensionType = iWorld.getRegistryKey();
|
||||||
if (shapes.get(dimensionType) == null || shapes.get(dimensionType).isEmpty()) return;
|
if ((shapes.get(dimensionType) == null || shapes.get(dimensionType).isEmpty()) &&
|
||||||
|
(labels.get(dimensionType) == null || labels.get(dimensionType).isEmpty())) return;
|
||||||
long currentTime = client.world.getTime();
|
long currentTime = client.world.getTime();
|
||||||
RenderSystem.disableTexture();
|
RenderSystem.disableTexture();
|
||||||
RenderSystem.enableDepthTest();
|
RenderSystem.enableDepthTest();
|
||||||
RenderSystem.depthFunc(515);
|
RenderSystem.depthFunc(515);
|
||||||
RenderSystem.enableBlend();
|
RenderSystem.enableBlend();
|
||||||
RenderSystem.defaultBlendFunc();
|
RenderSystem.defaultBlendFunc();
|
||||||
|
|
||||||
//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);
|
//RenderSystem.shadeModel(7425);
|
||||||
//////////RenderSystem.shadeModel(GL11.GL_FLAT);
|
//////////RenderSystem.shadeModel(GL11.GL_FLAT);
|
||||||
//////////RenderSystem.enableAlphaTest();
|
//////////RenderSystem.enableAlphaTest();
|
||||||
|
//GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||||
//////////RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f);
|
//////////RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f);
|
||||||
|
//GL11.glAlphaFunc(GL11.GL_GREATER, 0.003f);
|
||||||
RenderSystem.disableCull();
|
RenderSystem.disableCull();
|
||||||
//////////RenderSystem.disableLighting();
|
//////////RenderSystem.disableLighting();
|
||||||
RenderSystem.depthMask(false);
|
RenderSystem.depthMask(false);
|
||||||
@@ -83,16 +90,19 @@ public class ShapesRenderer
|
|||||||
double cameraY = camera.getPos().y;
|
double cameraY = camera.getPos().y;
|
||||||
double cameraZ = camera.getPos().z;
|
double cameraZ = camera.getPos().z;
|
||||||
|
|
||||||
synchronized (shapes)
|
if (shapes.size() != 0) { synchronized (shapes) {
|
||||||
{
|
|
||||||
shapes.get(dimensionType).long2ObjectEntrySet().removeIf(
|
shapes.get(dimensionType).long2ObjectEntrySet().removeIf(
|
||||||
entry -> entry.getValue().isExpired(currentTime)
|
entry -> entry.getValue().isExpired(currentTime)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
matrices.push();
|
||||||
|
matrices.method_34425(matrices.peek().getModel());
|
||||||
|
RenderSystem.applyModelViewMatrix();
|
||||||
|
|
||||||
shapes.get(dimensionType).values().forEach(
|
shapes.get(dimensionType).values().forEach(
|
||||||
s ->
|
s ->
|
||||||
{
|
{
|
||||||
if ( !s.lastCall() && s.shouldRender(dimensionType))
|
if (s.shouldRender(dimensionType))
|
||||||
s.renderFaces(tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
|
s.renderFaces(tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -100,21 +110,29 @@ public class ShapesRenderer
|
|||||||
shapes.get(dimensionType).values().forEach(
|
shapes.get(dimensionType).values().forEach(
|
||||||
|
|
||||||
s -> {
|
s -> {
|
||||||
if ( !s.lastCall() && s.shouldRender(dimensionType))
|
if (s.shouldRender(dimensionType))
|
||||||
s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
|
s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
matrices.pop();
|
||||||
|
RenderSystem.applyModelViewMatrix();
|
||||||
|
}}
|
||||||
|
if (labels.size() != 0) { synchronized (labels)
|
||||||
|
{
|
||||||
|
labels.get(dimensionType).long2ObjectEntrySet().removeIf(
|
||||||
|
entry -> entry.getValue().isExpired(currentTime)
|
||||||
|
);
|
||||||
//texts
|
//texts
|
||||||
// maybe we can move it laster to lines and makes sure we don't overpass and don't have blinky transparency problems
|
// maybe we can move it laster to lines and makes sure we don't overpass and don't have blinky transparency problems
|
||||||
shapes.get(dimensionType).values().forEach(
|
labels.get(dimensionType).values().forEach(
|
||||||
s ->
|
s ->
|
||||||
{
|
{
|
||||||
if ( s.lastCall() && s.shouldRender(dimensionType))
|
if (s.shouldRender(dimensionType))
|
||||||
s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
|
s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}}
|
||||||
RenderSystem.enableCull();
|
RenderSystem.enableCull();
|
||||||
RenderSystem.depthMask(true);
|
RenderSystem.depthMask(true);
|
||||||
RenderSystem.lineWidth(1.0F);
|
RenderSystem.lineWidth(1.0F);
|
||||||
@@ -147,16 +165,18 @@ public class ShapesRenderer
|
|||||||
RenderedShape<?> rshape = shapeFactory.apply(client, shape);
|
RenderedShape<?> rshape = shapeFactory.apply(client, shape);
|
||||||
RegistryKey<World> dim = shape.shapeDimension;
|
RegistryKey<World> dim = shape.shapeDimension;
|
||||||
long key = rshape.key();
|
long key = rshape.key();
|
||||||
synchronized (shapes)
|
Map<RegistryKey<World>, Long2ObjectOpenHashMap<RenderedShape<? extends ShapeDispatcher.ExpiringShape>>> container =
|
||||||
|
rshape.stageDeux()?labels:shapes;
|
||||||
|
synchronized (container)
|
||||||
{
|
{
|
||||||
RenderedShape<?> existing = shapes.computeIfAbsent(dim, d -> new Long2ObjectOpenHashMap<>()).get(key);
|
RenderedShape<?> existing = container.computeIfAbsent(dim, d -> new Long2ObjectOpenHashMap<>()).get(key);
|
||||||
if (existing != null)
|
if (existing != null)
|
||||||
{ // promoting previous shape
|
{ // promoting previous shape
|
||||||
existing.promoteWith(rshape);
|
existing.promoteWith(rshape);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
shapes.get(dim).put(key, rshape);
|
container.get(dim).put(key, rshape);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -167,6 +187,10 @@ public class ShapesRenderer
|
|||||||
{
|
{
|
||||||
shapes.values().forEach(Long2ObjectOpenHashMap::clear);
|
shapes.values().forEach(Long2ObjectOpenHashMap::clear);
|
||||||
}
|
}
|
||||||
|
synchronized (labels)
|
||||||
|
{
|
||||||
|
labels.values().forEach(Long2ObjectOpenHashMap::clear);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void renewShapes()
|
public void renewShapes()
|
||||||
@@ -177,6 +201,12 @@ public class ShapesRenderer
|
|||||||
shape.expiryTick++;
|
shape.expiryTick++;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
synchronized (labels)
|
||||||
|
{
|
||||||
|
labels.values().forEach(el -> el.values().forEach(shape -> {
|
||||||
|
shape.expiryTick++;
|
||||||
|
}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract static class RenderedShape<T extends ShapeDispatcher.ExpiringShape>
|
public abstract static class RenderedShape<T extends ShapeDispatcher.ExpiringShape>
|
||||||
@@ -211,7 +241,7 @@ public class ShapesRenderer
|
|||||||
if (client.world.getEntityById(shape.followEntity) == null) return false;
|
if (client.world.getEntityById(shape.followEntity) == null) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public boolean lastCall()
|
public boolean stageDeux()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -233,7 +263,6 @@ public class ShapesRenderer
|
|||||||
@Override
|
@Override
|
||||||
public void renderLines(MatrixStack matrices, Tessellator tessellator, BufferBuilder builder, double cx, double cy, double cz, float partialTick)
|
public void renderLines(MatrixStack matrices, Tessellator tessellator, BufferBuilder builder, double cx, double cy, double cz, float partialTick)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if (shape.a == 0.0) return;
|
if (shape.a == 0.0) return;
|
||||||
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();
|
||||||
@@ -250,11 +279,12 @@ public class ShapesRenderer
|
|||||||
//RenderSystem.translatef((float)(v1.x - d), (float)(v1.y - e), (float)(v1.z - f));
|
//RenderSystem.translatef((float)(v1.x - d), (float)(v1.y - e), (float)(v1.z - f));
|
||||||
matrices.translate(v1.x - d,v1.y - e,v1.z - f);
|
matrices.translate(v1.x - d,v1.y - e,v1.z - f);
|
||||||
//RenderSystem.normal3f(0.0F, 1.0F, 0.0F);
|
//RenderSystem.normal3f(0.0F, 1.0F, 0.0F);
|
||||||
//matrices.
|
// not needed
|
||||||
|
|
||||||
if (shape.facing == null)
|
if (shape.facing == null)
|
||||||
{
|
{
|
||||||
matrices.multiply(camera1.getRotation());
|
matrices.method_34425(new Matrix4f(camera1.getRotation()));
|
||||||
|
// or better matrices.multiply(camera1.getRotation());
|
||||||
//RenderSystem.multMatrix(new Matrix4f(camera1.getRotation()));
|
//RenderSystem.multMatrix(new Matrix4f(camera1.getRotation()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -264,31 +294,40 @@ public class ShapesRenderer
|
|||||||
case NORTH:
|
case NORTH:
|
||||||
break;
|
break;
|
||||||
case SOUTH:
|
case SOUTH:
|
||||||
matrices.
|
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180));
|
||||||
RenderSystem.rotatef(180.0f, 0.0f, 1.0f, 0.0f);
|
//RenderSystem.rotatef(180.0f, 0.0f, 1.0f, 0.0f);
|
||||||
break;
|
break;
|
||||||
case EAST:
|
case EAST:
|
||||||
RenderSystem.rotatef(270.0f, 0.0f, 1.0f, 0.0f);
|
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(270));
|
||||||
|
//RenderSystem.rotatef(270.0f, 0.0f, 1.0f, 0.0f);
|
||||||
break;
|
break;
|
||||||
case WEST:
|
case WEST:
|
||||||
RenderSystem.rotatef(90.0f, 0.0f, 1.0f, 0.0f);
|
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(90));
|
||||||
|
//RenderSystem.rotatef(90.0f, 0.0f, 1.0f, 0.0f);
|
||||||
break;
|
break;
|
||||||
case UP:
|
case UP:
|
||||||
RenderSystem.rotatef(90.0f, 1.0f, 0.0f, 0.0f);
|
matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(90));
|
||||||
|
//RenderSystem.rotatef(90.0f, 1.0f, 0.0f, 0.0f);
|
||||||
break;
|
break;
|
||||||
case DOWN:
|
case DOWN:
|
||||||
RenderSystem.rotatef(-90.0f, 1.0f, 0.0f, 0.0f);
|
matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(-90));
|
||||||
|
//RenderSystem.rotatef(-90.0f, 1.0f, 0.0f, 0.0f);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RenderSystem.scalef(shape.size* 0.0025f, -shape.size*0.0025f, shape.size*0.0025f);
|
matrices.scale(shape.size* 0.0025f, -shape.size*0.0025f, shape.size*0.0025f);
|
||||||
|
//RenderSystem.scalef(shape.size* 0.0025f, -shape.size*0.0025f, shape.size*0.0025f);
|
||||||
if (shape.tilt!=0.0f)
|
if (shape.tilt!=0.0f)
|
||||||
{
|
{
|
||||||
RenderSystem.rotatef(shape.tilt, 0.0f, 0.0f, 1.0f);
|
matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(shape.tilt));
|
||||||
|
//RenderSystem.rotatef(shape.tilt, 0.0f, 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
RenderSystem.translatef(-10*shape.indent, -10*shape.height-9, (float) (-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);
|
//RenderSystem.scalef(-1.0F, 1.0F, 1.0F);
|
||||||
|
matrices.scale(-1, 1, 1);
|
||||||
|
//RenderSystem.applyModelViewMatrix(); // passed matrix directly to textRenderer.draw
|
||||||
|
|
||||||
float text_x = 0;
|
float text_x = 0;
|
||||||
if (shape.align == 0)
|
if (shape.align == 0)
|
||||||
@@ -300,20 +339,23 @@ 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(Tessellator.getInstance().getBuffer());
|
||||||
textRenderer.draw(shape.value, text_x, 0.0F, shape.textcolor, false, AffineTransformation.identity().getMatrix(), immediate, false, shape.textbck, 15728880);
|
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, AffineTransformation.identity().getMatrix(), immediate, false, shape.textbck, 15728880);
|
||||||
immediate.draw();
|
immediate.draw();
|
||||||
RenderSystem.popMatrix();
|
matrices.pop();
|
||||||
|
RenderSystem.applyModelViewMatrix();
|
||||||
|
//RenderSystem.popMatrix();
|
||||||
RenderSystem.enableCull();
|
RenderSystem.enableCull();
|
||||||
//RenderSystem.enableDepthTest();
|
//RenderSystem.enableDepthTest();
|
||||||
//RenderSystem.depthFunc(515);
|
//RenderSystem.depthFunc(515);
|
||||||
//RenderSystem.enableAlphaTest();
|
//RenderSystem.enableAlphaTest();
|
||||||
//RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f);
|
//RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f);
|
||||||
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean lastCall()
|
public boolean stageDeux()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -348,6 +390,7 @@ 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);
|
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),
|
||||||
|
|||||||
@@ -20,10 +20,9 @@ public class FabricAPIHooks {
|
|||||||
WorldRenderEvents.BEFORE_DEBUG_RENDER.register(context -> {
|
WorldRenderEvents.BEFORE_DEBUG_RENDER.register(context -> {
|
||||||
if (CarpetClient.shapes != null) {
|
if (CarpetClient.shapes != null) {
|
||||||
context.matrixStack().push();
|
context.matrixStack().push();
|
||||||
//RenderSystem.pushMatrix();
|
|
||||||
CarpetClient.shapes.render(context.matrixStack(), context.camera(), context.tickDelta());
|
CarpetClient.shapes.render(context.matrixStack(), context.camera(), context.tickDelta());
|
||||||
//RenderSystem.popMatrix();
|
|
||||||
context.matrixStack().pop();
|
context.matrixStack().pop();
|
||||||
|
RenderSystem.applyModelViewMatrix();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user