From 42f78a596a916bb4ed84849b6816c7cd0312662b Mon Sep 17 00:00:00 2001 From: gnembon Date: Wed, 10 Mar 2021 23:13:59 -0400 Subject: [PATCH] 20w10a - broken scarpet shapes --- gradle.properties | 6 +-- .../java/carpet/commands/ScriptCommand.java | 4 +- .../java/carpet/helpers/FeatureGenerator.java | 2 +- .../java/carpet/mixins/ContainerMixin.java | 15 ++++--- .../PlayerManager_scarpetEventsMixin.java | 6 ++- ...PlayNetworkHandler_scarpetEventsMixin.java | 2 +- .../ServerPlayerEntity_scarpetEventMixin.java | 2 +- ...StructureBlockBlockEntity_limitsMixin.java | 2 +- .../TradeOutputSlot_scarpetEventMixin.java | 3 +- .../UpdateStructureBlockC2SPacketMixin.java | 5 ++- .../WorldRenderer_scarpetRenderMixin.java | 16 ++++--- .../carpet/patches/EntityPlayerMPFake.java | 2 +- .../carpet/script/bundled/FileModule.java | 4 +- .../carpet/script/utils/ShapesRenderer.java | 45 +++++++++++-------- .../java/carpet/script/utils/WorldTools.java | 4 ++ .../java/carpet/utils/FabricAPIHooks.java | 8 ++-- 16 files changed, 78 insertions(+), 48 deletions(-) diff --git a/gradle.properties b/gradle.properties index 569fff79..1aa00f0a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,10 +4,10 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use # or better: https://modmuss50.me/fabric.html - minecraft_version=21w08b - yarn_mappings=21w08b+build.22 + minecraft_version=21w10a + yarn_mappings=21w10a+build.1 loader_version=0.11.2 - fabric_version=0.32.0+1.17 + fabric_version=0.32.1+1.17 # Mod Properties mod_version = 1.4.28 diff --git a/src/main/java/carpet/commands/ScriptCommand.java b/src/main/java/carpet/commands/ScriptCommand.java index 75030545..4d841f01 100644 --- a/src/main/java/carpet/commands/ScriptCommand.java +++ b/src/main/java/carpet/commands/ScriptCommand.java @@ -468,7 +468,7 @@ public class ScriptCommand { ServerCommandSource source = context.getSource(); CarpetScriptHost host = getHost(context); - BlockBox area = new BlockBox(a, b); + BlockBox area = BlockBox.method_34390(a, b); CarpetExpression cexpr = new CarpetExpression(host.main, expr, source, origin); int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ(); if (int_1 > CarpetSettings.fillLimit) @@ -517,7 +517,7 @@ public class ScriptCommand { ServerCommandSource source = context.getSource(); CarpetScriptHost host = getHost(context); - BlockBox area = new BlockBox(a, b); + BlockBox area = BlockBox.method_34390(a, b); // create CarpetExpression cexpr = new CarpetExpression(host.main, expr, source, origin); int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ(); if (int_1 > CarpetSettings.fillLimit) diff --git a/src/main/java/carpet/helpers/FeatureGenerator.java b/src/main/java/carpet/helpers/FeatureGenerator.java index 401e9e7b..c2fd2be0 100644 --- a/src/main/java/carpet/helpers/FeatureGenerator.java +++ b/src/main/java/carpet/helpers/FeatureGenerator.java @@ -113,7 +113,7 @@ public class FeatureGenerator private static Thing simpleTree(TreeFeatureConfig config) { - config.ignoreFluidCheck(); + //config.ignoreFluidCheck(); return simplePlop(Feature.TREE.configure(config)); } diff --git a/src/main/java/carpet/mixins/ContainerMixin.java b/src/main/java/carpet/mixins/ContainerMixin.java index 83d71954..01905693 100644 --- a/src/main/java/carpet/mixins/ContainerMixin.java +++ b/src/main/java/carpet/mixins/ContainerMixin.java @@ -13,6 +13,7 @@ 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.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.List; @@ -21,16 +22,20 @@ import java.util.List; public abstract class ContainerMixin { - @Shadow public abstract ItemStack onSlotClick(int int_1, int int_2, SlotActionType slotActionType_1, PlayerEntity playerEntity_1); + @Shadow public abstract void onSlotClick(int int_1, int int_2, SlotActionType slotActionType_1, PlayerEntity playerEntity_1); @Shadow public abstract void sendContentUpdates(); @Shadow @Final public DefaultedList slots; + @Shadow protected abstract void endQuickCraft(); + + @Shadow public abstract ItemStack method_34255(); + @Inject( method = "internalOnSlotClick", at = @At(value = "HEAD"), cancellable = true) - private void onThrowClick( int slotId, int clickData, SlotActionType actionType, PlayerEntity playerEntity, CallbackInfoReturnable cir) + private void onThrowClick(int slotId, int clickData, SlotActionType actionType, PlayerEntity playerEntity, CallbackInfo ci) { - if (actionType == SlotActionType.THROW && CarpetSettings.ctrlQCraftingFix && playerEntity.getInventory().getCursorStack().isEmpty() && slotId >= 0) + if (actionType == SlotActionType.THROW && CarpetSettings.ctrlQCraftingFix && this.method_34255().isEmpty() /* playerEntity.getInventory().getCursorStack().isEmpty()*/ && slotId >= 0) { ItemStack itemStack_1 = ItemStack.EMPTY; Slot slot_4 = slots.get(slotId); @@ -44,8 +49,8 @@ public abstract class ContainerMixin this.onSlotClick(slotId, 0, SlotActionType.THROW, playerEntity); } this.sendContentUpdates(); - cir.setReturnValue(itemStack_1); - cir.cancel(); + this.endQuickCraft(); + ci.cancel(); } } } diff --git a/src/main/java/carpet/mixins/PlayerManager_scarpetEventsMixin.java b/src/main/java/carpet/mixins/PlayerManager_scarpetEventsMixin.java index 0d2d1c96..9da0d4e9 100644 --- a/src/main/java/carpet/mixins/PlayerManager_scarpetEventsMixin.java +++ b/src/main/java/carpet/mixins/PlayerManager_scarpetEventsMixin.java @@ -19,7 +19,11 @@ public class PlayerManager_scarpetEventsMixin PLAYER_RESPAWNS.onPlayerEvent(player); } - @Inject(method = "respawnPlayer", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;onSpawn()V")) + @Inject(method = "respawnPlayer", at = @At( + value = "INVOKE", + //target = "Lnet/minecraft/server/network/ServerPlayerEntity;onSpawn()V" + target = "Lnet/minecraft/server/network/ServerPlayerEntity;method_34225()V" + )) private void invalidatePreviousInstance(ServerPlayerEntity player, boolean alive, CallbackInfoReturnable cir) { ((ServerPlayerEntityInterface)player).invalidateEntityObjectReference(); diff --git a/src/main/java/carpet/mixins/ServerPlayNetworkHandler_scarpetEventsMixin.java b/src/main/java/carpet/mixins/ServerPlayNetworkHandler_scarpetEventsMixin.java index 7ef22620..c1f91226 100644 --- a/src/main/java/carpet/mixins/ServerPlayNetworkHandler_scarpetEventsMixin.java +++ b/src/main/java/carpet/mixins/ServerPlayNetworkHandler_scarpetEventsMixin.java @@ -51,7 +51,7 @@ public class ServerPlayNetworkHandler_scarpetEventsMixin { @Shadow public ServerPlayerEntity player; - @Inject(method = "onPlayerInput", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;method_14218(FFZZ)V")) + @Inject(method = "onPlayerInput", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;updateInput(FFZZ)V")) private void checkMoves(PlayerInputC2SPacket p, CallbackInfo ci) { if (PLAYER_RIDES.isNeeded() && (p.getSideways() != 0.0F || p.getForward() != 0.0F || p.isJumping() || p.isSneaking())) diff --git a/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java b/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java index 511d56dc..b1b375f9 100644 --- a/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java +++ b/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java @@ -80,7 +80,7 @@ public abstract class ServerPlayerEntity_scarpetEventMixin extends PlayerEntity } } - @Redirect(method = "method_14218", at = @At( + @Redirect(method = "updateInput", at = @At( value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;setSneaking(Z)V" )) diff --git a/src/main/java/carpet/mixins/StructureBlockBlockEntity_limitsMixin.java b/src/main/java/carpet/mixins/StructureBlockBlockEntity_limitsMixin.java index 7060b579..8ff19855 100644 --- a/src/main/java/carpet/mixins/StructureBlockBlockEntity_limitsMixin.java +++ b/src/main/java/carpet/mixins/StructureBlockBlockEntity_limitsMixin.java @@ -34,7 +34,7 @@ public abstract class StructureBlockBlockEntity_limitsMixin method = "saveStructure(Z)Z", at = @At( value = "INVOKE", - target = "Lnet/minecraft/structure/Structure;saveFromWorld(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/BlockPos;ZLnet/minecraft/block/Block;)V" + target = "Lnet/minecraft/structure/Structure;saveFromWorld(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Vec3i;ZLnet/minecraft/block/Block;)V" ), index = 4 ) diff --git a/src/main/java/carpet/mixins/TradeOutputSlot_scarpetEventMixin.java b/src/main/java/carpet/mixins/TradeOutputSlot_scarpetEventMixin.java index 053e799b..a1f5fd18 100644 --- a/src/main/java/carpet/mixins/TradeOutputSlot_scarpetEventMixin.java +++ b/src/main/java/carpet/mixins/TradeOutputSlot_scarpetEventMixin.java @@ -11,6 +11,7 @@ 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.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @@ -25,7 +26,7 @@ public abstract class TradeOutputSlot_scarpetEventMixin { @Inject(method = "onTakeItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/village/Merchant;trade(Lnet/minecraft/village/TradeOffer;)V") ) - private void onTrade(PlayerEntity player, ItemStack stack, CallbackInfoReturnable cir) { + private void onTrade(PlayerEntity player, ItemStack stack, CallbackInfo ci) { if(PLAYER_TRADES.isNeeded() && !this.merchant.getMerchantWorld().isClient()) { PLAYER_TRADES.onTrade((ServerPlayerEntity) player, merchant, merchantInventory.getTradeOffer()); diff --git a/src/main/java/carpet/mixins/UpdateStructureBlockC2SPacketMixin.java b/src/main/java/carpet/mixins/UpdateStructureBlockC2SPacketMixin.java index 8cc3d3ba..4be905f1 100644 --- a/src/main/java/carpet/mixins/UpdateStructureBlockC2SPacketMixin.java +++ b/src/main/java/carpet/mixins/UpdateStructureBlockC2SPacketMixin.java @@ -7,6 +7,7 @@ import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.c2s.play.UpdateStructureBlockC2SPacket; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3i; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -18,7 +19,7 @@ public class UpdateStructureBlockC2SPacketMixin { @Shadow private BlockPos offset; @Shadow - private BlockPos size; + private Vec3i size; @Inject( method = "(Lnet/minecraft/network/PacketByteBuf;)V", @@ -28,7 +29,7 @@ public class UpdateStructureBlockC2SPacketMixin { if (buf.readableBytes() == 6*4) { // This will throw an exception if carpet is not installed on client offset = new BlockPos(MathHelper.clamp(buf.readInt(), -CarpetSettings.structureBlockLimit, CarpetSettings.structureBlockLimit), MathHelper.clamp(buf.readInt(), -CarpetSettings.structureBlockLimit, CarpetSettings.structureBlockLimit), MathHelper.clamp(buf.readInt(), -CarpetSettings.structureBlockLimit, CarpetSettings.structureBlockLimit)); - size = new BlockPos(MathHelper.clamp(buf.readInt(), 0, CarpetSettings.structureBlockLimit), MathHelper.clamp(buf.readInt(), 0, CarpetSettings.structureBlockLimit), MathHelper.clamp(buf.readInt(), 0, CarpetSettings.structureBlockLimit)); + size = new Vec3i(MathHelper.clamp(buf.readInt(), 0, CarpetSettings.structureBlockLimit), MathHelper.clamp(buf.readInt(), 0, CarpetSettings.structureBlockLimit), MathHelper.clamp(buf.readInt(), 0, CarpetSettings.structureBlockLimit)); } } diff --git a/src/main/java/carpet/mixins/WorldRenderer_scarpetRenderMixin.java b/src/main/java/carpet/mixins/WorldRenderer_scarpetRenderMixin.java index ea412ab0..8f28b5cd 100644 --- a/src/main/java/carpet/mixins/WorldRenderer_scarpetRenderMixin.java +++ b/src/main/java/carpet/mixins/WorldRenderer_scarpetRenderMixin.java @@ -40,9 +40,11 @@ public class WorldRenderer_scarpetRenderMixin // 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) { - RenderSystem.pushMatrix(); - CarpetClient.shapes.render(camera, tickDelta); - RenderSystem.popMatrix(); + matrices.push(); + //RenderSystem.pushMatrix(); ?? + CarpetClient.shapes.render(matrices, camera, tickDelta); + //RenderSystem.popMatrix(); ?? + matrices.pop(); } } @@ -56,9 +58,11 @@ public class WorldRenderer_scarpetRenderMixin // 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) { - RenderSystem.pushMatrix(); - CarpetClient.shapes.render(camera, tickDelta); - RenderSystem.popMatrix(); + matrices.push(); + //RenderSystem.pushMatrix(); + CarpetClient.shapes.render(matrices, camera, tickDelta); + //RenderSystem.popMatrix(); + matrices.pop(); } } } diff --git a/src/main/java/carpet/patches/EntityPlayerMPFake.java b/src/main/java/carpet/patches/EntityPlayerMPFake.java index c682d437..39808ad4 100644 --- a/src/main/java/carpet/patches/EntityPlayerMPFake.java +++ b/src/main/java/carpet/patches/EntityPlayerMPFake.java @@ -75,7 +75,7 @@ public class EntityPlayerMPFake extends ServerPlayerEntity server.getPlayerManager().sendToDimension(new EntitySetHeadYawS2CPacket(playerShadow, (byte) (player.headYaw * 256 / 360)), playerShadow.world.getRegistryKey()); - server.getPlayerManager().sendToAll(new PlayerListS2CPacket(PlayerListS2CPacket.class_5893.ADD_PLAYER, playerShadow)); + server.getPlayerManager().sendToAll(new PlayerListS2CPacket(PlayerListS2CPacket.Action.ADD_PLAYER, playerShadow)); player.getServerWorld().getChunkManager().updateCameraPosition(playerShadow); return playerShadow; } diff --git a/src/main/java/carpet/script/bundled/FileModule.java b/src/main/java/carpet/script/bundled/FileModule.java index 4684b0fa..263db1e1 100644 --- a/src/main/java/carpet/script/bundled/FileModule.java +++ b/src/main/java/carpet/script/bundled/FileModule.java @@ -2,7 +2,7 @@ package carpet.script.bundled; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; -import net.minecraft.nbt.PositionTracker; +import net.minecraft.nbt.NbtTagSizeTracker; import net.minecraft.nbt.Tag; import net.minecraft.nbt.TagReaders; @@ -97,7 +97,7 @@ public class FileModule extends Module else { dataInput_1.readUTF(); - return TagReaders.of(byte_1).read(dataInput_1, 0, PositionTracker.DEFAULT); + return TagReaders.of(byte_1).read(dataInput_1, 0, NbtTagSizeTracker.EMPTY); } } catch (IOException ignored) diff --git a/src/main/java/carpet/script/utils/ShapesRenderer.java b/src/main/java/carpet/script/utils/ShapesRenderer.java index d3889ea1..2af4ff84 100644 --- a/src/main/java/carpet/script/utils/ShapesRenderer.java +++ b/src/main/java/carpet/script/utils/ShapesRenderer.java @@ -10,6 +10,7 @@ import net.minecraft.client.render.Camera; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.VertexFormat; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.AffineTransformation; import net.minecraft.client.world.ClientWorld; import net.minecraft.client.render.VertexFormats; @@ -48,7 +49,7 @@ public class ShapesRenderer shapes = new HashMap<>(); } - public void render(Camera camera, float partialTick) + public void render(MatrixStack matrices, Camera camera, float partialTick) { //Camera camera = this.client.gameRenderer.getCamera(); ClientWorld iWorld = this.client.world; @@ -62,11 +63,11 @@ public class ShapesRenderer RenderSystem.defaultBlendFunc(); //RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE, GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ZERO); //RenderSystem.shadeModel(7425); - RenderSystem.shadeModel(GL11.GL_FLAT); - RenderSystem.enableAlphaTest(); - RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f); + //////////RenderSystem.shadeModel(GL11.GL_FLAT); + //////////RenderSystem.enableAlphaTest(); + //////////RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f); RenderSystem.disableCull(); - RenderSystem.disableLighting(); + //////////RenderSystem.disableLighting(); RenderSystem.depthMask(false); // causes water to vanish //RenderSystem.depthMask(true); @@ -100,7 +101,7 @@ public class ShapesRenderer s -> { if ( !s.lastCall() && s.shouldRender(dimensionType)) - s.renderLines(tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick); + s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick); } ); //texts @@ -109,7 +110,7 @@ public class ShapesRenderer s -> { if ( s.lastCall() && s.shouldRender(dimensionType)) - s.renderLines(tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick); + s.renderLines(matrices, tessellator, bufferBuilder, cameraX, cameraY, cameraZ, partialTick); } ); @@ -120,7 +121,7 @@ public class ShapesRenderer RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.enableTexture(); - RenderSystem.shadeModel(7424); + //////////////RenderSystem.shadeModel(7424); } public void addShapes(ListTag tag) @@ -184,7 +185,7 @@ public class ShapesRenderer protected MinecraftClient client; long expiryTick; double renderEpsilon = 0; - public abstract void renderLines(Tessellator tessellator, BufferBuilder builder, double cx, double cy, double cz, float partialTick ); + public abstract void renderLines(MatrixStack matrices, Tessellator tessellator, BufferBuilder builder, double cx, double cy, double cz, float partialTick ); public void renderFaces(Tessellator tessellator, BufferBuilder builder, double cx, double cy, double cz, float partialTick ) {} protected RenderedShape(MinecraftClient client, T shape) { @@ -230,8 +231,9 @@ public class ShapesRenderer } @Override - public void renderLines(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; Vec3d v1 = shape.relativiseRender(client.world, shape.pos, partialTick); Camera camera1 = client.gameRenderer.getCamera(); @@ -243,13 +245,17 @@ public class ShapesRenderer RenderSystem.disableCull(); else RenderSystem.enableCull(); - RenderSystem.pushMatrix(); - RenderSystem.translatef((float)(v1.x - d), (float)(v1.y - e), (float)(v1.z - f)); - RenderSystem.normal3f(0.0F, 1.0F, 0.0F); + //RenderSystem.pushMatrix(); + matrices.push(); + //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); + //RenderSystem.normal3f(0.0F, 1.0F, 0.0F); + //matrices. if (shape.facing == null) { - RenderSystem.multMatrix(new Matrix4f(camera1.getRotation())); + matrices.multiply(camera1.getRotation()); + //RenderSystem.multMatrix(new Matrix4f(camera1.getRotation())); } else { @@ -258,6 +264,7 @@ public class ShapesRenderer case NORTH: break; case SOUTH: + matrices. RenderSystem.rotatef(180.0f, 0.0f, 1.0f, 0.0f); break; case EAST: @@ -301,6 +308,8 @@ public class ShapesRenderer //RenderSystem.depthFunc(515); //RenderSystem.enableAlphaTest(); //RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003f); + + */ } @Override @@ -333,7 +342,7 @@ public class ShapesRenderer } @Override - public void renderLines(Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) + public void renderLines(MatrixStack matrices, Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) { if (shape.a == 0.0) return; Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick); @@ -370,7 +379,7 @@ public class ShapesRenderer super(client, (ShapeDispatcher.Line)shape); } @Override - public void renderLines(Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) + public void renderLines(MatrixStack matrices, Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) { Vec3d v1 = shape.relativiseRender(client.world, shape.from, partialTick); Vec3d v2 = shape.relativiseRender(client.world, shape.to, partialTick); @@ -390,7 +399,7 @@ public class ShapesRenderer super(client, (ShapeDispatcher.Sphere)shape); } @Override - public void renderLines(Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) + public void renderLines(MatrixStack matrices, Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) { if (shape.a == 0.0) return; Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick); @@ -420,7 +429,7 @@ public class ShapesRenderer super(client, (ShapeDispatcher.Cylinder)shape); } @Override - public void renderLines(Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) + public void renderLines(MatrixStack matrices, Tessellator tessellator, BufferBuilder bufferBuilder, double cx, double cy, double cz, float partialTick) { if (shape.a == 0.0) return; Vec3d vc = shape.relativiseRender(client.world, shape.center, partialTick); diff --git a/src/main/java/carpet/script/utils/WorldTools.java b/src/main/java/carpet/script/utils/WorldTools.java index 4ae4559b..1fcd553d 100644 --- a/src/main/java/carpet/script/utils/WorldTools.java +++ b/src/main/java/carpet/script/utils/WorldTools.java @@ -2,6 +2,8 @@ package carpet.script.utils; import carpet.fakes.MinecraftServerInterface; import com.google.common.collect.ImmutableList; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket; import net.minecraft.server.MinecraftServer; import net.minecraft.server.WorldGenerationProgressListener; @@ -154,6 +156,8 @@ public class WorldTools { @Override public void start(ChunkPos spawnPos) { } @Override public void setChunkStatus(ChunkPos pos, ChunkStatus status) { } + @Environment(EnvType.CLIENT) + @Override public void start() { } @Override public void stop() { } } diff --git a/src/main/java/carpet/utils/FabricAPIHooks.java b/src/main/java/carpet/utils/FabricAPIHooks.java index b9c49bd5..c0274419 100644 --- a/src/main/java/carpet/utils/FabricAPIHooks.java +++ b/src/main/java/carpet/utils/FabricAPIHooks.java @@ -19,9 +19,11 @@ public class FabricAPIHooks { if (WORLD_RENDER_EVENTS) { WorldRenderEvents.BEFORE_DEBUG_RENDER.register(context -> { if (CarpetClient.shapes != null) { - RenderSystem.pushMatrix(); - CarpetClient.shapes.render(context.camera(), context.tickDelta()); - RenderSystem.popMatrix(); + context.matrixStack().push(); + //RenderSystem.pushMatrix(); + CarpetClient.shapes.render(context.matrixStack(), context.camera(), context.tickDelta()); + //RenderSystem.popMatrix(); + context.matrixStack().pop(); } }); }