@@ -43,6 +43,7 @@ private static Identifier id(String path) {
4343 private static final Identifier MULTI_DIMENSION_FOG_OPTION_ID = id ("multi_dimension_fog" );
4444 private static final Identifier PROTECTED_GAMEPLAY_FOG_OPTION_ID = id ("protected_gameplay_fog" );
4545 private static final Identifier WAYLAND_FULLSCREEN_RESOLUTION_OPTION_ID = id ("wayland_fullscreen_resolution" );
46+ private static final Identifier CLOUD_HEIGHT_OVERRIDE_OPTION_ID = id ("cloud_height_override" );
4647 private static final Identifier SODIUM_FULLSCREEN_MODE_OPTION_ID = Identifier .parse ("sodium:general.fullscreen_mode" );
4748 private static final Identifier SODIUM_FULLSCREEN_RESOLUTION_OPTION_ID = Identifier .parse ("sodium:general.fullscreen_resolution" );
4849 private static final Identifier SODIUM_VSYNC_OPTION_ID = Identifier .parse ("sodium:general.vsync" );
@@ -82,6 +83,11 @@ private static boolean isProtectedGameplayFogOptionEnabled(ConfigState state) {
8283 && state .readBooleanOption (PROTECTED_GAMEPLAY_FOG_OPTION_ID );
8384 }
8485
86+ private static boolean isCloudHeightOptionEnabled (ConfigState state ) {
87+ return SodiumExtraClientMod .mixinConfig ().getOptions ().get ("mixin.cloud" ).isEnabled ()
88+ && state .readBooleanOption (CLOUD_HEIGHT_OVERRIDE_OPTION_ID );
89+ }
90+
8591 private static SodiumExtraGameOptions .FogSettings fogSettings () {
8692 SodiumExtraGameOptions .RenderSettings renderSettings = SodiumExtraClientMod .options ().renderSettings ;
8793 renderSettings .sanitize ();
@@ -884,8 +890,17 @@ private OptionPageBuilder createExtraPage(ConfigBuilder builder) {
884890 .setBinding ((value ) -> SodiumExtraClientMod .options ().extraSettings .showCoords = value , () -> SodiumExtraClientMod .options ().extraSettings .showCoords )
885891 .setStorageHandler (SodiumExtraClientMod .options ())
886892 )
887- .addOption (builder .createIntegerOption ( id ( "cloud_height" ) )
893+ .addOption (builder .createBooleanOption ( CLOUD_HEIGHT_OVERRIDE_OPTION_ID )
888894 .setEnabled (SodiumExtraClientMod .mixinConfig ().getOptions ().get ("mixin.cloud" ).isEnabled ())
895+ .setName (Component .translatable ("sodium-extra.option.cloud_height_override" ))
896+ .setTooltip (Component .translatable ("sodium-extra.option.cloud_height_override.tooltip" ))
897+ .setDefaultValue (false )
898+ .setBinding ((value ) -> SodiumExtraClientMod .options ().extraSettings .cloudHeightOverride = value , () -> SodiumExtraClientMod .options ().extraSettings .cloudHeightOverride )
899+ .setStorageHandler (SodiumExtraClientMod .options ())
900+ )
901+ .addOption (builder .createIntegerOption (id ("cloud_height" ))
902+ .setEnabledProvider (SodiumExtraConfig ::isCloudHeightOptionEnabled , CLOUD_HEIGHT_OVERRIDE_OPTION_ID )
903+ .setControlHiddenWhenDisabled (false )
889904 .setName (Component .translatable ("sodium-extra.option.cloud_height" ))
890905 .setTooltip (Component .translatable ("sodium-extra.option.cloud_height.tooltip" ))
891906 .setRange (-64 , 319 , 1 )
0 commit comments