@@ -41,6 +41,7 @@ private static Identifier id(String path) {
4141 private static final Identifier MULTI_DIMENSION_FOG_OPTION_ID = id ("multi_dimension_fog" );
4242 private static final Identifier PROTECTED_GAMEPLAY_FOG_OPTION_ID = id ("protected_gameplay_fog" );
4343 private static final Identifier WAYLAND_FULLSCREEN_RESOLUTION_OPTION_ID = id ("wayland_fullscreen_resolution" );
44+ private static final Identifier CLOUD_HEIGHT_OVERRIDE_OPTION_ID = id ("cloud_height_override" );
4445 private static final Identifier SODIUM_FULLSCREEN_OPTION_ID = Identifier .parse ("sodium:general.fullscreen" );
4546 private static final Identifier SODIUM_FULLSCREEN_RESOLUTION_OPTION_ID = Identifier .parse ("sodium:general.fullscreen_resolution" );
4647 private static final Identifier SODIUM_VSYNC_OPTION_ID = Identifier .parse ("sodium:general.vsync" );
@@ -79,6 +80,11 @@ private static boolean isProtectedGameplayFogOptionEnabled(ConfigState state) {
7980 && state .readBooleanOption (PROTECTED_GAMEPLAY_FOG_OPTION_ID );
8081 }
8182
83+ private static boolean isCloudHeightOptionEnabled (ConfigState state ) {
84+ return SodiumExtraClientMod .mixinConfig ().getOptions ().get ("mixin.cloud" ).isEnabled ()
85+ && state .readBooleanOption (CLOUD_HEIGHT_OVERRIDE_OPTION_ID );
86+ }
87+
8288 private static SodiumExtraGameOptions .FogSettings fogSettings () {
8389 SodiumExtraGameOptions .RenderSettings renderSettings = SodiumExtraClientMod .options ().renderSettings ;
8490 renderSettings .sanitize ();
@@ -878,8 +884,17 @@ private OptionPageBuilder createExtraPage(ConfigBuilder builder) {
878884 .setBinding ((value ) -> SodiumExtraClientMod .options ().extraSettings .showCoords = value , () -> SodiumExtraClientMod .options ().extraSettings .showCoords )
879885 .setStorageHandler (SodiumExtraClientMod .options ())
880886 )
881- .addOption (builder .createIntegerOption ( id ( "cloud_height" ) )
887+ .addOption (builder .createBooleanOption ( CLOUD_HEIGHT_OVERRIDE_OPTION_ID )
882888 .setEnabled (SodiumExtraClientMod .mixinConfig ().getOptions ().get ("mixin.cloud" ).isEnabled ())
889+ .setName (Component .translatable ("sodium-extra.option.cloud_height_override" ))
890+ .setTooltip (Component .translatable ("sodium-extra.option.cloud_height_override.tooltip" ))
891+ .setDefaultValue (false )
892+ .setBinding ((value ) -> SodiumExtraClientMod .options ().extraSettings .cloudHeightOverride = value , () -> SodiumExtraClientMod .options ().extraSettings .cloudHeightOverride )
893+ .setStorageHandler (SodiumExtraClientMod .options ())
894+ )
895+ .addOption (builder .createIntegerOption (id ("cloud_height" ))
896+ .setEnabledProvider (SodiumExtraConfig ::isCloudHeightOptionEnabled , CLOUD_HEIGHT_OVERRIDE_OPTION_ID )
897+ .setControlHiddenWhenDisabled (false )
883898 .setName (Component .translatable ("sodium-extra.option.cloud_height" ))
884899 .setTooltip (Component .translatable ("sodium-extra.option.cloud_height.tooltip" ))
885900 .setRange (-64 , 319 , 1 )
0 commit comments