Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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();
*///?}
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
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;
import org.spongepowered.asm.mixin.injection.At;
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();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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<Biome.Precipitation> 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);
}
*///?}
}
Original file line number Diff line number Diff line change
@@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Loading