Skip to content

Commit

Permalink
Haze calculations
Browse files Browse the repository at this point in the history
  • Loading branch information
IMB11 committed Jul 3, 2024
1 parent ab64b61 commit 0714d89
Showing 1 changed file with 15 additions and 14 deletions.
29 changes: 15 additions & 14 deletions src/main/java/dev/imb11/fog/mixin/WorldRendererMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,24 @@

@Mixin(WorldRenderer.class)
public class WorldRendererMixin {
@ModifyVariable(method = "renderSky(Lnet/minecraft/client/util/math/MatrixStack;Lorg/joml/Matrix4f;FLnet/minecraft/client/render/Camera;ZLjava/lang/Runnable;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/client/world/ClientWorld;getSkyColor(Lnet/minecraft/util/math/Vec3d;F)Lnet/minecraft/util/math/Vec3d;"))
@SuppressWarnings("InvalidInjectorMethodSignature")
public Vec3d preventHorizonBreak(Vec3d original) {
MinecraftClient client = MinecraftClient.getInstance();
ClientWorld world = client.world;
FogManager fogManager = FogManager.getInstance();
FogManager.FogSettings settings = fogManager.getFogSettings(client.getTickDelta(), client.options.getViewDistance().getValue());
double hazeValue = HazeCalculator.getHaze((int) world.getTimeOfDay());
BiomeColourEntry defaultEntry = new BiomeColourEntry(Identifier.of("default", "default"), 0.68f, 0.83f, 1f);
float fogColorR = (float) MathHelper.lerp(hazeValue, defaultEntry.fogR(), settings.fogR());
float fogColorG = (float) MathHelper.lerp(hazeValue, defaultEntry.fogG(), settings.fogG());
float fogColorB = (float) MathHelper.lerp(hazeValue, defaultEntry.fogB(), settings.fogB());
return original;
}
// @ModifyVariable(method = "renderSky(Lnet/minecraft/client/util/math/MatrixStack;Lorg/joml/Matrix4f;FLnet/minecraft/client/render/Camera;ZLjava/lang/Runnable;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/client/world/ClientWorld;getSkyColor(Lnet/minecraft/util/math/Vec3d;F)Lnet/minecraft/util/math/Vec3d;"))
// @SuppressWarnings("InvalidInjectorMethodSignature")
// public Vec3d preventHorizonBreak(Vec3d original) {
// MinecraftClient client = MinecraftClient.getInstance();
// ClientWorld world = client.world;
// FogManager fogManager = FogManager.getInstance();
// FogManager.FogSettings settings = fogManager.getFogSettings(client.getTickDelta(), client.options.getViewDistance().getValue());
// double hazeValue = HazeCalculator.getHaze((int) world.getTimeOfDay());
// BiomeColourEntry defaultEntry = new BiomeColourEntry(Identifier.of("default", "default"), 0.68f, 0.83f, 1f);
// float fogColorR = (float) MathHelper.lerp(hazeValue, defaultEntry.fogR(), settings.fogR());
// float fogColorG = (float) MathHelper.lerp(hazeValue, defaultEntry.fogG(), settings.fogG());
// float fogColorB = (float) MathHelper.lerp(hazeValue, defaultEntry.fogB(), settings.fogB());
// return original;
// }

@Inject(method = "renderSky(Lnet/minecraft/client/util/math/MatrixStack;Lorg/joml/Matrix4f;FLnet/minecraft/client/render/Camera;ZLjava/lang/Runnable;)V", at = @At("TAIL"))
public void renderSky(MatrixStack matrixStack, Matrix4f projectionMatrix, float deltaTick, Camera camera, boolean isFoggy, Runnable setupFog, CallbackInfo ci) {
// TODO: Check if Iris shaders active before rendering here.
MinecraftClient client = MinecraftClient.getInstance();
ClientWorld world = client.world;
FogManager fogManager = FogManager.getInstance();
Expand Down

0 comments on commit 0714d89

Please sign in to comment.