Skip to content

Commit df893f0

Browse files
authored
Merge pull request #10 from MicrocontrollersDev/mixin-extras
switch to mixin extras
2 parents 1e7082e + 7d88520 commit df893f0

5 files changed

Lines changed: 35 additions & 34 deletions

File tree

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.polyfrost.polyweather.mixin.client;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
35
//? if >=1.21.4 {
46
import net.minecraft.client.multiplayer.ClientLevel;
57
import net.minecraft.client.renderer.WeatherEffectRenderer;
@@ -11,16 +13,15 @@
1113
import org.polyfrost.polyweather.client.PolyWeatherConfig;
1214
import org.spongepowered.asm.mixin.Mixin;
1315
import org.spongepowered.asm.mixin.injection.At;
14-
import org.spongepowered.asm.mixin.injection.Redirect;
1516

1617
//? if >=1.21.4 {
1718
@Mixin(WeatherEffectRenderer.class)
1819
//?} else {
1920
/*@Mixin(LevelRenderer.class)
2021
*///?}
2122
public class Mixin_AllowWeatherEverywhere {
22-
@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" *//*?}*/))
23-
private /*? if >=1.21.4 {*/ float /*?} else {*/ /*boolean *//*?}*/ allowRainEverywhere(/*? if >=1.21.4 {*/ ClientLevel instance, float delta /*?} else {*/ /*Biome instance *//*?}*/) {
23+
@WrapOperation(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" *//*?}*/))
24+
private /*? if >=1.21.4 {*/ float /*?} else {*/ /*boolean *//*?}*/ allowRainEverywhere(/*? if >=1.21.4 {*/ ClientLevel instance, float delta /*?} else {*/ /*Biome instance *//*?}*/, Operation</*? if >=1.21.4 {*/ Float /*?} else {*/ /*Boolean *//*?}*/> original) {
2425
if (PolyWeatherConfig.isEnabled()) {
2526
//? if >=1.21.4 {
2627
return ClientWeatherManager.getPrecipitationStrength(delta);
@@ -29,10 +30,6 @@ public class Mixin_AllowWeatherEverywhere {
2930
*///?}
3031
}
3132

32-
//? if >=1.21.4 {
33-
return instance.getRainLevel(delta);
34-
//?} else {
35-
/*return instance.hasPrecipitation();
36-
*///?}
33+
return original.call(instance /*? if >=1.21.4 {*/, delta /*?}*/);
3734
}
3835
}
Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,48 @@
11
package org.polyfrost.polyweather.mixin.client;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
35
import net.minecraft.client.multiplayer.ClientLevel;
46
import org.polyfrost.polyweather.client.ClientWeatherManager;
57
import org.polyfrost.polyweather.client.PolyWeatherConfig;
68
import org.spongepowered.asm.mixin.Mixin;
79
import org.spongepowered.asm.mixin.injection.At;
8-
import org.spongepowered.asm.mixin.injection.Redirect;
910

1011
@Mixin(ClientLevel.class)
1112
public class Mixin_FixWorldColors {
12-
@Redirect(method = "getSkyColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getRainLevel(F)F"))
13-
private float fixSkyColors(ClientLevel instance, float delta) {
13+
@WrapOperation(method = "getSkyColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getRainLevel(F)F"))
14+
private float fixSkyColors(ClientLevel instance, float delta, Operation<Float> original) {
1415
if (PolyWeatherConfig.isEnabled()) {
1516
return ClientWeatherManager.getPrecipitationStrength(delta);
1617
}
1718

18-
return instance.getRainLevel(delta);
19+
return original.call(instance, delta);
1920
}
2021

21-
@Redirect(method = "getSkyColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getThunderLevel(F)F"))
22-
private float fixSkyColorsThunder(ClientLevel instance, float delta) {
22+
@WrapOperation(method = "getSkyColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getThunderLevel(F)F"))
23+
private float fixSkyColorsThunder(ClientLevel instance, float delta, Operation<Float> original) {
2324
if (PolyWeatherConfig.isEnabled()) {
2425
return ClientWeatherManager.getStormStrength(delta);
2526
}
2627

27-
return instance.getThunderLevel(delta);
28+
return original.call(instance, delta);
2829
}
2930

30-
@Redirect(method = "getCloudColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getRainLevel(F)F"))
31-
private float fixCloudColors(ClientLevel instance, float delta) {
31+
@WrapOperation(method = "getCloudColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getRainLevel(F)F"))
32+
private float fixCloudColors(ClientLevel instance, float delta, Operation<Float> original) {
3233
if (PolyWeatherConfig.isEnabled()) {
3334
return ClientWeatherManager.getPrecipitationStrength(delta);
3435
}
3536

36-
return instance.getRainLevel(delta);
37+
return original.call(instance, delta);
3738
}
3839

39-
@Redirect(method = "getCloudColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getThunderLevel(F)F"))
40-
private float fixCloudColorsThunder(ClientLevel instance, float delta) {
40+
@WrapOperation(method = "getCloudColor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getThunderLevel(F)F"))
41+
private float fixCloudColorsThunder(ClientLevel instance, float delta, Operation<Float> original) {
4142
if (PolyWeatherConfig.isEnabled()) {
4243
return ClientWeatherManager.getStormStrength(delta);
4344
}
4445

45-
return instance.getThunderLevel(delta);
46+
return original.call(instance, delta);
4647
}
4748
}

src/main/java/org/polyfrost/polyweather/mixin/client/Mixin_ForceSnow.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
//? if >=1.21.4 {
44
import net.minecraft.client.renderer.WeatherEffectRenderer;
55
//?} else {
6-
/*import net.minecraft.client.renderer.LevelRenderer;
6+
/*import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
7+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
8+
import net.minecraft.client.renderer.LevelRenderer;
79
import net.minecraft.core.BlockPos;
810
*///?}
911
import net.minecraft.world.level.biome.Biome;
@@ -16,7 +18,6 @@
1618
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1719
//?} else {
1820
/*import org.spongepowered.asm.mixin.injection.At;
19-
import org.spongepowered.asm.mixin.injection.Redirect;
2021
*///?}
2122

2223
//? if >=1.21.4 {
@@ -33,13 +34,13 @@ private void forceSnow(CallbackInfoReturnable<Biome.Precipitation> cir) {
3334
}
3435
}
3536
//?} else {
36-
/*@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;"))
37-
private Biome.Precipitation polyweather$forceSnow(Biome instance, BlockPos pos) {
37+
/*@WrapOperation(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;"))
38+
private Biome.Precipitation polyweather$forceSnow(Biome instance, BlockPos pos, Operation<Biome.Precipitation> original) {
3839
if (PolyWeatherConfig.isEnabled() && ClientWeatherManager.isSnowy()) {
3940
return Biome.Precipitation.SNOW;
4041
}
4142
42-
return instance.getPrecipitationAt(pos);
43+
return original.call(instance, pos);
4344
}
4445
*///?}
4546
}
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.polyfrost.polyweather.mixin.client;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
35
//? if >=1.21.4 {
46
import net.minecraft.client.renderer.WeatherEffectRenderer;
57
import net.minecraft.world.level.Level;
@@ -11,20 +13,19 @@
1113
import org.polyfrost.polyweather.client.PolyWeatherConfig;
1214
import org.spongepowered.asm.mixin.Mixin;
1315
import org.spongepowered.asm.mixin.injection.At;
14-
import org.spongepowered.asm.mixin.injection.Redirect;
1516

1617
//? if >=1.21.4 {
1718
@Mixin(WeatherEffectRenderer.class)
1819
//?} else {
1920
/*@Mixin(LevelRenderer.class)
2021
*///?}
2122
public class Mixin_ModifyPrecipitationStrength {
22-
@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" *//*?}*/))
23-
private float modifyPrecipitationStrength(/*? if >=1.21.4 {*/ Level /*?} else {*/ /*ClientLevel *//*?}*/ instance, float delta) {
23+
@WrapOperation(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" *//*?}*/))
24+
private float modifyPrecipitationStrength(/*? if >=1.21.4 {*/ Level /*?} else {*/ /*ClientLevel *//*?}*/ instance, float delta, Operation<Float> original) {
2425
if (PolyWeatherConfig.isEnabled()) {
2526
return ClientWeatherManager.getPrecipitationStrength(delta);
2627
}
2728

28-
return instance.getRainLevel(delta);
29+
return original.call(instance, delta);
2930
}
3031
}
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.polyfrost.polyweather.mixin.client;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
35
import net.minecraft.client.multiplayer.ClientLevel;
46
//? if >=1.21.8 {
57
import net.minecraft.client.renderer.fog.environment.AirBasedFogEnvironment;
@@ -10,20 +12,19 @@
1012
import org.polyfrost.polyweather.client.PolyWeatherConfig;
1113
import org.spongepowered.asm.mixin.Mixin;
1214
import org.spongepowered.asm.mixin.injection.At;
13-
import org.spongepowered.asm.mixin.injection.Redirect;
1415

1516
//? if >=1.21.8 {
1617
@Mixin(AirBasedFogEnvironment.class)
1718
//?} else {
1819
/*@Mixin(FogRenderer.class)
1920
*///?}
2021
public class Mixin_ModifyThunderStrength {
21-
@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"))
22-
private static float modifyThunderStrength(ClientLevel instance, float delta) {
22+
@WrapOperation(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"))
23+
private static float modifyThunderStrength(ClientLevel instance, float delta, Operation<Float> original) {
2324
if (PolyWeatherConfig.isEnabled()) {
2425
return ClientWeatherManager.getStormStrength(delta);
2526
}
2627

27-
return instance.getThunderLevel(delta);
28+
return original.call(instance, delta);
2829
}
2930
}

0 commit comments

Comments
 (0)