diff --git a/common/src/main/java/com/seibel/lod/common/Config.java b/common/src/main/java/com/seibel/lod/common/Config.java index a2f8639c5..22a7dd84a 100644 --- a/common/src/main/java/com/seibel/lod/common/Config.java +++ b/common/src/main/java/com/seibel/lod/common/Config.java @@ -138,6 +138,10 @@ public class Config extends ConfigGui public static class CloudQuality { + @ConfigAnnotations.Category("client.graphics.cloudQuality") + @ConfigAnnotations.Entry + public static boolean customClouds = false; + @ConfigAnnotations.Category("client.graphics.cloudQuality") @ConfigAnnotations.Entry public static boolean extendClouds = true; diff --git a/common/src/main/resources/assets/lod/lang/en_us.json b/common/src/main/resources/assets/lod/lang/en_us.json index 878a663cf..cd2083699 100644 --- a/common/src/main/resources/assets/lod/lang/en_us.json +++ b/common/src/main/resources/assets/lod/lang/en_us.json @@ -25,6 +25,8 @@ "DistantHorizons.config.client.graphics.fogQuality.disableVanillaFog": "Disable vanilla fog", "DistantHorizons.config.client.graphics.fogQuality.disableVanillaFog.@tooltip": "If true disable Minecraft's fog. \nMay cause issues with other mods that edit fog. \nMay cause errors with other fog editing mods", "DistantHorizons.config.client.graphics.cloudQuality": "Cloud options", + "DistantHorizons.config.client.graphics.cloudQuality.customCloud": "Custom cloud", + "DistantHorizons.config.client.graphics.cloudQuality.customCloud.@tooltip": "Do you want to use a custom way or rendering the clouds. \nIf you turn this off then the other settings here wont do anything \nThis will also make the clouds more dynamic", "DistantHorizons.config.client.graphics.cloudQuality.extendClouds": "Extend the clouds", "DistantHorizons.config.client.graphics.cloudQuality.cloudHeight": "Cloud height", "DistantHorizons.config.client.graphics.advancedGraphics": "Advanced quality option", diff --git a/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java index 8787a107c..5c5cfb04f 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java @@ -92,17 +92,19 @@ public class MixinWorldRenderer @Inject(method = "renderClouds", at = @At("HEAD"), cancellable = true) public void renderClouds(PoseStack poseStack, Matrix4f model, float tickDelta, double cameraX, double cameraY, double cameraZ, CallbackInfo ci) { - TextureManager textureManager = Minecraft.getInstance().getTextureManager(); - registerClouds(textureManager); - NoiseCloudHandler.update(); + if (Config.Client.Graphics.CloudQuality.customClouds) { + TextureManager textureManager = Minecraft.getInstance().getTextureManager(); + registerClouds(textureManager); + NoiseCloudHandler.update(); - if (minecraft.level.dimension() == ClientLevel.OVERWORLD) { - CloudTexture cloudTexture = NoiseCloudHandler.cloudTextures.get(NoiseCloudHandler.cloudTextures.size() - 1); - renderCloudLayer(poseStack, model, tickDelta, cameraX, cameraY, cameraZ, Config.Client.Graphics.CloudQuality.cloudHeight, 0, 1, 1, cloudTexture.resourceLocation); + if (minecraft.level.dimension() == ClientLevel.OVERWORLD) { + CloudTexture cloudTexture = NoiseCloudHandler.cloudTextures.get(NoiseCloudHandler.cloudTextures.size() - 1); + renderCloudLayer(poseStack, model, tickDelta, cameraX, cameraY, cameraZ, Config.Client.Graphics.CloudQuality.cloudHeight, 0, 1, 1, cloudTexture.resourceLocation); + } + + ci.cancel(); } - ci.cancel(); - // get the partial ticks since renderChunkLayer doesn't // have access to them previousPartialTicks = tickDelta;