From 1990f64b703232eee9d3b31086da8a5ac3b5a9f1 Mon Sep 17 00:00:00 2001 From: SmokeyTheBandicoot Date: Fri, 5 Apr 2024 15:07:57 +0200 Subject: [PATCH] Add dimension Blacklist/Whitelist for cloud rendering --- .../java/dev/redstudio/valkyrie/config/ValkyrieConfig.java | 4 ++++ .../java/dev/redstudio/valkyrie/renderer/CloudRenderer.java | 4 +++- src/main/resources/assets/valkyrie/lang/en_us.lang | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/redstudio/valkyrie/config/ValkyrieConfig.java b/src/main/java/dev/redstudio/valkyrie/config/ValkyrieConfig.java index a5e4ac0..c825df8 100644 --- a/src/main/java/dev/redstudio/valkyrie/config/ValkyrieConfig.java +++ b/src/main/java/dev/redstudio/valkyrie/config/ValkyrieConfig.java @@ -58,6 +58,10 @@ public static class CloudsConfig { public boolean enabled = true; + public int[] dimensionList = {}; + + public boolean dimensionListIsBlacklist = true; + public int height = 256; @Config.RangeInt(min = 4) public int renderDistance = 32; diff --git a/src/main/java/dev/redstudio/valkyrie/renderer/CloudRenderer.java b/src/main/java/dev/redstudio/valkyrie/renderer/CloudRenderer.java index e4abd41..dbb9a6a 100644 --- a/src/main/java/dev/redstudio/valkyrie/renderer/CloudRenderer.java +++ b/src/main/java/dev/redstudio/valkyrie/renderer/CloudRenderer.java @@ -22,6 +22,7 @@ import javax.annotation.Nonnull; import java.nio.ByteBuffer; +import java.util.Arrays; import java.util.function.Predicate; import static dev.redstudio.valkyrie.Valkyrie.MC; @@ -203,7 +204,8 @@ private boolean isBuilt() { } public void updateSettings() { - final boolean enabled = ValkyrieConfig.graphics.clouds.enabled && MC.world != null && MC.world.provider.isSurfaceWorld(); + final boolean enabled = ValkyrieConfig.graphics.clouds.enabled && MC.world != null && MC.world.provider.isSurfaceWorld() && + (Arrays.stream(ValkyrieConfig.graphics.clouds.dimensionList).anyMatch(n -> n == MC.world.provider.getDimension()) != ValkyrieConfig.graphics.clouds.dimensionListIsBlacklist); if (isBuilt() && (!enabled || ValkyrieConfig.graphics.clouds.renderDistance != renderDistance || ValkyrieConfig.graphics.clouds.layers != layers)) dispose(); diff --git a/src/main/resources/assets/valkyrie/lang/en_us.lang b/src/main/resources/assets/valkyrie/lang/en_us.lang index a733a83..e1166f5 100644 --- a/src/main/resources/assets/valkyrie/lang/en_us.lang +++ b/src/main/resources/assets/valkyrie/lang/en_us.lang @@ -60,6 +60,10 @@ valkyrie.general.graphics.clouds.tooltip=Configuration for the clouds valkyrie.general.graphics.clouds.enabled=Enabled valkyrie.general.graphics.clouds.enabled.tooltip=Whether or not clouds are enabled +valkyrie.general.graphics.clouds.dimensionlist=Dimension List +valkyrie.general.graphics.clouds.dimensionlist.tooltip=Dimension List where clouds are whitelisted/blacklisted +valkyrie.general.graphics.clouds.dimensionlistisblacklist=Dimension List is Blacklist +valkyrie.general.graphics.clouds.dimensionlistisblacklist.tooltip=If True, Dimension List will be treated as a Blacklist instead of a Whitelist valkyrie.general.graphics.clouds.height=Height valkyrie.general.graphics.clouds.height.tooltip=The height of the clouds valkyrie.general.graphics.clouds.renderdistance=Render Distance