From 0a5348b60785e478799f849129dea480a2875d29 Mon Sep 17 00:00:00 2001 From: XXMA16 Date: Sat, 15 Jul 2023 14:33:59 +0300 Subject: [PATCH 1/2] Fix Carpet 1.19.3-1.20.1 --- src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java b/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java index 0a35c9c6..06ae95b0 100644 --- a/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java +++ b/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java @@ -327,7 +327,7 @@ protected boolean isPresent() { Mixins.addConfiguration("optifabric.compat.carpet.mixins.json"); } - if (particlesPresent.getAsBoolean()) { + if (particlesPresent.getAsBoolean() && isPresent("<1.19.3")) { if (isPresent("minecraft", ">=1.18.2")) { Mixins.addConfiguration("optifabric.compat.carpet.extra-new-mixins.json"); } else { From 0201d6f99752a3883d86ca26b715c5e1ceaafc44 Mon Sep 17 00:00:00 2001 From: XXMA16 Date: Tue, 18 Jul 2023 17:56:20 +0300 Subject: [PATCH 2/2] Actually fix Carpet --- .../mixin/LevelRendererExtraNewMixin.java | 23 +++++++++++++++++++ .../optifabric/mod/OptifabricSetup.java | 6 +++-- ...bric.compat.carpet.extra-newer-mixins.json | 8 +++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/main/java/me/modmuss50/optifabric/compat/carpet/mixin/LevelRendererExtraNewMixin.java create mode 100644 src/main/resources/optifabric.compat.carpet.extra-newer-mixins.json diff --git a/src/main/java/me/modmuss50/optifabric/compat/carpet/mixin/LevelRendererExtraNewMixin.java b/src/main/java/me/modmuss50/optifabric/compat/carpet/mixin/LevelRendererExtraNewMixin.java new file mode 100644 index 00000000..f4041d73 --- /dev/null +++ b/src/main/java/me/modmuss50/optifabric/compat/carpet/mixin/LevelRendererExtraNewMixin.java @@ -0,0 +1,23 @@ +package me.modmuss50.optifabric.compat.carpet.mixin; + +import me.modmuss50.optifabric.compat.InterceptingMixin; +import me.modmuss50.optifabric.compat.Shim; +import net.minecraft.client.render.WorldRenderer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +@Mixin(WorldRenderer.class) +@InterceptingMixin("carpet/mixins/LevelRenderer_pausedShakeMixin") +abstract class LevelRendererExtraNewMixin { + @ModifyVariable(method = "render(Lnet/minecraft/client/util/math/MatrixStack;FJZLnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/GameRenderer;Lnet/minecraft/client/render/LightmapTextureManager;Lorg/joml/Matrix4f;)V", argsOnly = true, ordinal = 0, require = 3, allow = 3, + at = @At(value = "INVOKE", + target = "Lnet/minecraft/client/particle/ParticleManager;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/render/LightmapTextureManager;Lnet/minecraft/client/render/Camera;FLnet/minecraft/client/render/Frustum;)V", + shift = At.Shift.BEFORE)) + private float doNewChangeTickPhaseBack(float previous) { + return changeTickPhaseBack(previous); + } + + @Shim + private native float changeTickPhaseBack(float previous); +} diff --git a/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java b/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java index 06ae95b0..fea069ca 100644 --- a/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java +++ b/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java @@ -327,8 +327,10 @@ protected boolean isPresent() { Mixins.addConfiguration("optifabric.compat.carpet.mixins.json"); } - if (particlesPresent.getAsBoolean() && isPresent("<1.19.3")) { - if (isPresent("minecraft", ">=1.18.2")) { + if (particlesPresent.getAsBoolean()) { + if (isPresent("minecraft", ">=1.19.3")) { + Mixins.addConfiguration("optifabric.compat.carpet.extra-newer-mixins.json"); + } else if (isPresent("minecraft", ">=1.18.2")) { Mixins.addConfiguration("optifabric.compat.carpet.extra-new-mixins.json"); } else { Mixins.addConfiguration("optifabric.compat.carpet.extra-mixins.json"); diff --git a/src/main/resources/optifabric.compat.carpet.extra-newer-mixins.json b/src/main/resources/optifabric.compat.carpet.extra-newer-mixins.json new file mode 100644 index 00000000..21229ea0 --- /dev/null +++ b/src/main/resources/optifabric.compat.carpet.extra-newer-mixins.json @@ -0,0 +1,8 @@ +{ + "parent": "optifabric.mixins.json", + "package": "me.modmuss50.optifabric.compat.carpet.mixin", + "plugin": "me.modmuss50.optifabric.compat.carpet.CarpetExtraMixinPlugin", + "mixins": [ + "LevelRendererExtraNewMixin" + ] +} \ No newline at end of file