mirror of
https://github.com/Lucaslah/WeatherChanger.git
synced 2026-01-09 04:29:26 +00:00
@@ -1,7 +1,7 @@
|
|||||||
# Weather Changer
|
# Weather Changer
|
||||||
Changes the weather on client side
|
Changes the weather on client side
|
||||||
|
|
||||||
Supports fabric 1.19.3+, forge support is coming soon!\
|
Supports fabric 1.20.0+, forge support is coming soon!\
|
||||||
The fabric api is required.
|
The fabric api is required.
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|||||||
@@ -3,15 +3,15 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://fabricmc.net/develop
|
# check these on https://fabricmc.net/develop
|
||||||
minecraft_version=1.19.3
|
minecraft_version=1.20.1
|
||||||
yarn_mappings=1.19.3+build.1
|
yarn_mappings=1.20.1+build.8
|
||||||
loader_version=0.14.11
|
loader_version=0.14.21
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 0.2.0
|
mod_version = 0.3.0
|
||||||
version = 0.1.0
|
version = 0.1.0
|
||||||
maven_group = me.lucaslah
|
maven_group = me.lucaslah
|
||||||
archives_base_name = weather-changer
|
archives_base_name = weather-changer
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
fabric_version=0.68.1+1.19.3
|
fabric_version=0.84.0+1.20.1
|
||||||
|
|||||||
@@ -1,48 +1,52 @@
|
|||||||
package me.lucaslah.weatherchanger.mixin;
|
package me.lucaslah.weatherchanger.mixin;
|
||||||
|
|
||||||
import me.lucaslah.weatherchanger.WeatherChanger;
|
import me.lucaslah.weatherchanger.WeatherChanger;
|
||||||
import net.minecraft.client.world.ClientWorld;
|
import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.registry.RegistryKey;
|
|
||||||
import net.minecraft.registry.entry.RegistryEntry;
|
|
||||||
import net.minecraft.util.profiler.Profiler;
|
|
||||||
import net.minecraft.world.MutableWorldProperties;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
@Mixin(World.class)
|
||||||
|
public class WorldMixin {
|
||||||
@Mixin(ClientWorld.class)
|
|
||||||
public abstract class WorldMixin extends World {
|
|
||||||
protected WorldMixin(MutableWorldProperties properties, RegistryKey<World> registryRef, RegistryEntry<DimensionType> dimension, Supplier<Profiler> profiler, boolean isClient, boolean debugWorld, long seed, int maxChainedNeighborUpdates) {
|
|
||||||
super(properties, registryRef, dimension, profiler, isClient, debugWorld, seed, maxChainedNeighborUpdates);
|
|
||||||
}
|
|
||||||
|
|
||||||
private WeatherChanger mod = WeatherChanger.getInstance();
|
private WeatherChanger mod = WeatherChanger.getInstance();
|
||||||
|
|
||||||
@Override
|
@Shadow
|
||||||
public float getRainGradient(float delta) {
|
protected float rainGradientPrev;
|
||||||
if (mod.mode == WeatherChanger.Mode.OFF) {
|
@Shadow
|
||||||
return super.getRainGradient(delta);
|
protected float rainGradient;
|
||||||
} else if (mod.mode == WeatherChanger.Mode.CLEAR) {
|
|
||||||
return 0;
|
@Inject(method = "getRainGradient", at = @At("HEAD"), cancellable = true)
|
||||||
|
public void changeRainGradient(float delta, CallbackInfoReturnable<Float> callback) {
|
||||||
|
if (mod.mode == WeatherChanger.Mode.CLEAR) {
|
||||||
|
callback.setReturnValue(0F);
|
||||||
} else if (mod.mode == WeatherChanger.Mode.RAIN || mod.mode == WeatherChanger.Mode.THUNDER) {
|
} else if (mod.mode == WeatherChanger.Mode.RAIN || mod.mode == WeatherChanger.Mode.THUNDER) {
|
||||||
return 1;
|
callback.setReturnValue(1F);
|
||||||
|
} else {
|
||||||
|
callback.setReturnValue(MathHelper.lerp(delta, this.rainGradientPrev, this.rainGradient));
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.getRainGradient(delta);
|
callback.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Inject(method = "getThunderGradient", at = @At("HEAD"), cancellable = true)
|
||||||
public float getThunderGradient(float delta) {
|
public void getThunderGradient(float delta, CallbackInfoReturnable<Float> callback) {
|
||||||
if (mod.mode == WeatherChanger.Mode.OFF) {
|
if (mod.mode == WeatherChanger.Mode.CLEAR) {
|
||||||
return super.getRainGradient(delta);
|
callback.setReturnValue(0F);
|
||||||
} else if (mod.mode == WeatherChanger.Mode.CLEAR) {
|
|
||||||
return 0;
|
|
||||||
} else if (mod.mode == WeatherChanger.Mode.THUNDER) {
|
} else if (mod.mode == WeatherChanger.Mode.THUNDER) {
|
||||||
return 1;
|
callback.setReturnValue(1F);
|
||||||
|
} else {
|
||||||
|
callback.setReturnValue(this.getRainGradient(delta));
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.getRainGradient(delta);
|
callback.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getRainGradient(float delta) {
|
||||||
|
return MathHelper.lerp(delta, this.rainGradientPrev, this.rainGradient);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=0.14.6",
|
"fabricloader": ">=0.14.6",
|
||||||
"fabric-api": "*",
|
"fabric-api": "*",
|
||||||
"minecraft": ">=1.19.3",
|
"minecraft": ">=1.20.0",
|
||||||
"java": ">=17"
|
"java": ">=17"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user