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 0a35c9c6..fea069ca 100644 --- a/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java +++ b/src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java @@ -328,7 +328,9 @@ protected boolean isPresent() { } if (particlesPresent.getAsBoolean()) { - if (isPresent("minecraft", ">=1.18.2")) { + 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