diff --git a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_AllowWeatherEverywhere.java b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_AllowWeatherEverywhere.java index a47a288..0a0138e 100644 --- a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_AllowWeatherEverywhere.java +++ b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_AllowWeatherEverywhere.java @@ -1,21 +1,38 @@ package org.polyfrost.polyweather.mixin.client; +//? if >=1.21.4 { import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.WeatherEffectRenderer; import org.polyfrost.polyweather.client.ClientWeatherManager; +//?} else { +/*import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.world.level.biome.Biome; +*///?} import org.polyfrost.polyweather.client.PolyWeatherConfig; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; +//? if >=1.21.4 { @Mixin(WeatherEffectRenderer.class) +//?} else { +/*@Mixin(LevelRenderer.class) +*///?} public class Mixin_AllowWeatherEverywhere { - @Redirect(method = "tickRainParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getRainLevel(F)F")) - private float allowRainEverywhere(ClientLevel instance, float delta) { + @Redirect(method = /*? if >=1.21.4 {*/ "tickRainParticles" /*?} else {*/ /*"renderSnowAndRain" *//*?}*/, at = @At(value = "INVOKE", target = /*? if >=1.21.4 {*/ "Lnet/minecraft/client/multiplayer/ClientLevel;getRainLevel(F)F" /*?} else {*/ /*"Lnet/minecraft/world/level/biome/Biome;hasPrecipitation()Z" *//*?}*/)) + private /*? if >=1.21.4 {*/ float /*?} else {*/ /*boolean *//*?}*/ allowRainEverywhere(/*? if >=1.21.4 {*/ ClientLevel instance, float delta /*?} else {*/ /*Biome instance *//*?}*/) { if (PolyWeatherConfig.isEnabled()) { + //? if >=1.21.4 { return ClientWeatherManager.getPrecipitationStrength(delta); + //?} else { + /*return true; + *///?} } + //? if >=1.21.4 { return instance.getRainLevel(delta); + //?} else { + /*return instance.hasPrecipitation(); + *///?} } } diff --git a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_CancelGroundParticles.java b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_CancelGroundParticles.java index fb6280d..1d1ed07 100644 --- a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_CancelGroundParticles.java +++ b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_CancelGroundParticles.java @@ -1,9 +1,13 @@ package org.polyfrost.polyweather.mixin.client; +//? if >=1.21.4 { import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.WeatherEffectRenderer; import net.minecraft.server.level.ParticleStatus; +//?} else { +/*import net.minecraft.client.renderer.LevelRenderer; +*///?} import org.polyfrost.polyweather.client.ClientWeatherManager; import org.polyfrost.polyweather.client.PolyWeatherConfig; import org.spongepowered.asm.mixin.Mixin; @@ -11,10 +15,14 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +//? if >=1.21.4 { @Mixin(WeatherEffectRenderer.class) +//?} else { +/*@Mixin(LevelRenderer.class) +*///?} public class Mixin_CancelGroundParticles { - @Inject(method = "tickRainParticles", at = @At("HEAD"), cancellable = true) - private void cancelGroundParticles(ClientLevel arg, Camera arg2, int m, ParticleStatus arg3, CallbackInfo ci) { + @Inject(method = /*? if >=1.21.4 {*/ "tickRainParticles" /*?} else {*/ /*"tickRain" *//*?}*/, at = @At("HEAD"), cancellable = true) + private void cancelGroundParticles(/*? if >=1.21.4 {*/ ClientLevel arg, Camera arg2, int m, ParticleStatus arg3, /*?}*/ CallbackInfo ci) { if (PolyWeatherConfig.isEnabled() && (!ClientWeatherManager.isRainy() || ClientWeatherManager.isSnowy())) { ci.cancel(); } diff --git a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ForceSnow.java b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ForceSnow.java index 76f8069..f5e5dc0 100644 --- a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ForceSnow.java +++ b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ForceSnow.java @@ -1,20 +1,45 @@ package org.polyfrost.polyweather.mixin.client; +//? if >=1.21.4 { import net.minecraft.client.renderer.WeatherEffectRenderer; +//?} else { +/*import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.core.BlockPos; +*///?} import net.minecraft.world.level.biome.Biome; import org.polyfrost.polyweather.client.ClientWeatherManager; import org.polyfrost.polyweather.client.PolyWeatherConfig; import org.spongepowered.asm.mixin.Mixin; +//? if >=1.21.4 { import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + //?} else { +/*import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; +*///?} +//? if >=1.21.4 { @Mixin(WeatherEffectRenderer.class) +//?} else { +/*@Mixin(LevelRenderer.class) +*///?} public class Mixin_ForceSnow { + //? if >=1.21.4 { @Inject(method = "getPrecipitationAt", at = @At("HEAD"), cancellable = true) private void forceSnow(CallbackInfoReturnable cir) { if (PolyWeatherConfig.isEnabled() && ClientWeatherManager.isSnowy()) { cir.setReturnValue(Biome.Precipitation.SNOW); } } + //?} else { + /*@Redirect(method = "renderSnowAndRain", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/biome/Biome;getPrecipitationAt(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/biome/Biome$Precipitation;")) + private Biome.Precipitation polyweather$forceSnow(Biome instance, BlockPos pos) { + if (PolyWeatherConfig.isEnabled() && ClientWeatherManager.isSnowy()) { + return Biome.Precipitation.SNOW; + } + + return instance.getPrecipitationAt(pos); + } + *///?} } diff --git a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyPrecipitationStrength.java b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyPrecipitationStrength.java index 428d9b9..e802958 100644 --- a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyPrecipitationStrength.java +++ b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyPrecipitationStrength.java @@ -1,17 +1,26 @@ package org.polyfrost.polyweather.mixin.client; +//? if >=1.21.4 { import net.minecraft.client.renderer.WeatherEffectRenderer; import net.minecraft.world.level.Level; +//?} else { +/*import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.LevelRenderer; +*///?} import org.polyfrost.polyweather.client.ClientWeatherManager; import org.polyfrost.polyweather.client.PolyWeatherConfig; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; +//? if >=1.21.4 { @Mixin(WeatherEffectRenderer.class) +//?} else { +/*@Mixin(LevelRenderer.class) +*///?} public class Mixin_ModifyPrecipitationStrength { - @Redirect(method = /*? if >=1.21.10 {*/ "extractRenderState" /*?} else {*/ /*"render(Lnet/minecraft/world/level/Level;Lnet/minecraft/client/renderer/MultiBufferSource;IFLnet/minecraft/world/phys/Vec3;)V" *//*?}*/, at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getRainLevel(F)F")) - private float modifyPrecipitationStength(Level instance, float delta) { + @Redirect(method = /*? if >=1.21.10 {*/ "extractRenderState" /*?} else if >=1.21.4 {*/ /*"render(Lnet/minecraft/world/level/Level;Lnet/minecraft/client/renderer/MultiBufferSource;IFLnet/minecraft/world/phys/Vec3;)V" *//*?} else {*/ /*"renderSnowAndRain" *//*?}*/, at = @At(value = "INVOKE", target = /*? if >=1.21.4 {*/ "Lnet/minecraft/world/level/Level;getRainLevel(F)F" /*?} else {*/ /*"Lnet/minecraft/client/multiplayer/ClientLevel;getRainLevel(F)F" *//*?}*/)) + private float modifyPrecipitationStrength(/*? if >=1.21.4 {*/ Level /*?} else {*/ /*ClientLevel *//*?}*/ instance, float delta) { if (PolyWeatherConfig.isEnabled()) { return ClientWeatherManager.getPrecipitationStrength(delta); } diff --git a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyThunderStrength.java b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyThunderStrength.java index 1092fd2..ffd2af1 100644 --- a/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyThunderStrength.java +++ b/src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ModifyThunderStrength.java @@ -18,7 +18,7 @@ /*@Mixin(FogRenderer.class) *///?} public class Mixin_ModifyThunderStrength { - @Redirect(method = /*? if >=1.21.8 {*/ "getBaseColor" /*?} else {*/ /*"computeFogColor" *//*?}*/, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getThunderLevel(F)F")) + @Redirect(method = /*? if >=1.21.8 {*/ "getBaseColor" /*?} else if >=1.21.4 {*/ /*"computeFogColor" *//*?} else {*/ /*"setupColor" *//*?}*/, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getThunderLevel(F)F")) private static float modifyThunderStrength(ClientLevel instance, float delta) { if (PolyWeatherConfig.isEnabled()) { return ClientWeatherManager.getStormStrength(delta);