diff --git a/gradle.properties b/gradle.properties index 684414ed..bc4f32c5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check https://fabricmc.net/develop/ - minecraft_version=26.1-snapshot-11 + minecraft_version=26.1-pre-1 loader_version=0.18.4 loom_version=1.15-SNAPSHOT diff --git a/src/main/java/carpet/mixins/Gui_tablistMixin.java b/src/main/java/carpet/mixins/Gui_tablistMixin.java index 47235544..128cc36f 100644 --- a/src/main/java/carpet/mixins/Gui_tablistMixin.java +++ b/src/main/java/carpet/mixins/Gui_tablistMixin.java @@ -19,7 +19,7 @@ public abstract class Gui_tablistMixin @Shadow @Final private PlayerTabOverlay tabList; - @Redirect(method = "renderTabList", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;isLocalServer()Z")) + @Redirect(method = "extractTabList", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;isLocalServer()Z")) private boolean onDraw(Minecraft minecraftClient) { return this.minecraft.isLocalServer() && !((PlayerListHudInterface) tabList).hasFooterOrHeader(); diff --git a/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java b/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java index 30979935..a1593b21 100644 --- a/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java +++ b/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java @@ -19,7 +19,7 @@ import net.minecraft.client.renderer.feature.FeatureRenderDispatcher; import net.minecraft.client.renderer.state.GameRenderState; import net.minecraft.client.renderer.state.level.CameraRenderState; import net.minecraft.client.renderer.state.level.LevelRenderState; -import org.joml.Matrix4f; +import org.joml.Matrix4fc; import org.joml.Vector4f; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -47,10 +47,10 @@ public class LevelRenderer_scarpetRenderMixin @Inject(method = "renderLevel", at = @At( value = "INVOKE", - target = "Lnet/minecraft/client/renderer/LevelRenderer;addLateDebugPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/state/level/CameraRenderState;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4f;)V", + target = "Lnet/minecraft/client/renderer/LevelRenderer;addLateDebugPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/state/level/CameraRenderState;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4fc;)V", shift = At.Shift.AFTER )) - private void renderScarpetThinsLate(GraphicsResourceAllocator resourceAllocator, DeltaTracker deltaTracker, boolean renderOutline, CameraRenderState cameraState, Matrix4f modelViewMatrix, GpuBufferSlice terrainFog, Vector4f fogColor, boolean shouldRenderSky, ChunkSectionsToRender chunkSectionsToRender, CallbackInfo ci, @Local FrameGraphBuilder frameGraphBuilder) + private void renderScarpetThinsLate(GraphicsResourceAllocator resourceAllocator, DeltaTracker deltaTracker, boolean renderOutline, CameraRenderState cameraState, Matrix4fc modelViewMatrix, GpuBufferSlice terrainFog, Vector4f fogColor, boolean shouldRenderSky, ChunkSectionsToRender chunkSectionsToRender, CallbackInfo ci, @Local FrameGraphBuilder frameGraphBuilder) { // 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. diff --git a/src/main/java/carpet/script/utils/ShapesRenderer.java b/src/main/java/carpet/script/utils/ShapesRenderer.java index 699222c0..fa77d568 100644 --- a/src/main/java/carpet/script/utils/ShapesRenderer.java +++ b/src/main/java/carpet/script/utils/ShapesRenderer.java @@ -55,8 +55,9 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.TagValueInput; import net.minecraft.world.phys.Vec3; -import org.joml.Matrix4f; import org.joml.Matrix4fStack; +import org.joml.Matrix4fc; +import org.joml.Quaternionf; public class ShapesRenderer { @@ -113,7 +114,7 @@ public class ShapesRenderer labels = new HashMap<>(); } - public void render(RenderBuffers renderBuffers, LevelRenderState cameraa, Matrix4f matrix4f, float partialTick) + public void render(RenderBuffers renderBuffers, LevelRenderState cameraa, Matrix4fc matrix4f, float partialTick) { Runnable token = Carpet.startProfilerSection("Scarpet client"); // posestack is not needed anymore - left as TODO to cleanup later @@ -161,7 +162,8 @@ public class ShapesRenderer ); Matrix4fStack matrixStack = RenderSystem.getModelViewStack(); matrixStack.pushMatrix(); - matrixStack.mul(matrices.last().pose()); + //matrixStack.mul(matrices.last().pose()); + matrixStack.mul(matrix4f); // lines //RenderSystem.lineWidth(0.5F); @@ -375,6 +377,8 @@ public class ShapesRenderer matrices.translate(0.5, 0.5, 0.5); } + matrices.mulPose(camera1.rotation().conjugate(new Quaternionf())); + matrices.translate(v1.x - cx, v1.y - cy, v1.z - cz); rotatePoseStackByShapeDirection(matrices, shape.facing, camera1, isitem ? v1 : v1.add(0.5, 0.5, 0.5)); if (shape.tilt != 0.0f) @@ -421,10 +425,10 @@ public class ShapesRenderer if (blockState.getRenderShape() == RenderShape.MODEL) { // this is equally wrong position wise as the BE type - need to investigate - var blockRenderDispatcher = client.getBlockRenderer(); + //var blockRenderDispatcher = client.getBlockRenderer(); - var state = blockRenderDispatcher.getBlockModel(blockState); + //var state = blockRenderDispatcher.getBlockModel(blockState); BlockModelRenderState renderState = new BlockModelRenderState(); client.getBlockEntityRenderDispatcher().blockModelResolver.update(renderState, blockState, DisplayRenderer.BLOCK_DISPLAY_CONTEXT ); //renderState.model = state;