###############################
#        SETTINGS MENU        #
###############################



screen = <profile> STYLE [PERFORMANCE_MENU] [MATERIALS_MENU] [SHADOWS_MENU] [SHADING_MENU] [LIGHT_COLORS_MENU] [OTHER_COLORS_MENU] [POST_PROCESSING_MENU] [GAMEPLAY_EFFECTS_MENU] [WAVING_MENU] [WATER_MENU] [SKY_MENU] [FOG_MENU] [EXTRAS_MENU] [COMPATIBILITY_MENU]
	
	screen.MATERIALS_MENU = PBR_TYPE [LABPBR_MATERIALS_MENU] [INTERNAL_MATERIALS_MENU] [POM_MENU] FOLIAGE_NOISE_ENABLED FOLIAGE_NOISE_AMOUNT LAVA_NOISE_ENABLED LAVA_NOISE_AMOUNT_OVERWORLD LAVA_NOISE_AMOUNT_NETHER LAVA_NOISE_AMOUNT_END FANCY_NETHER_PORTAL_ENABLED FANCY_END_PORTAL_ENABLED ENCHANTMENT_GLINT_STRENGTH
		
		screen.LABPBR_MATERIALS_MENU = PBR_NORMALS_AMOUNT
		
		screen.INTERNAL_MATERIALS_MENU = EMISSIVE_TEXTURES_ENABLED GLOWING_ORES_STRENGTH_OVERWORLD GLOWING_ORES_STRENGTH_NETHER GLOWING_ORES_STRENGTH_END GLOWING_STEMS_STRENGTH [SPECIFIC_GLOWING_ORES_MENU]
			
			screen.SPECIFIC_GLOWING_ORES_MENU = GLOWING_COAL_ORE_STRENGTH GLOWING_IRON_ORE_STRENGTH GLOWING_COPPER_ORE_STRENGTH GLOWING_GOLD_ORE_STRENGTH GLOWING_REDSTONE_ORE_STRENGTH GLOWING_EMERALD_ORE_STRENGTH GLOWING_LAPIS_ORE_STRENGTH GLOWING_DIAMOND_ORE_STRENGTH GLOWING_NETHER_GOLD_ORE_STRENGTH GLOWING_NETHER_QUARTS_ORE_STRENGTH GLOWING_GILDED_BLACKSTONE_STRENGTH GLOWING_ANCIENT_DEBRIS_STRENGTH
		
		screen.POM_MENU = POM_ENABLED POM_DEPTH POM_QUALITY PBR_NORMALS_AMOUNT
	
	screen.SHADOWS_MENU = OVERWORLD_SHADOWS_TYPE END_SHADOWS_TYPE COLORED_SHADOWS_ENABLED [WATER_CAUSTICS_MENU] SHADOWS_ON_TRANSPARENTS PLAYER_SHADOWS_ENABLED ENTITY_SHADOWS_ENABLED BLOCK_ENTITY_SHADOWS_ENABLED SHADOWS_BRIGHTNESS shadowMapResolution shadowDistance shadowDistanceRenderMul SHADOW_DISTORT_ADDITION SHADOW_FILTERING SHADOWS_NOISE PIXELATED_SHADOWS PIXELATED_SHADOWS_SOFTNESS EXCLUDE_FOLIAGE
		
		screen.WATER_CAUSTICS_MENU=WATER_CAUSTICS_ENABLED WATER_CAUSTICS_SIZE WATER_CAUSTICS_HORIZONTAL_STRETCH WATER_CAUSTICS_SPEED WATER_CAUSTICS_THICKNESS WATER_CAUSTICS_DARK_RED WATER_CAUSTICS_DARK_GREEN WATER_CAUSTICS_DARK_BLUE WATER_CAUSTICS_DARK_BRIGHTNESS WATER_CAUSTICS_BRIGHT_RED WATER_CAUSTICS_BRIGHT_GREEN WATER_CAUSTICS_BRIGHT_BLUE WATER_CAUSTICS_BRIGHT_BRIGHTNESS
	
	screen.SHADING_MENU = VANILLA_AO_BRIGHT VANILLA_AO_DARK SIDE_SHADING_BRIGHT SIDE_SHADING_DARK OVERRIDE_FOLIAGE_NORMALS NIGHT_SATURATION_DECREASE WEATHER_BRIGHTNESS_MULT_DAY WEATHER_BRIGHTNESS_MULT_NIGHT BRIGHTNESS_TWEAKS_STRENGTH [SSAO_MENU] [CEL_SHADING_MENU]
		
		screen.CEL_SHADING_MENU = SUNLIGHT_CEL_AMOUNT AMBIENT_CEL_AMOUNT BLOCKLIGHT_CEL_AMOUNT
		
		screen.COLORED_LIGHTING_MENU = COLORED_LIGHTING_ENABLED COLORED_LIGHTING_DIST
	
	screen.LIGHT_COLORS_MENU = [DAY_LIGHTING_MENU] [NIGHT_LIGHTING_MENU] [SUNRISE_LIGHTING_MENU] [SUNSET_LIGHTING_MENU] [BLOCKLIGHT_LIGHTING_MENU] [CAVE_LIGHTING_MENU] [NETHER_LIGHTING_MENU] [END_LIGHTING_MENU] [HANDHELD_LIGHT_MENU] LIGHTNING_BRIGHTNESS
		
		screen.DAY_LIGHTING_MENU = SKYLIGHT_DAY_RED SKYLIGHT_DAY_GREEN SKYLIGHT_DAY_BLUE SKYLIGHT_DAY_BRIGHTNESS AMBIENT_DAY_RED AMBIENT_DAY_GREEN AMBIENT_DAY_BLUE AMBIENT_DAY_BRIGHTNESS
		
		screen.NIGHT_LIGHTING_MENU = SKYLIGHT_NIGHT_RED SKYLIGHT_NIGHT_GREEN SKYLIGHT_NIGHT_BLUE SKYLIGHT_NIGHT_BRIGHTNESS AMBIENT_NIGHT_RED AMBIENT_NIGHT_GREEN AMBIENT_NIGHT_BLUE AMBIENT_NIGHT_BRIGHTNESS MOON_PHASE_BRIGHTNESS_MULT_1 MOON_PHASE_BRIGHTNESS_MULT_2 MOON_PHASE_BRIGHTNESS_MULT_3 MOON_PHASE_BRIGHTNESS_MULT_4 MOON_PHASE_BRIGHTNESS_MULT_5
		
		screen.SUNRISE_LIGHTING_MENU = SKYLIGHT_SUNRISE_RED SKYLIGHT_SUNRISE_GREEN SKYLIGHT_SUNRISE_BLUE SKYLIGHT_SUNRISE_BRIGHTNESS AMBIENT_SUNRISE_RED AMBIENT_SUNRISE_GREEN AMBIENT_SUNRISE_BLUE AMBIENT_SUNRISE_BRIGHTNESS
		
		screen.SUNSET_LIGHTING_MENU = SKYLIGHT_SUNSET_RED SKYLIGHT_SUNSET_GREEN SKYLIGHT_SUNSET_BLUE SKYLIGHT_SUNSET_BRIGHTNESS AMBIENT_SUNSET_RED AMBIENT_SUNSET_GREEN AMBIENT_SUNSET_BLUE AMBIENT_SUNSET_BRIGHTNESS
		
		screen.BLOCKLIGHT_LIGHTING_MENU = BLOCK_RED_DARK BLOCK_GREEN_DARK BLOCK_BLUE_DARK BLOCK_RED_BRIGHT BLOCK_GREEN_BRIGHT BLOCK_BLUE_BRIGHT BLOCK_BRIGHTNESS BLOCK_BRIGHTNESS_CURVE BLOCK_BRIGHTNESS_NIGHT_MULT BLOCKLIGHT_FLICKERING_ENABLED BLOCKLIGHT_FLICKERING_AMOUNT
		
		screen.CAVE_LIGHTING_MENU = CAVE_AMBIENT_RED CAVE_AMBIENT_GREEN CAVE_AMBIENT_BLUE CAVE_AMBIENT_BRIGHTNESS
		
		screen.NETHER_LIGHTING_MENU = NETHER_AMBIENT_RED NETHER_AMBIENT_GREEN NETHER_AMBIENT_BLUE NETHER_AMBIENT_BRIGHTNESS NETHER_BLOCKLIGHT_RED_MULT NETHER_BLOCKLIGHT_GREEN_MULT NETHER_BLOCKLIGHT_BLUE_MULT NETHER_BLOCKLIGHT_BRIGHTNESS_MULT
		
		screen.END_LIGHTING_MENU = END_SKYLIGHT_RED END_SKYLIGHT_GREEN END_SKYLIGHT_BLUE END_SKYLIGHT_BRIGHTNESS END_AMBIENT_RED END_AMBIENT_GREEN END_AMBIENT_BLUE END_AMBIENT_BRIGHTNESS
		
		screen.HANDHELD_LIGHT_MENU = HANDHELD_LIGHT_ENABLED HANDHELD_LIGHT_DISTANCE HANDHELD_LIGHT_BRIGHTNESS HANDHELD_LIGHT_REALISM
	
	screen.OTHER_COLORS_MENU = [SKY_COLORS_MENU] [CLOUD_COLORS_MENU] [WATER_COLOR_MENU] [IN_LIQUID_FOG_MENU] [HEIGHT_BASED_DESATURATION_MENU] NIGHT_SATURATION_DECREASE NIGHT_VISION_BRIGHTNESS NIGHT_VISION_GREEN_AMOUNT TEXTURE_CONTRAST TEXTURE_CONTRAST_2 FOLIAGE_SATURATION FOLIAGE_TINT_RED FOLIAGE_TINT_GREEN FOLIAGE_TINT_BLUE SNOWY_TWEAKS_ENABLED
		
		screen.HEIGHT_BASED_DESATURATION_MENU = HBD_ENABLED HBD_STRENGTH HBD_SCALE
	
	screen.POST_PROCESSING_MENU = TEMPORAL_FILTER_ENABLED [TEMPORAL_FILTER_SETTINGS_MENU] TAA_ENABLED TAA_JITTER_AMOUNT FXAA_ENABLED [FOG_MENU] [OUTLINES_MENU] [BLOOM_MENU] [SSAO_MENU] [REFLECTION_MENU] [SUNRAYS_MENU] [DOF_MENU] [MOTION_BLUR_MENU] [PAINTED_EFFECT_MENU] [SHARPENING_MENU] [COLOR_PROCESSING_MENU] [VIGNETTE_MENU] [HSV_POSTERIZE_MENU]
		
		screen.TEMPORAL_FILTER_SETTINGS_MENU = TEMPORAL_FILTER_ENABLED TEMPORAL_FILTER_STILL TEMPORAL_FILTER_MOVING TEMPORAL_FILTER_DEPTH TEMPORAL_EXTRA_DEPTH_CHECK
		
		screen.OUTLINES_MENU = OUTLINES_ENABLED OUTLINES_SIZE OUTLINES_RED OUTLINES_GREEN OUTLINES_BLUE <empty> EDGE_HIGHLIGHT_ENABLED EDGE_HIGHLIGHT_SIZE EDGE_HIGHLIGHT_BRIGHTNESS_MULT EDGE_HIGHLIGHT_BRIGHTNESS_LIFT
		
		screen.BLOOM_MENU = BLOOM_ENABLED BLOOM_STYLE BLOOM_QUALITY BLOOM_RENDER_SCALE BLOOM_LEVELS BLOOM_SIZE <empty> <empty> BLOOM_AMOUNT BLOOM_NETHER_AMOUNT BLOOM_END_AMOUNT <empty> EMISSIVES_BLOOM_ENABLED EMISSIVES_BLOOM_AMOUNT BLOOM_LOW_CUTOFF BLOOM_HIGH_CUTOFF BLOOM_DETECT_TINT_RED BLOOM_DETECT_TINT_GREEN BLOOM_DETECT_TINT_BLUE BLOOM_FINAL_TINT_RED BLOOM_FINAL_TINT_GREEN BLOOM_FINAL_TINT_BLUE
		screen.BLOOM_MENU.columns = 2
		
		screen.SSAO_MENU = SSAO_ENABLED AO_AMOUNT_LIT AO_AMOUNT_UNLIT AO_SIZE AO_QUALITY
		
		screen.REFLECTION_MENU = REFLECTIONS_ENABLED REFLECTION_ITERATIONS REFLECTION_DITHER_AMOUNT REFLECTION_FRESNEL BLOCK_REFLECTION_AMOUNT_SURFACE BLOCK_REFLECTION_AMOUNT_UNDERGROUND WATER_REFLECTION_AMOUNT_SURFACE WATER_REFLECTION_AMOUNT_UNDERGROUND REFLECTIONS_BRIGHTNESS
		#RAIN_REFLECTION_AMOUNT RAIN_REFLECTION_COVERAGE RAIN_REFLECTION_MIN RAIN_REFLECTION_SLOPE
		screen.REFLECTION_MENU.columns = 2
		
		screen.SUNRAYS_MENU = DEPTH_SUNRAYS_ENABLED VOL_SUNRAYS_ENABLED [DEPTH_SUNRAYS_MENU] [VOL_SUNRAYS_MENU] SUNRAYS_QUALITY SUNRAYS_WEATHER_MULT SUNRAYS_AMOUNT_DAY SUNRAYS_AMOUNT_NIGHT SUNRAYS_INCREASE_SUNRISE SUNRAYS_INCREASE_SUNSET SUNRAYS_SUN_RED SUNRAYS_SUN_GREEN SUNRAYS_SUN_BLUE SUNRAYS_MOON_RED SUNRAYS_MOON_GREEN SUNRAYS_MOON_BLUE
			
			screen.DEPTH_SUNRAYS_MENU = DEPTH_SUNRAYS_STYLE SUNRAYS_FLICKERING_FIX
			
			screen.VOL_SUNRAYS_MENU = SUNRAYS_UNDERGROUND_MULT SUNRAYS_AMOUNT_MAX_DAY SUNRAYS_AMOUNT_MAX_NIGHT SUNRAYS_BRIGHTNESS_INCREASE
		
		screen.DOF_MENU = DOF_ENABLED DOF_SLOPE_TYPE DOF_NEAR_BLUR_START DOF_FAR_BLUR_START DOF_NEAR_BLUR_SLOPE DOF_FAR_BLUR_SLOPE DOF_NEAR_BLUR_STRENGTH DOF_FAR_BLUR_STRENGTH DOF_MIN_BLUR_STRENGTH DOF_NEAR_BLUR_SIZE DOF_FAR_BLUR_SIZE DOF_LOCKED_FOCAL_PLANE DOF_FOCAL_PLANE_DISTANCE
		
		screen.MOTION_BLUR_MENU = MOTION_BLUR_ENABLED MOTION_BLUR_AMOUNT MOTION_BLUR_QUALITY
		
		screen.PAINTED_EFFECT_MENU = KUWAHARA_ENABLED KUWAHARA_SIZE
		
		screen.SHARPENING_MENU = SHARPENING_ENABLED SHARPEN_AMOUNT SHARPEN_VEL_ADDITION SHARPEN_DEPTH_ADDITION SHARPENING_DETECT_SIZE
		
		screen.COLOR_PROCESSING_MENU = USE_GAMMA_CORRECTION GAMMA OVERWORLD_BRIGHTNESS NETHER_BRIGHTNESS END_BRIGHTNESS AUTO_EXPOSURE_ENABLED AUTO_EXPOSURE_BRIGHT_MULT AUTO_EXPOSURE_DARK_MULT VIBRANCE SATURATION SATURATION_DARK SATURATION_LIGHT SURFACE_CONTRAST UNDERGROUND_CONTRAST TONEMAPPER [COLORBLIND_CORRECTION]
			
			screen.COLORBLIND_CORRECTION = COLORBLIND_MODE COLORBLIND_INTENSITY
		
		screen.VIGNETTE_MENU = VIGNETTE_ENABLED VIGNETTE_SCALE VIGNETTE_AMOUNT_SURFACE VIGNETTE_AMOUNT_UNDERGROUND
		
		screen.HSV_POSTERIZE_MENU = HSV_POSTERIZE_ENABLED HSV_POSTERIZE_HUE_QUALITY HSV_POSTERIZE_SATURATION_QUALITY HSV_POSTERIZE_BRIGHTNESS_QUALITY HSV_POSTERIZE_STEP_SLOPE
	
	screen.GAMEPLAY_EFFECTS_MENU = HEALTH_EFFECT_ENABLED HEALTH_EFFECT_STRENGTH DAMAGE_EFFECT_ENABLED DAMAGE_EFFECT_STRENGTH NEARBY_PARTICLE_TRANSPARENCY COLORED_PARTICLE_TRANSPARENCY ENTITY_FLASH_STRENGTH
	
	screen.WAVING_MENU = [WAVING_BLOCKS_MENU] [WAVING_WATER_MENU] [UNDERWATER_WAVINESS_MENU]
		
		screen.WAVING_BLOCKS_MENU = WAVING_ENABLED WAVING_SPEED WAVING_WORLD_SCALE WAVING_AMOUNT_1 WAVING_AMOUNT_2 WAVING_AMOUNT_3 WAVING_WEATHER_MULT WAVING_NIGHT_MULT HEIGHT_BASED_WAVING_ENABLED
		
		screen.WAVING_WATER_MENU = PHYSICALLY_WAVING_WATER_ENABLED PHYSICALLY_WAVING_WATER_AMOUNT_SURFACE PHYSICALLY_WAVING_WATER_AMOUNT_UNDERGROUND WAVING_WATER_SURFACE_ENABLED WAVING_WATER_SCALE WAVING_WATER_SPEED WAVING_WATER_FRESNEL_SURFACE WAVING_WATER_FRESNEL_UNDERGROUND WAVING_WATER_SURFACE_AMOUNT_SURFACE WAVING_WATER_SURFACE_AMOUNT_UNDERGROUND
		
		screen.UNDERWATER_WAVINESS_MENU = UNDERWATER_WAVINESS_ENABLED UNDERWATER_WAVINESS_AMOUNT UNDERWATER_WAVINESS_SCALE UNDERWATER_WAVINESS_SPEED
	
	screen.WATER_MENU = [WAVING_WATER_MENU] [WATER_COLOR_MENU] [UNDERWATER_WAVINESS_MENU] [WATER_CAUSTICS_MENU] [IN_LIQUID_FOG_MENU] WATER_TRANSPARENCY_SHALLOW WATER_TRANSPARENCY_DEEP WATER_FOAM_ENABLED WATER_FOAM_AMOUNT WATER_FOAM_SIZE
		
		screen.WATER_COLOR_MENU = WATER_TEXTURE_INFLUENCE WATER_BIOME_INFLUENCE WATER_TINT_SHALLOW_RED WATER_TINT_SHALLOW_GREEN WATER_TINT_SHALLOW_BLUE WATER_TINT_SHALLOW_BRIGHTNESS WATER_TINT_DEEP_RED WATER_TINT_DEEP_GREEN WATER_TINT_DEEP_BLUE WATER_TINT_DEEP_BRIGHTNESS
	
	screen.SKY_MENU = [CLOUDS_MENU] [NETHER_CLOUDS_MENU] [END_CLOUDS_MENU] [SKY_COLORS_MENU] [NETHER_SKY_COLORS_MENU] [END_SKY_COLORS_MENU] [CUSTOM_SKYBOXES_MENU] HORIZON_FADE_STRENGTH SUN_BRIGHTNESS SUN_OPACITY MOON_BRIGHTNESS MOON_OPACITY SUN_MOON_WEATHER_OPACITY_DECREASE STARS_BRIGHTNESS sunPathRotation DARKEN_STARS_NEAR_BLOCKLIGHT DARKENED_STARS_BRIGHTNESS WEATHER_TRANSPARENCY WEATHER_HORIZONTAL_AMOUNT SKY_WEATHER_BRIGHTNESS SKY_WEATHER_DESATURATION LIGHTNING_BRIGHTNESS
		
		screen.CLOUDS_MENU = [CLOUD_COLORS_MENU] VANILLA_CLOUD_TRANSPARENCY NEARBY_CLOUD_TRANSPARENCY NEARBY_CLOUD_DIST CLOUD_FOG_START CLOUD_FOG_CURVE VANILLA_CLOUDS_HEIGHT <empty> <empty> <empty> STORY_MODE_CLOUDS_ENABLED STORY_MODE_CLOUDS_CURVE <empty> <empty> REALISTIC_CLOUDS_ENABLED REALISTIC_CLOUD_DENSITY CLOUDS_QUALITY CLOUD_COVERAGE CLOUD_WEATHER_COVERAGE CLOUD_BOTTOM_Y CLOUD_TOP_Y CLOUD_OPACITY_DISTANCE [CLOUD_NOISES_MENU]
		screen.CLOUDS_MENU.columns = 2
			
			screen.CLOUD_COLORS_MENU = CLOUD_DAY_RED CLOUD_DAY_GREEN CLOUD_DAY_BLUE CLOUD_NIGHT_RED CLOUD_NIGHT_GREEN CLOUD_NIGHT_BLUE CLOUD_SUNRISE_RED CLOUD_SUNRISE_GREEN CLOUD_SUNRISE_BLUE CLOUD_SUNSET_RED CLOUD_SUNSET_GREEN CLOUD_SUNSET_BLUE CLOUD_BOTTOM_TINT_RED CLOUD_BOTTOM_TINT_GREEN CLOUD_BOTTOM_TINT_BLUE CLOUD_WEATHER_TINT_RED CLOUD_WEATHER_TINT_GREEN CLOUD_WEATHER_TINT_BLUE
			screen.CLOUD_COLORS_MENU.columns = 3
			
			screen.CLOUD_NOISES_MENU = CLOUD_LAYER_1_SCALE CLOUD_LAYER_1_WEIGHT CLOUD_LAYER_1_SPEED CLOUD_LAYER_2_SCALE CLOUD_LAYER_2_WEIGHT CLOUD_LAYER_2_SPEED CLOUD_LAYER_3_SCALE CLOUD_LAYER_3_WEIGHT CLOUD_LAYER_3_SPEED CLOUD_LAYER_4_SCALE CLOUD_LAYER_4_WEIGHT CLOUD_LAYER_4_SPEED
		
		screen.NETHER_CLOUDS_MENU=NETHER_CLOUDS_ENABLED NETHER_CLOUDS_SCALE NETHER_CLOUDS_COVERAGE NETHER_CLOUDS_DENSITY NETHER_CLOUDS_TRANSPARENCY NETHER_CLOUDS_BASE_RED NETHER_CLOUDS_BASE_GREEN NETHER_CLOUDS_BASE_BLUE NETHER_CLOUDS_FOG_INFLUENCE NETHER_CLOUDS_TINT_RED NETHER_CLOUDS_TINT_GREEN NETHER_CLOUDS_TINT_BLUE
		
		screen.END_CLOUDS_MENU=END_CLOUDS_ENABLED END_CLOUDS_TYPE END_CLOUDS_SCALE END_CLOUDS_COVERAGE END_CLOUDS_TRANSPARENCY END_CLOUDS_RED_DARK END_CLOUDS_GREEN_DARK END_CLOUDS_BLUE_DARK END_CLOUDS_RED_BRIGHT END_CLOUDS_GREEN_BRIGHT END_CLOUDS_BLUE_BRIGHT
		
		screen.SKY_COLORS_MENU = SKY_DAY_RED SKY_DAY_GREEN SKY_DAY_BLUE SKY_DAY_BRIGHTNESS SKY_NIGHT_RED SKY_NIGHT_GREEN SKY_NIGHT_BLUE SKY_NIGHT_BRIGHTNESS SKY_HORIZON_DAY_RED SKY_HORIZON_DAY_GREEN SKY_HORIZON_DAY_BLUE SKY_HORIZON_DAY_BRIGHTNESS SKY_HORIZON_NIGHT_RED SKY_HORIZON_NIGHT_GREEN SKY_HORIZON_NIGHT_BLUE SKY_HORIZON_NIGHT_BRIGHTNESS SKY_HORIZON_SUNRISE_RED SKY_HORIZON_SUNRISE_GREEN SKY_HORIZON_SUNRISE_BLUE SKY_HORIZON_SUNRISE_BRIGHTNESS SKY_HORIZON_SUNSET_RED SKY_HORIZON_SUNSET_GREEN SKY_HORIZON_SUNSET_BLUE SKY_HORIZON_SUNSET_BRIGHTNESS SUNRISE_SUNSET_TOP_HEIGHT SUNRISE_SUNSET_BOTTOM_HEIGHT
		
		screen.NETHER_SKY_COLORS_MENU = NETHER_SKY_BASE_RED NETHER_SKY_BASE_GREEN NETHER_SKY_BASE_BLUE NETHER_SKY_FOG_INFLUENCE NETHER_SKY_FOG_SATURATION NETHER_SKY_TINT_RED NETHER_SKY_TINT_GREEN NETHER_SKY_TINT_BLUE
		
		screen.END_SKY_COLORS_MENU = END_SKY_RED END_SKY_GREEN END_SKY_BLUE END_STATIC_RED END_STATIC_GREEN END_STATIC_BLUE
		
		screen.CUSTOM_SKYBOXES_MENU = CUSTOM_OVERWORLD_SKYBOX OVERWORLD_SKYBOX_BRIGHTNESS CUSTOM_OVERWORLD_SKY_BRIGHTNESS CUSTOM_OVERWORLD_SKY_SATURATION CUSTOM_NETHER_SKYBOX NETHER_SKYBOX_BRIGHTNESS CUSTOM_END_SKYBOX END_SKYBOX_BRIGHTNESS
	
	screen.FOG_MENU = [BORDER_FOG_MENU] [ATMOSPHERIC_FOG_MENU] [IN_LIQUID_FOG_MENU] UNDERGROUND_FOG_CONDITION UNDERGROUND_FOG_COLOR_TYPE UNDERGROUND_FOG_BRIGHTNESS END_FOG_RED END_FOG_GREEN END_FOG_BLUE
		
		screen.BORDER_FOG_MENU = BORDER_FOG_ENABLED BORDER_FOG_START_OVERWORLD BORDER_FOG_START_NETHER BORDER_FOG_START_END BORDER_FOG_END BORDER_FOG_CURVE_OVERWORLD BORDER_FOG_CURVE_NETHER BORDER_FOG_CURVE_END CYLINDRICAL_CLIPPING FOG_BUG_RECREATION VOXY_BORDER_FOG_DIST_MULT
		
		screen.ATMOSPHERIC_FOG_MENU = DAY_ATMOSPHERIC_FOG_DENSITY NIGHT_ATMOSPHERIC_FOG_DENSITY SUNRISE_ATMOSPHERIC_FOG_DENSITY SUNSET_ATMOSPHERIC_FOG_DENSITY UNDERGROUND_FOG_DENSITY WEATHER_FOG_DENSITY PALE_GARDEN_FOG_DENSITY PALE_GARDEN_FOG_NIGHT_DENSITY BLINDNESS_EFFECT_FOG_DENSITY DARKNESS_EFFECT_FOG_DENSITY NETHER_FOG_DENSITY END_FOG_DENSITY
		
		screen.IN_LIQUID_FOG_MENU = WATER_FOG_BASE_RED WATER_FOG_BASE_GREEN WATER_FOG_BASE_BLUE WATER_VANILLA_FOG_INFLUENCE WATER_VANILLA_FOG_SATURATION WATER_FOG_TINT_RED WATER_FOG_TINT_GREEN WATER_FOG_TINT_BLUE WATER_FOG_DENSITY LAVA_FOG_RED LAVA_FOG_GREEN LAVA_FOG_BLUE LAVA_FOG_DENSITY POWDERED_SNOW_FOG_RED POWDERED_SNOW_FOG_GREEN POWDERED_SNOW_FOG_BLUE POWDERED_SNOW_FOG_DENSITY
		screen.IN_LIQUID_FOG_MENU.columns = 2
	
	screen.PERFORMANCE_MENU = OVERWORLD_SHADOWS_TYPE END_SHADOWS_TYPE COLORED_SHADOWS_ENABLED SHADOWS_ON_TRANSPARENTS PLAYER_SHADOWS_ENABLED ENTITY_SHADOWS_ENABLED BLOCK_ENTITY_SHADOWS_ENABLED shadowMapResolution shadowDistance shadowDistanceRenderMul SHADOW_FILTERING TEMPORAL_FILTER_ENABLED TEMPORAL_EXTRA_DEPTH_CHECK TAA_ENABLED FXAA_ENABLED BLOOM_QUALITY BLOOM_RENDER_SCALE BLOOM_LEVELS AO_QUALITY POM_ENABLED POM_QUALITY REFLECTION_ITERATIONS DEPTH_SUNRAYS_ENABLED VOL_SUNRAYS_ENABLED SUNRAYS_QUALITY MOTION_BLUR_QUALITY SHARPENING_ENABLED WAVING_ENABLED REALISTIC_CLOUDS_ENABLED NETHER_CLOUDS_ENABLED END_CLOUDS_ENABLED CLOUDS_QUALITY
	
	screen.EXTRAS_MENU = [SUPER_SECRET_MENU] PROJECTION_TYPE [ISOMETRIC_MENU] [PANINI_MENU] DO_COLOR_CODED_GBUFFERS HAND_DEPTH SHOW_DANGEROUS_LIGHT REFLECTIVE_EVERYTHING BSL_MODE HORROR_MODE
		
		screen.SUPER_SECRET_MENU = SSS_PIXELS SSS_DECONVERGE SSS_DECONVERGE_AMOUNT SSS_DECONVERGE_QUALITY SSS_FLIP SSS_POSTERIZE SSS_POSTERIZE_QUALITY SSS_NOTCH SSS_NOTCH_QUALITY SSS_BUMPY SSS_SCANLINES SSS_SCANLINES_AMOUNT SSS_SCANLINES_SCALE SSS_PHOSPHOR SSS_PHOSPHOR_AMOUNT SSS_PHOSPHOR_CURVE SSS_INVERT SSS_BARREL SSS_BARREL_AMOUNT SSS_NTSC SSS_LIDAR
		screen.SUPER_SECRET_MENU.columns = 2
		
		screen.ISOMETRIC_MENU = ISOMETRIC_WORLD_SCALE ISOMETRIC_BACKWARD_VISIBILITY ISOMETRIC_FORWARD_VISIBILITY
		
		screen.PANINI_MENU = PANINI_PROJECTION_ENABLED PANINI_PROJECTION_STRENGTH PANINI_SAMPLING_METHOD PANINI_SHARPENING_STILL PANINI_SHARPENING_MOVING
	
	screen.COMPATIBILITY_MENU = CLOUD_COMPATIBILITY MATRIX_COMPATIBILITY FOG_IGNORES_TRANSPARENTS VANILLA_CLOUDS_HEIGHT



sliders = SIDE_SHADING_BRIGHT SIDE_SHADING_DARK VANILLA_AO_BRIGHT VANILLA_AO_DARK BLOCK_RED_DARK BLOCK_GREEN_DARK BLOCK_BLUE_DARK BLOCK_RED_BRIGHT BLOCK_GREEN_BRIGHT BLOCK_BLUE_BRIGHT BLOCK_BRIGHTNESS SKYLIGHT_DAY_BRIGHTNESS SKYLIGHT_DAY_RED SKYLIGHT_DAY_BLUE SKYLIGHT_DAY_GREEN AMBIENT_DAY_BRIGHTNESS AMBIENT_DAY_RED AMBIENT_DAY_BLUE AMBIENT_DAY_GREEN SKYLIGHT_NIGHT_BRIGHTNESS SKYLIGHT_NIGHT_RED SKYLIGHT_NIGHT_BLUE SKYLIGHT_NIGHT_GREEN AMBIENT_NIGHT_BRIGHTNESS MOON_PHASE_BRIGHTNESS_MULT_1 MOON_PHASE_BRIGHTNESS_MULT_2 MOON_PHASE_BRIGHTNESS_MULT_3 MOON_PHASE_BRIGHTNESS_MULT_4 MOON_PHASE_BRIGHTNESS_MULT_5 AMBIENT_NIGHT_RED AMBIENT_NIGHT_BLUE AMBIENT_NIGHT_GREEN SKYLIGHT_SUNRISE_BRIGHTNESS SKYLIGHT_SUNRISE_RED SKYLIGHT_SUNRISE_BLUE SKYLIGHT_SUNRISE_GREEN AMBIENT_SUNRISE_BRIGHTNESS AMBIENT_SUNRISE_RED AMBIENT_SUNRISE_BLUE AMBIENT_SUNRISE_GREEN SKYLIGHT_SUNSET_BRIGHTNESS SKYLIGHT_SUNSET_RED SKYLIGHT_SUNSET_BLUE SKYLIGHT_SUNSET_GREEN AMBIENT_SUNSET_BRIGHTNESS AMBIENT_SUNSET_RED AMBIENT_SUNSET_BLUE AMBIENT_SUNSET_GREEN GAMMA OVERWORLD_BRIGHTNESS NETHER_BRIGHTNESS END_BRIGHTNESS SATURATION SATURATION_DARK SATURATION_LIGHT VIBRANCE SURFACE_CONTRAST UNDERGROUND_CONTRAST TAA_JITTER_AMOUNT TEMPORAL_FILTER_STILL TEMPORAL_FILTER_MOVING TEMPORAL_FILTER_DEPTH OUTLINES_SIZE OUTLINES_RED OUTLINES_GREEN OUTLINES_BLUE EDGE_HIGHLIGHT_SIZE EDGE_HIGHLIGHT_BRIGHTNESS_MULT EDGE_HIGHLIGHT_BRIGHTNESS_LIFT BLOOM_AMOUNT EMISSIVES_BLOOM_AMOUNT BLOOM_QUALITY BLOOM_LEVELS BLOOM_SIZE BLOOM_RENDER_SCALE BLOOM_LOW_CUTOFF BLOOM_HIGH_CUTOFF BLOOM_DETECT_TINT_RED BLOOM_DETECT_TINT_GREEN BLOOM_DETECT_TINT_BLUE BLOOM_FINAL_TINT_RED BLOOM_FINAL_TINT_GREEN BLOOM_FINAL_TINT_BLUE SHARPEN_AMOUNT SUNRAYS_QUALITY SUNRAYS_AMOUNT_DAY SUNRAYS_AMOUNT_NIGHT SUNRAYS_INCREASE_SUNRISE SUNRAYS_INCREASE_SUNSET VIGNETTE_AMOUNT_SURFACE VIGNETTE_AMOUNT_UNDERGROUND VIGNETTE_SCALE WAVING_SPEED WAVING_WORLD_SCALE WAVING_AMOUNT_1 WAVING_AMOUNT_2 WAVING_AMOUNT_3 WAVING_WEATHER_MULT WAVING_NIGHT_MULT WEATHER_BRIGHTNESS_MULT_DAY WEATHER_BRIGHTNESS_MULT_NIGHT HANDHELD_LIGHT_DISTANCE HANDHELD_LIGHT_BRIGHTNESS HANDHELD_LIGHT_REALISM AO_AMOUNT_LIT AO_AMOUNT_UNLIT AO_SIZE AO_QUALITY SUNRAYS_SUN_RED SUNRAYS_SUN_GREEN SUNRAYS_SUN_BLUE SUNRAYS_MOON_RED SUNRAYS_MOON_GREEN SUNRAYS_MOON_BLUE BORDER_FOG_CURVE_OVERWORLD BORDER_FOG_CURVE_NETHER BORDER_FOG_CURVE_END VOXY_BORDER_FOG_DIST_MULT DOF_NEAR_BLUR_START DOF_NEAR_BLUR_SLOPE DOF_NEAR_BLUR_STRENGTH DOF_NEAR_BLUR_SIZE DOF_FAR_BLUR_START DOF_FAR_BLUR_SLOPE DOF_FAR_BLUR_STRENGTH DOF_FAR_BLUR_SIZE DOF_MIN_BLUR_STRENGTH MOTION_BLUR_AMOUNT MOTION_BLUR_QUALITY DOF_FOCAL_PLANE_DISTANCE REFLECTION_ITERATIONS REFLECTION_DITHER_AMOUNT CAVE_AMBIENT_BRIGHTNESS CAVE_AMBIENT_RED CAVE_AMBIENT_GREEN CAVE_AMBIENT_BLUE SHADOW_DISTORT_ADDITION BLOCK_REFLECTION_AMOUNT_SURFACE BLOCK_REFLECTION_AMOUNT_UNDERGROUND WATER_REFLECTION_AMOUNT_SURFACE WATER_REFLECTION_AMOUNT_UNDERGROUND REFLECTIONS_BRIGHTNESS UNDERWATER_WAVINESS_AMOUNT UNDERWATER_WAVINESS_SCALE UNDERWATER_WAVINESS_SPEED VANILLA_CLOUD_TRANSPARENCY WEATHER_TRANSPARENCY BORDER_FOG_START_OVERWORLD BORDER_FOG_START_NETHER BORDER_FOG_START_END BORDER_FOG_END shadowMapResolution shadowDistance shadowDistanceRenderMul SHADOWS_NOISE sunPathRotation STARS_BRIGHTNESS DARKENED_STARS_BRIGHTNESS WATER_TRANSPARENCY_SHALLOW WATER_TRANSPARENCY_DEEP WATER_FOAM_AMOUNT WATER_FOAM_SIZE ISOMETRIC_WORLD_SCALE ISOMETRIC_BACKWARD_VISIBILITY ISOMETRIC_FORWARD_VISIBILITY HORIZON_FADE_STRENGTH SUN_BRIGHTNESS SUN_OPACITY MOON_BRIGHTNESS MOON_OPACITY SUN_MOON_WEATHER_OPACITY_DECREASE NETHER_BLOCKLIGHT_RED_MULT NETHER_BLOCKLIGHT_GREEN_MULT NETHER_BLOCKLIGHT_BLUE_MULT SSS_NOTCH_QUALITY SSS_DECONVERGE_QUALITY SSS_DECONVERGE_AMOUNT SSS_PHOSPHOR_AMOUNT SSS_PHOSPHOR_CURVE SSS_POSTERIZE_QUALITY SSS_PIXELS SHARPEN_VEL_ADDITION SHARPEN_DEPTH_ADDITION SSS_BARREL_AMOUNT SSS_SCANLINES_AMOUNT SSS_SCANLINES_SCALE AUTO_EXPOSURE_BRIGHT_MULT AUTO_EXPOSURE_DARK_MULT BLOCK_BRIGHTNESS_CURVE PHYSICALLY_WAVING_WATER_AMOUNT_SURFACE WAVING_WATER_SURFACE_AMOUNT_SURFACE PHYSICALLY_WAVING_WATER_AMOUNT_UNDERGROUND WAVING_WATER_SURFACE_AMOUNT_UNDERGROUND BLOCKLIGHT_FLICKERING_AMOUNT SUNRAYS_BRIGHTNESS_INCREASE WEATHER_HORIZONTAL_AMOUNT SUNRAYS_WEATHER_MULT HSV_POSTERIZE_HUE_QUALITY HSV_POSTERIZE_SATURATION_QUALITY HSV_POSTERIZE_BRIGHTNESS_QUALITY HSV_POSTERIZE_STEP_SLOPE BLOCK_BRIGHTNESS_NIGHT_MULT END_SKYLIGHT_RED END_SKYLIGHT_GREEN END_SKYLIGHT_BLUE END_SKYLIGHT_BRIGHTNESS END_AMBIENT_RED END_AMBIENT_GREEN END_AMBIENT_BLUE END_AMBIENT_BRIGHTNESS NETHER_AMBIENT_RED NETHER_AMBIENT_GREEN NETHER_AMBIENT_BLUE NETHER_AMBIENT_BRIGHTNESS NETHER_BLOCKLIGHT_BRIGHTNESS_MULT SUNRAYS_UNDERGROUND_MULT SUNRAYS_AMOUNT_MAX_DAY SUNRAYS_AMOUNT_MAX_NIGHT REFLECTION_FRESNEL BLOOM_NETHER_AMOUNT BLOOM_END_AMOUNT WAVING_WATER_FRESNEL_SURFACE WAVING_WATER_FRESNEL_UNDERGROUND WAVING_WATER_SCALE WAVING_WATER_SPEED WATER_TINT_SHALLOW_RED WATER_TINT_SHALLOW_GREEN WATER_TINT_SHALLOW_BLUE WATER_TINT_SHALLOW_BRIGHTNESS WATER_TINT_DEEP_RED WATER_TINT_DEEP_GREEN WATER_TINT_DEEP_BLUE WATER_TINT_DEEP_BRIGHTNESS WATER_TEXTURE_INFLUENCE WATER_BIOME_INFLUENCE NIGHT_VISION_BRIGHTNESS NIGHT_VISION_GREEN_AMOUNT NEARBY_CLOUD_TRANSPARENCY NEARBY_CLOUD_DIST CLOUD_FOG_START CLOUD_FOG_CURVE VANILLA_CLOUDS_HEIGHT SKY_DAY_RED SKY_DAY_GREEN SKY_DAY_BLUE SKY_DAY_BRIGHTNESS SKY_NIGHT_RED SKY_NIGHT_GREEN SKY_NIGHT_BLUE SKY_NIGHT_BRIGHTNESS SKY_HORIZON_DAY_RED SKY_HORIZON_DAY_GREEN SKY_HORIZON_DAY_BLUE SKY_HORIZON_DAY_BRIGHTNESS SKY_HORIZON_NIGHT_RED SKY_HORIZON_NIGHT_GREEN SKY_HORIZON_NIGHT_BLUE SKY_HORIZON_NIGHT_BRIGHTNESS SKY_HORIZON_SUNRISE_RED SKY_HORIZON_SUNRISE_GREEN SKY_HORIZON_SUNRISE_BLUE SKY_HORIZON_SUNRISE_BRIGHTNESS SKY_HORIZON_SUNSET_RED SKY_HORIZON_SUNSET_GREEN SKY_HORIZON_SUNSET_BLUE SKY_HORIZON_SUNSET_BRIGHTNESS SUNRISE_SUNSET_TOP_HEIGHT SUNRISE_SUNSET_BOTTOM_HEIGHT NETHER_SKY_BASE_RED NETHER_SKY_BASE_GREEN NETHER_SKY_BASE_BLUE NETHER_SKY_FOG_INFLUENCE NETHER_SKY_FOG_SATURATION NETHER_SKY_TINT_RED NETHER_SKY_TINT_GREEN NETHER_SKY_TINT_BLUE END_SKY_RED END_SKY_GREEN END_SKY_BLUE END_STATIC_RED END_STATIC_GREEN END_STATIC_BLUE OVERWORLD_SKYBOX_BRIGHTNESS CUSTOM_OVERWORLD_SKY_BRIGHTNESS CUSTOM_OVERWORLD_SKY_SATURATION NETHER_SKYBOX_BRIGHTNESS END_SKYBOX_BRIGHTNESS REALISTIC_CLOUD_DENSITY STORY_MODE_CLOUDS_CURVE CLOUDS_QUALITY CLOUD_COVERAGE CLOUD_WEATHER_COVERAGE CLOUD_BOTTOM_Y CLOUD_TOP_Y CLOUD_OPACITY_DISTANCE CLOUD_LAYER_1_SCALE CLOUD_LAYER_1_WEIGHT CLOUD_LAYER_1_SPEED CLOUD_LAYER_2_SCALE CLOUD_LAYER_2_WEIGHT CLOUD_LAYER_2_SPEED CLOUD_LAYER_3_SCALE CLOUD_LAYER_3_WEIGHT CLOUD_LAYER_3_SPEED CLOUD_LAYER_4_SCALE CLOUD_LAYER_4_WEIGHT CLOUD_LAYER_4_SPEED CLOUD_DAY_RED CLOUD_DAY_GREEN CLOUD_DAY_BLUE CLOUD_NIGHT_RED CLOUD_NIGHT_GREEN CLOUD_NIGHT_BLUE CLOUD_SUNRISE_RED CLOUD_SUNRISE_GREEN CLOUD_SUNRISE_BLUE CLOUD_SUNSET_RED CLOUD_SUNSET_GREEN CLOUD_SUNSET_BLUE CLOUD_BOTTOM_TINT_RED CLOUD_BOTTOM_TINT_GREEN CLOUD_BOTTOM_TINT_BLUE CLOUD_WEATHER_TINT_RED CLOUD_WEATHER_TINT_GREEN CLOUD_WEATHER_TINT_BLUE PIXELATED_SHADOWS PIXELATED_SHADOWS_SOFTNESS WATER_CAUSTICS_SIZE WATER_CAUSTICS_HORIZONTAL_STRETCH WATER_CAUSTICS_SPEED WATER_CAUSTICS_THICKNESS WATER_CAUSTICS_DARK_RED WATER_CAUSTICS_DARK_GREEN WATER_CAUSTICS_DARK_BLUE WATER_CAUSTICS_DARK_BRIGHTNESS WATER_CAUSTICS_BRIGHT_RED WATER_CAUSTICS_BRIGHT_GREEN WATER_CAUSTICS_BRIGHT_BLUE WATER_CAUSTICS_BRIGHT_BRIGHTNESS DAY_ATMOSPHERIC_FOG_DENSITY NIGHT_ATMOSPHERIC_FOG_DENSITY SUNRISE_ATMOSPHERIC_FOG_DENSITY SUNSET_ATMOSPHERIC_FOG_DENSITY NETHER_FOG_DENSITY END_FOG_DENSITY WEATHER_FOG_DENSITY PALE_GARDEN_FOG_DENSITY PALE_GARDEN_FOG_NIGHT_DENSITY BLINDNESS_EFFECT_FOG_DENSITY DARKNESS_EFFECT_FOG_DENSITY WATER_FOG_BASE_RED WATER_FOG_BASE_GREEN WATER_FOG_BASE_BLUE WATER_VANILLA_FOG_INFLUENCE WATER_VANILLA_FOG_SATURATION WATER_FOG_TINT_RED WATER_FOG_TINT_GREEN WATER_FOG_TINT_BLUE WATER_FOG_DENSITY LAVA_FOG_RED LAVA_FOG_GREEN LAVA_FOG_BLUE LAVA_FOG_DENSITY POWDERED_SNOW_FOG_RED POWDERED_SNOW_FOG_GREEN POWDERED_SNOW_FOG_BLUE POWDERED_SNOW_FOG_DENSITY HEALTH_EFFECT_STRENGTH DAMAGE_EFFECT_STRENGTH POM_DEPTH POM_QUALITY FOLIAGE_NOISE_AMOUNT LAVA_NOISE_AMOUNT_OVERWORLD LAVA_NOISE_AMOUNT_NETHER LAVA_NOISE_AMOUNT_END ENCHANTMENT_GLINT_STRENGTH PBR_NORMALS_AMOUNT GLOWING_ORES_STRENGTH_OVERWORLD GLOWING_ORES_STRENGTH_NETHER GLOWING_ORES_STRENGTH_END GLOWING_STEMS_STRENGTH GLOWING_COAL_ORE_STRENGTH GLOWING_IRON_ORE_STRENGTH GLOWING_COPPER_ORE_STRENGTH GLOWING_GOLD_ORE_STRENGTH GLOWING_REDSTONE_ORE_STRENGTH GLOWING_EMERALD_ORE_STRENGTH GLOWING_LAPIS_ORE_STRENGTH GLOWING_DIAMOND_ORE_STRENGTH GLOWING_NETHER_GOLD_ORE_STRENGTH GLOWING_NETHER_QUARTS_ORE_STRENGTH GLOWING_GILDED_BLACKSTONE_STRENGTH GLOWING_ANCIENT_DEBRIS_STRENGTH NIGHT_SATURATION_DECREASE NEARBY_PARTICLE_TRANSPARENCY COLORED_PARTICLE_TRANSPARENCY ENTITY_FLASH_STRENGTH HAND_DEPTH BRIGHTNESS_TWEAKS_STRENGTH TEXTURE_CONTRAST TEXTURE_CONTRAST_2 UNDERGROUND_FOG_DENSITY UNDERGROUND_FOG_BRIGHTNESS END_FOG_RED END_FOG_GREEN END_FOG_BLUE SHADOWS_BRIGHTNESS FOLIAGE_SATURATION FOLIAGE_TINT_RED FOLIAGE_TINT_GREEN FOLIAGE_TINT_BLUE HBD_STRENGTH HBD_SCALE SUNLIGHT_CEL_AMOUNT AMBIENT_CEL_AMOUNT BLOCKLIGHT_CEL_AMOUNT KUWAHARA_SIZE SKY_WEATHER_BRIGHTNESS SKY_WEATHER_DESATURATION LIGHTNING_BRIGHTNESS NETHER_CLOUDS_COVERAGE NETHER_CLOUDS_SCALE NETHER_CLOUDS_DENSITY NETHER_CLOUDS_TRANSPARENCY NETHER_CLOUDS_BASE_RED NETHER_CLOUDS_BASE_GREEN NETHER_CLOUDS_BASE_BLUE NETHER_CLOUDS_FOG_INFLUENCE NETHER_CLOUDS_TINT_RED NETHER_CLOUDS_TINT_GREEN NETHER_CLOUDS_TINT_BLUE END_CLOUDS_SCALE END_CLOUDS_COVERAGE END_CLOUDS_TRANSPARENCY END_CLOUDS_RED_DARK END_CLOUDS_GREEN_DARK END_CLOUDS_BLUE_DARK END_CLOUDS_RED_BRIGHT END_CLOUDS_GREEN_BRIGHT END_CLOUDS_BLUE_BRIGHT PANINI_PROJECTION_STRENGTH PANINI_SHARPENING_STILL PANINI_SHARPENING_MOVING



profile.POTATO      =  REFLECTIONS_ENABLED=0  REFLECTION_ITERATIONS=20   WAVING_WATER_SURFACE_ENABLED=0   OVERWORLD_SHADOWS_TYPE=1  END_SHADOWS_TYPE=1  SHADOWS_ON_TRANSPARENTS=0  ENTITY_SHADOWS_ENABLED=0  BLOCK_ENTITY_SHADOWS_ENABLED=0  SHADOW_FILTERING=0  COLORED_SHADOWS_ENABLED=0  shadowMapResolution=256    shadowDistance=112.0   POM_QUALITY=16   SSAO_ENABLED=0  AO_QUALITY=2   BLOOM_ENABLED=0  BLOOM_QUALITY=1  BLOOM_RENDER_SCALE=3  DEPTH_SUNRAYS_ENABLED=0   VOL_SUNRAYS_ENABLED=0   SUNRAYS_QUALITY=2   TEMPORAL_FILTER_ENABLED=0  FXAA_ENABLED=0  SHARPENING_ENABLED=0  CLOUDS_QUALITY=2
profile.VERY_LOW    =  REFLECTIONS_ENABLED=0  REFLECTION_ITERATIONS=25   WAVING_WATER_SURFACE_ENABLED=0   OVERWORLD_SHADOWS_TYPE=1  END_SHADOWS_TYPE=1  SHADOWS_ON_TRANSPARENTS=0  ENTITY_SHADOWS_ENABLED=0  BLOCK_ENTITY_SHADOWS_ENABLED=0  SHADOW_FILTERING=0  COLORED_SHADOWS_ENABLED=0  shadowMapResolution=512    shadowDistance=128.0   POM_QUALITY=24   SSAO_ENABLED=1  AO_QUALITY=2   BLOOM_ENABLED=1  BLOOM_QUALITY=1  BLOOM_RENDER_SCALE=3  DEPTH_SUNRAYS_ENABLED=0   VOL_SUNRAYS_ENABLED=0   SUNRAYS_QUALITY=3   TEMPORAL_FILTER_ENABLED=2  FXAA_ENABLED=0  SHARPENING_ENABLED=1  CLOUDS_QUALITY=4
profile.LOW         =  REFLECTIONS_ENABLED=1  REFLECTION_ITERATIONS=30   WAVING_WATER_SURFACE_ENABLED=-1  OVERWORLD_SHADOWS_TYPE=2  END_SHADOWS_TYPE=2  SHADOWS_ON_TRANSPARENTS=0  ENTITY_SHADOWS_ENABLED=0  BLOCK_ENTITY_SHADOWS_ENABLED=0  SHADOW_FILTERING=2  COLORED_SHADOWS_ENABLED=0  shadowMapResolution=768    shadowDistance=192.0   POM_QUALITY=32   SSAO_ENABLED=1  AO_QUALITY=2   BLOOM_ENABLED=1  BLOOM_QUALITY=2  BLOOM_RENDER_SCALE=3  DEPTH_SUNRAYS_ENABLED=-1  VOL_SUNRAYS_ENABLED=-1  SUNRAYS_QUALITY=4   TEMPORAL_FILTER_ENABLED=2  FXAA_ENABLED=0  SHARPENING_ENABLED=1  CLOUDS_QUALITY=6
profile.MEDIUM      =  REFLECTIONS_ENABLED=1  REFLECTION_ITERATIONS=45   WAVING_WATER_SURFACE_ENABLED=-1  OVERWORLD_SHADOWS_TYPE=2  END_SHADOWS_TYPE=2  SHADOWS_ON_TRANSPARENTS=1  ENTITY_SHADOWS_ENABLED=1  BLOCK_ENTITY_SHADOWS_ENABLED=1  SHADOW_FILTERING=3  COLORED_SHADOWS_ENABLED=1  shadowMapResolution=1280   shadowDistance=224.0   POM_QUALITY=48   SSAO_ENABLED=1  AO_QUALITY=3   BLOOM_ENABLED=1  BLOOM_QUALITY=2  BLOOM_RENDER_SCALE=2  DEPTH_SUNRAYS_ENABLED=-1  VOL_SUNRAYS_ENABLED=-1  SUNRAYS_QUALITY=6   TEMPORAL_FILTER_ENABLED=2  FXAA_ENABLED=2  SHARPENING_ENABLED=1  CLOUDS_QUALITY=8
profile.HIGH        =  REFLECTIONS_ENABLED=1  REFLECTION_ITERATIONS=75   WAVING_WATER_SURFACE_ENABLED=-1  OVERWORLD_SHADOWS_TYPE=2  END_SHADOWS_TYPE=2  SHADOWS_ON_TRANSPARENTS=1  ENTITY_SHADOWS_ENABLED=1  BLOCK_ENTITY_SHADOWS_ENABLED=1  SHADOW_FILTERING=4  COLORED_SHADOWS_ENABLED=1  shadowMapResolution=2048   shadowDistance=320.0   POM_QUALITY=64   SSAO_ENABLED=1  AO_QUALITY=4   BLOOM_ENABLED=1  BLOOM_QUALITY=4  BLOOM_RENDER_SCALE=2  DEPTH_SUNRAYS_ENABLED=-1  VOL_SUNRAYS_ENABLED=-1  SUNRAYS_QUALITY=10  TEMPORAL_FILTER_ENABLED=2  FXAA_ENABLED=2  SHARPENING_ENABLED=1  CLOUDS_QUALITY=16
profile.UNPLAYABLE  =  REFLECTIONS_ENABLED=1  REFLECTION_ITERATIONS=300  WAVING_WATER_SURFACE_ENABLED=-1  OVERWORLD_SHADOWS_TYPE=2  END_SHADOWS_TYPE=2  SHADOWS_ON_TRANSPARENTS=1  ENTITY_SHADOWS_ENABLED=1  BLOCK_ENTITY_SHADOWS_ENABLED=1  SHADOW_FILTERING=4  COLORED_SHADOWS_ENABLED=1  shadowMapResolution=12288  shadowDistance=1024.0  POM_QUALITY=256  SSAO_ENABLED=1  AO_QUALITY=24  BLOOM_ENABLED=1  BLOOM_QUALITY=4  BLOOM_RENDER_SCALE=1  DEPTH_SUNRAYS_ENABLED=-1  VOL_SUNRAYS_ENABLED=-1  SUNRAYS_QUALITY=32  TEMPORAL_FILTER_ENABLED=2  FXAA_ENABLED=2  SHARPENING_ENABLED=1  CLOUDS_QUALITY=128










###################################
#        PIPELINE SETTINGS        #
###################################


dynamicHandLight = false
oldLighting = false
vignette = false
separateAo = true
particles.ordering = mixed
dhClouds = off
dhShadow.enabled = false
# currently broken within iris?
separateEntityDraws = true

#if PLAYER_SHADOWS_ENABLED == 0
	shadowPlayer = false
#else
	shadowPlayer = true
#endif

#if ENTITY_SHADOWS_ENABLED == 0
	shadowEntities = false
#else
	shadowEntities = true
#endif

#if BLOCK_ENTITY_SHADOWS_ENABLED == 0
	shadowBlockEntities = false
#else
	shadowBlockEntities = true
#endif

#if PROJECTION_TYPE == 2
	frustum.culling = false
#else
	frustum.culling = true
#endif

texture.noise = /textures/noise.png

#if HORROR_MODE == 0
	#if BLOOM_RENDER_SCALE == 0
		size.buffer.colortex4 = 1.0 1.0
	#elif BLOOM_RENDER_SCALE == 1
		size.buffer.colortex4 = 0.5 0.5
	#elif BLOOM_RENDER_SCALE == 2
		size.buffer.colortex4 = 0.25 0.25
	#elif BLOOM_RENDER_SCALE == 3
		size.buffer.colortex4 = 0.125 0.125
	#endif
#else
	size.buffer.colortex4 = 480 270
#endif

size.buffer.colortex10 = 2 2

#if MC_VERSION >= 11800 || MC_VERSION == 11605
	
	# reminder: some translucent shaders are the same as their opaque variants
	blend.clrwl_gbuffers_translucent.colortex2     = off
	blend.clrwl_gbuffers.colortex2                 = off
	blend.dh_terrain.colortex2                     = off
	blend.dh_water.colortex3                       = off
	blend.gbuffers_basic.colortex2                 = off
	blend.gbuffers_beacon_beam.colortex2           = off
	blend.gbuffers_block_translucent.colortex2     = off
	blend.gbuffers_block.colortex2                 = off
	blend.gbuffers_clouds.colortex3                = off
	blend.gbuffers_entities_translucent.colortex2  = off
	blend.gbuffers_entities.colortex2              = off
	blend.gbuffers_hand_water.colortex3            = off
	blend.gbuffers_hand.colortex2                  = off
	blend.gbuffers_line.colortex2                  = off
	blend.gbuffers_particles_translucent.colortex2 = off
	blend.gbuffers_particles.colortex2             = off
	blend.gbuffers_terrain.colortex2               = off
	blend.gbuffers_textured.colortex2              = off
	blend.gbuffers_water.colortex3                 = off
	
	blend.gbuffers_weather = off
	
	alphaTest.gbuffers_block = off
	alphaTest.gbuffers_clouds = off
	
#endif


#if REALISTIC_CLOUDS_ENABLED == 1 || (REALISTIC_CLOUDS_ENABLED == -1 && (STYLE == 1 || STYLE == 2))
	clouds = off
#endif


#if COLORED_LIGHTING_ENABLED
	iris.features.optional = CUSTOM_IMAGES
	shadow.culling = reversed
	voxelizeLightBlocks = true
	#if COLORED_LIGHTING_DIST == 32
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 32 16 32
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 32 16 32
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 32 16 32
	#elif COLORED_LIGHTING_DIST == 48
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 48 24 48
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 48 24 48
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 48 24 48
	#elif COLORED_LIGHTING_DIST == 64
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 64 32 64
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 64 32 64
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 64 32 64
	#elif COLORED_LIGHTING_DIST == 96
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 96 48 96
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 96 48 96
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 96 48 96
	#elif COLORED_LIGHTING_DIST == 128
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 128 64 128
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 128 64 128
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 128 64 128
	#elif COLORED_LIGHTING_DIST == 192
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 192 96 192
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 192 96 192
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 192 96 192
	#elif COLORED_LIGHTING_DIST == 256
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 256 128 256
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 256 128 256
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 256 128 256
	#elif COLORED_LIGHTING_DIST == 384
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 384 192 384
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 384 192 384
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 384 192 384
	#elif COLORED_LIGHTING_DIST == 512
		image.voxelIds = voxelIdsSampler RED_INTEGER R8UI UNSIGNED_BYTE true false 512 256 512
		image.lightFloodfill1 = lightFloodfill1Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 512 256 512
		image.lightFloodfill2 = lightFloodfill2Sampler RGBA RGB10_A2 UNSIGNED_INT_2_10_10_10_REV false false 512 256 512
	#endif
#endif


#if MC_VERSION < 260000
	# this probably isn't needed with the new dynamic deferred system, but idk yet
	#program.world-1/gbuffers_entities_translucent.enabled = false
	#program.world0/gbuffers_entities_translucent.enabled = false
	#program.world1/gbuffers_entities_translucent.enabled = false
#endif


#if OVERWORLD_SHADOWS_TYPE == 2
	program.world0/shadow.enabled = true
#else
	program.world0/shadow.enabled = false
#endif
#if COLORED_LIGHTING_ENABLED == 1 && OVERWORLD_SHADOWS_TYPE == 2
	program.world0/shadowcomp.enabled = true
#else
	program.world0/shadowcomp.enabled = false
#endif

#if COLORED_LIGHTING_ENABLED == 1
	program.world-1/shadow.enabled = true
	program.world-1/shadowcomp.enabled = true
#else
	program.world-1/shadow.enabled = false
	program.world-1/shadowcomp.enabled = false
#endif

#if END_SHADOWS_TYPE == 2
	program.world1/shadow.enabled = true
#else
	program.world1/shadow.enabled = false
#endif
#if COLORED_LIGHTING_ENABLED == 1 && END_SHADOWS_TYPE == 2
	program.world1/shadowcomp.enabled = true
#else
	program.world1/shadowcomp.enabled = false
#endif


#if BLOOM_ENABLED == 0
	program.world-1/composite10.enabled = false
	program.world0/composite10.enabled = false
	program.world1/composite10.enabled = false
	program.world-1/composite11.enabled = false
	program.world0/composite11.enabled = false
	program.world1/composite11.enabled = false
#endif
#if HORROR_MODE == 1
	program.world-1/composite11.enabled = false
	program.world0/composite11.enabled = false
	program.world1/composite11.enabled = false
#endif


#if PANINI_PROJECTION_ENABLED == 1
	program.world-1/composite21.enabled = true
	program.world0/composite21.enabled = true
	program.world1/composite21.enabled = true
#else
	program.world-1/composite21.enabled = false
	program.world0/composite21.enabled = false
	program.world1/composite21.enabled = false
#endif


#if SSS_FLIP == 1 || SSS_BARREL == 1 || SSS_DECONVERGE == 1
	program.world-1/composite30.enabled = true
	program.world0/composite30.enabled = true
	program.world1/composite30.enabled = true
#else
	program.world-1/composite30.enabled = false
	program.world0/composite30.enabled = false
	program.world1/composite30.enabled = false
#endif

#if SSS_NTSC == 1
	program.world-1/composite31.enabled = true
	program.world0/composite31.enabled = true
	program.world1/composite31.enabled = true
	program.world-1/composite32.enabled = true
	program.world0/composite32.enabled = true
	program.world1/composite32.enabled = true
#else
	program.world-1/composite31.enabled = false
	program.world0/composite31.enabled = false
	program.world1/composite31.enabled = false
	program.world-1/composite32.enabled = false
	program.world0/composite32.enabled = false
	program.world1/composite32.enabled = false
#endif


#debug
program.world-1/composite99.enabled = false
program.world0/composite99.enabled = false
program.world1/composite99.enabled = false










########################################
#        PER-FRAME CALCULATIONS        #
########################################



# constants

#if MC_VERSION < 11300
	variable.float.pi = 3.1415926538
#endif



# main

uniform.float.farPlusNear = far + near
uniform.float.farMinusNear = far - near
uniform.float.twoTimesNear = 2.0 * near

uniform.vec2.viewSize = vec2(viewWidth, viewHeight)
uniform.vec2.pixelSize = vec2(1.0 / viewWidth, 1.0 / viewHeight)

# the `in(biome_precipitation, 0)` is `in(biome_precipitation, PPT_NONE)` but PPT_NONE isn't defined in older Iris versions
variable.float.betterRainStrength1 = rainStrength * (1.0 - 0.5 * if(in(biome_precipitation, 0), 1, 0))
uniform.float.betterRainStrength = smooth(1, betterRainStrength1, 10, 10)
#uniform.float.rainReflectionStrength = smooth(2, betterRainStrength, 45, 30) * (0.3 + 0.7 * smooth(2, if(in(biome_precipitation, 1), 1, 0), 5, 10))
uniform.vec2.smootherEyeBrightness = vec2(smooth(3, eyeBrightness.x / 240.0, 4, 4), smooth(4, eyeBrightness.y / 240.0, 4, 4))
uniform.float.positionalUndergroundDarkness = smooth(5, clamp((eyeAltitude - 52) / (60 - 52), 0.0, 1.0), 10, 10)

# true if the sun is casting shadows
variable.bool.isDay = sunAngle <= 0.5
# true if looking towards whichever isn't casting shadows
variable.bool.isOtherLightSource = shadowLightPosition.z > 0.0001
# isDay ^^ isOtherLightSource
uniform.bool.isSun = (isDay && !isOtherLightSource) || (!isDay && isOtherLightSource)

# this uniform causes compilation errors for voxy shaders pre-1.21.2, but hopefully in the future that can just be ignored
#if MC_VERSION >= 12102
	uniform.float.inPaleGarden = clamp(smooth(6, if(in(biome, BIOME_PALE_GARDEN), 1.1, -0.1), 20, 20), 0.0, 1.0) * eyeBrightnessSmooth.y / 240.0
#else
	uniform.float.inPaleGarden = 0.0
#endif
# the -0.5 is so that it can actually reach 0.0
uniform.float.inSnowyBiome = max(smooth(7, if(in(biome_precipitation, 2), 1, -0.5), 64, 64), 0.0)

uniform.float.lightningFlashAmount = \
	if(lightningBoltPosition.w > 0.001, 1, 0) \
	* if (sin(floor(frameTimeCounter * 8.0) * 3.95) > 0.0, 1, 0)

# gameplay effects
# `currentPlayerHealth` is -1 in creative / spectator, so this turns -1 into 1
variable.float.fixedPlayerHealth = if(currentPlayerHealth == -1, 1.0, currentPlayerHealth)
uniform.float.smoothPlayerHealth = smooth(8, fixedPlayerHealth, 0, 1)
uniform.float.damageAmount = clamp((smoothPlayerHealth - fixedPlayerHealth) * 6.0, 0.0, 1.0)



# TAA jitter offset using R2 sequence
# http://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/
variable.float.taaOffsetX = frac(1.3247179572 * frameCounter + 0.5) * 2.0 - 1.0
variable.float.taaOffsetY = frac(1.7548776662 * frameCounter + 0.5) * 2.0 - 1.0
uniform.vec2.taaOffsetUniform = vec2(taaOffsetX / viewWidth, taaOffsetY / viewHeight)



# light calculations


# shadowcaster brightnesses:
variable.float.sunRiseStart = 0.0
variable.float.sunRiseEnd = 0.05
variable.float.sunSetStart = 0.45
variable.float.sunSetEnd = 0.5
variable.float.moonRiseStart = 0.55
variable.float.moonRiseEnd = 0.65
variable.float.moonSetStart = 0.85
variable.float.moonSetEnd = 0.95

# setting the exponents here too low can make the light appear/disappear non-smoothly
uniform.float.sunLightBrightness = if (                                                                                         \
	sunAngle >= sunRiseStart && sunAngle < sunRiseEnd , pow((sunAngle - sunRiseStart) / (sunRiseEnd - sunRiseStart), 1.1),      \
	sunAngle >= sunRiseEnd   && sunAngle < sunSetStart, 1.0,                                                                    \
	sunAngle >= sunSetStart  && sunAngle < sunSetEnd  , pow(1.0 - (sunAngle - sunSetStart) / (sunSetEnd - sunSetStart), 1.1),   \
	0.0                                                                                                                         \
)
uniform.float.moonLightBrightness = if (                                                                                  \
	sunAngle >= moonRiseStart && sunAngle < moonRiseEnd , (sunAngle - moonRiseStart) / (moonRiseEnd - moonRiseStart),     \
	sunAngle >= moonRiseEnd   && sunAngle < moonSetStart, 1.0,                                                            \
	sunAngle >= moonSetStart  && sunAngle < moonSetEnd  , 1.0 - (sunAngle - moonSetStart) / (moonSetEnd - moonSetStart),  \
	0.0                                                                                                                   \
)


# mixing the sunlight color: (moonlight color is flat)
variable.float.sunriseColorEnd = 0.07
variable.float.sunsetColorStart = 0.43

uniform.float.sunriseColorPercent = if (                                                                                         \
	sunAngle >= sunRiseStart && sunAngle < sunriseColorEnd, 1.0 - (sunAngle - sunRiseStart) / (sunriseColorEnd - sunRiseStart),  \
	0.0                                                                                                                          \
)
uniform.float.sunsetColorPercent = if (                                                                                    \
	sunAngle >= sunsetColorStart && sunAngle < sunSetEnd, (sunAngle - sunsetColorStart) / (sunSetEnd - sunsetColorStart),  \
	0.0                                                                                                                    \
)
uniform.float.sunNoonColorPercent = 1.0 - (sunriseColorPercent + sunsetColorPercent)


# mixing ambientlight color:
variable.float.ambientSunriseStart = 0.955
#ambientSunriseSwitch is always 0.0 and 1.0
variable.float.ambientSunriseEnd = 0.06
variable.float.ambientSunsetStart = 0.44
#ambientSunsetSwitch is always 0.5
variable.float.ambientSunsetEnd = 0.545

uniform.float.ambientSunPercent = if (                                                                                                    \
	sunAngle >= 0.0                && sunAngle < ambientSunriseEnd , (sunAngle - 0.0) / (ambientSunriseEnd - 0.0),                        \
	sunAngle >= ambientSunriseEnd  && sunAngle < ambientSunsetStart, 1.0,                                                                 \
	sunAngle >= ambientSunsetStart && sunAngle < 0.5               , 1.0 - (sunAngle - ambientSunsetStart) / (0.5 - ambientSunsetStart),  \
	0.0                                                                                                                                   \
)
variable.float.rawAmbientMoonPercent = if (                                                                                                             \
	sunAngle >= 0.5                 && sunAngle < ambientSunsetEnd   , pow((sunAngle - 0.5) / (ambientSunsetEnd - 0.5), 2),                             \
	sunAngle >= ambientSunsetEnd    && sunAngle < ambientSunriseStart, 1.0,                                                                             \
	sunAngle >= ambientSunriseStart && sunAngle < 1.0                , pow(1.0 - (sunAngle - ambientSunriseStart) / (1.0 - ambientSunriseStart), 2),    \
	0.0                                                                                                                                                 \
)
uniform.float.ambientMoonPercent = 1.0 - (1.0 - rawAmbientMoonPercent) * (1.0 - rawAmbientMoonPercent) * (1.0 - rawAmbientMoonPercent)
uniform.float.ambientSunrisePercent = if (                                        \
	sunAngle >= ambientSunriseStart && sunAngle < 1.0, 1.0 - ambientMoonPercent,  \
	sunAngle >= 0.0 && sunAngle < ambientSunriseEnd  , 1.0 - ambientSunPercent,   \
	0.0                                                                           \
)
uniform.float.ambientSunsetPercent = if (                                         \
	sunAngle >= ambientSunsetStart && sunAngle < 0.5, 1.0 - ambientSunPercent,    \
	sunAngle >= 0.5 && sunAngle < ambientSunsetEnd  , 1.0 - ambientMoonPercent,   \
	0.0                                                                           \
)

uniform.float.dayPercent = ambientSunPercent + (ambientSunrisePercent + ambientSunsetPercent) * 0.8


# mixing sky horizon sunrise/sunset color:
variable.float.skySunriseStart1 = 0.94
variable.float.skySunriseMid1 = 1.01
variable.float.skySunriseEnd = 0.06
variable.float.skySunsetStart = 0.44
variable.float.skuSunsetMid = 0.49
variable.float.skySunsetEnd = 0.56

# handle annoying wrap around:
variable.float.skySunriseStart2 = skySunriseStart1 - 1.0
variable.float.skySunriseMid2 = skySunriseMid1 - 1.0

variable.float.rawSkySunriseSunsetPercent = if (                                                                                           \
	sunAngle >= skySunriseStart1 && sunAngle < skySunriseMid1,       (sunAngle - skySunriseStart1) / (skySunriseMid1 - skySunriseStart1),  \
	sunAngle >= skySunriseStart2 && sunAngle < skySunriseMid2,       (sunAngle - skySunriseStart2) / (skySunriseMid2 - skySunriseStart2),  \
	sunAngle >= skySunriseMid2   && sunAngle < skySunriseEnd , 1.0 - (sunAngle - skySunriseMid2  ) / ( skySunriseEnd - skySunriseMid2  ),  \
	sunAngle >= skySunsetStart   && sunAngle < skuSunsetMid  ,       (sunAngle - skySunsetStart  ) / (  skuSunsetMid - skySunsetStart  ),  \
	sunAngle >= skuSunsetMid     && sunAngle < skySunsetEnd  , 1.0 - (sunAngle - skuSunsetMid    ) / (  skySunsetEnd - skuSunsetMid    ),  \
	0.0                                                                                                                                    \
)
uniform.float.skySunriseSunsetPercent = rawSkySunriseSunsetPercent * rawSkySunriseSunsetPercent * (3.0 - 2.0 * rawSkySunriseSunsetPercent)





# blocklight flickering

variable.float.blockFlickerTime = frameTimeCounter * 8
variable.int.blockFlickerIndex = floor(blockFlickerTime)
variable.int.blockFlickerMod9 = blockFlickerIndex % 9
variable.int.blockFlickerMod11 = blockFlickerIndex % 11
variable.int.blockFlickerMod13 = blockFlickerIndex % 13
variable.float.blockFlickerInterpValue = blockFlickerTime % 1.0

# use three arrays (lengths 9, 11, and 13) to have a pattern that only repeats every 1287th value (ifs can only have 16 branches + else?????)
variable.float.blockFlicker9A = if (  \
	blockFlickerMod9 == 0,  0.583,    \
	blockFlickerMod9 == 1,  0.853,    \
	blockFlickerMod9 == 2,  0.337,    \
	blockFlickerMod9 == 3,  0.361,    \
	blockFlickerMod9 == 4,  0.07 ,    \
	blockFlickerMod9 == 5,  0.719,    \
	blockFlickerMod9 == 6,  0.038,    \
	blockFlickerMod9 == 7,  0.279,    \
	blockFlickerMod9 == 8,  0.599,    \
	0.0  \
)
variable.float.blockFlicker9B = if (  \
	blockFlickerMod9 == 0,  0.853,    \
	blockFlickerMod9 == 1,  0.337,    \
	blockFlickerMod9 == 2,  0.361,    \
	blockFlickerMod9 == 3,  0.07 ,    \
	blockFlickerMod9 == 4,  0.719,    \
	blockFlickerMod9 == 5,  0.038,    \
	blockFlickerMod9 == 6,  0.279,    \
	blockFlickerMod9 == 7,  0.599,    \
	blockFlickerMod9 == 8,  0.583,    \
	0.0  \
)
variable.float.blockFlicker9C = if (  \
	blockFlickerMod9 == 0,  0.337,    \
	blockFlickerMod9 == 1,  0.361,    \
	blockFlickerMod9 == 2,  0.07 ,    \
	blockFlickerMod9 == 3,  0.719,    \
	blockFlickerMod9 == 4,  0.038,    \
	blockFlickerMod9 == 5,  0.279,    \
	blockFlickerMod9 == 6,  0.599,    \
	blockFlickerMod9 == 7,  0.583,    \
	blockFlickerMod9 == 8,  0.853,    \
	0.0  \
)
variable.float.blockFlicker9D = if (  \
	blockFlickerMod9 == 0,  0.361,    \
	blockFlickerMod9 == 1,  0.07 ,    \
	blockFlickerMod9 == 2,  0.719,    \
	blockFlickerMod9 == 3,  0.038,    \
	blockFlickerMod9 == 4,  0.279,    \
	blockFlickerMod9 == 5,  0.599,    \
	blockFlickerMod9 == 6,  0.583,    \
	blockFlickerMod9 == 7,  0.853,    \
	blockFlickerMod9 == 8,  0.337,    \
	0.0  \
)

variable.float.blockFlicker11A = if (  \
	blockFlickerMod11 == 0,  0.273,    \
	blockFlickerMod11 == 1,  0.673,    \
	blockFlickerMod11 == 2,  0.248,    \
	blockFlickerMod11 == 3,  0.791,    \
	blockFlickerMod11 == 4,  0.229,    \
	blockFlickerMod11 == 5,  0.399,    \
	blockFlickerMod11 == 6,  0.124,    \
	blockFlickerMod11 == 7,  0.478,    \
	blockFlickerMod11 == 8,  0.175,    \
	blockFlickerMod11 == 9,  0.822,    \
	blockFlickerMod11 == 10, 0.192,    \
	0.0  \
)
variable.float.blockFlicker11B = if (  \
	blockFlickerMod11 == 0,  0.673,    \
	blockFlickerMod11 == 1,  0.248,    \
	blockFlickerMod11 == 2,  0.791,    \
	blockFlickerMod11 == 3,  0.229,    \
	blockFlickerMod11 == 4,  0.399,    \
	blockFlickerMod11 == 5,  0.124,    \
	blockFlickerMod11 == 6,  0.478,    \
	blockFlickerMod11 == 7,  0.175,    \
	blockFlickerMod11 == 8,  0.822,    \
	blockFlickerMod11 == 9,  0.192,    \
	blockFlickerMod11 == 10, 0.273,    \
	0.0  \
)
variable.float.blockFlicker11C = if (  \
	blockFlickerMod11 == 0,  0.248,    \
	blockFlickerMod11 == 1,  0.791,    \
	blockFlickerMod11 == 2,  0.229,    \
	blockFlickerMod11 == 3,  0.399,    \
	blockFlickerMod11 == 4,  0.124,    \
	blockFlickerMod11 == 5,  0.478,    \
	blockFlickerMod11 == 6,  0.175,    \
	blockFlickerMod11 == 7,  0.822,    \
	blockFlickerMod11 == 8,  0.192,    \
	blockFlickerMod11 == 9,  0.273,    \
	blockFlickerMod11 == 10, 0.673,    \
	0.0  \
)
variable.float.blockFlicker11D = if (  \
	blockFlickerMod11 == 0,  0.791,    \
	blockFlickerMod11 == 1,  0.229,    \
	blockFlickerMod11 == 2,  0.399,    \
	blockFlickerMod11 == 3,  0.124,    \
	blockFlickerMod11 == 4,  0.478,    \
	blockFlickerMod11 == 5,  0.175,    \
	blockFlickerMod11 == 6,  0.822,    \
	blockFlickerMod11 == 7,  0.192,    \
	blockFlickerMod11 == 8,  0.273,    \
	blockFlickerMod11 == 9,  0.673,    \
	blockFlickerMod11 == 10, 0.248,    \
	0.0  \
)

variable.float.blockFlicker13A = if (  \
	blockFlickerMod13 == 0,  0.799,    \
	blockFlickerMod13 == 1,  0.411,    \
	blockFlickerMod13 == 2,  0.471,    \
	blockFlickerMod13 == 3,  0.909,    \
	blockFlickerMod13 == 4,  0.981,    \
	blockFlickerMod13 == 5,  0.170,    \
	blockFlickerMod13 == 6,  0.773,    \
	blockFlickerMod13 == 7,  0.558,    \
	blockFlickerMod13 == 8,  0.615,    \
	blockFlickerMod13 == 9,  0.242,    \
	blockFlickerMod13 == 10, 0.502,    \
	blockFlickerMod13 == 11, 0.269,    \
	blockFlickerMod13 == 12, 0.101,    \
	0.0  \
)
variable.float.blockFlicker13B = if (  \
	blockFlickerMod13 == 0,  0.411,    \
	blockFlickerMod13 == 1,  0.471,    \
	blockFlickerMod13 == 2,  0.909,    \
	blockFlickerMod13 == 3,  0.981,    \
	blockFlickerMod13 == 4,  0.170,    \
	blockFlickerMod13 == 5,  0.773,    \
	blockFlickerMod13 == 6,  0.558,    \
	blockFlickerMod13 == 7,  0.615,    \
	blockFlickerMod13 == 8,  0.242,    \
	blockFlickerMod13 == 9,  0.502,    \
	blockFlickerMod13 == 10, 0.269,    \
	blockFlickerMod13 == 11, 0.101,    \
	blockFlickerMod13 == 12, 0.799,    \
	0.0  \
)
variable.float.blockFlicker13C = if (  \
	blockFlickerMod13 == 0,  0.471,    \
	blockFlickerMod13 == 1,  0.909,    \
	blockFlickerMod13 == 2,  0.981,    \
	blockFlickerMod13 == 3,  0.170,    \
	blockFlickerMod13 == 4,  0.773,    \
	blockFlickerMod13 == 5,  0.558,    \
	blockFlickerMod13 == 6,  0.615,    \
	blockFlickerMod13 == 7,  0.242,    \
	blockFlickerMod13 == 8,  0.502,    \
	blockFlickerMod13 == 9,  0.269,    \
	blockFlickerMod13 == 10, 0.101,    \
	blockFlickerMod13 == 11, 0.799,    \
	blockFlickerMod13 == 12, 0.411,    \
	0.0  \
)
variable.float.blockFlicker13D = if (  \
	blockFlickerMod13 == 0,  0.909,    \
	blockFlickerMod13 == 1,  0.981,    \
	blockFlickerMod13 == 2,  0.170,    \
	blockFlickerMod13 == 3,  0.773,    \
	blockFlickerMod13 == 4,  0.558,    \
	blockFlickerMod13 == 5,  0.615,    \
	blockFlickerMod13 == 6,  0.242,    \
	blockFlickerMod13 == 7,  0.502,    \
	blockFlickerMod13 == 8,  0.269,    \
	blockFlickerMod13 == 9,  0.101,    \
	blockFlickerMod13 == 10, 0.799,    \
	blockFlickerMod13 == 11, 0.411,    \
	blockFlickerMod13 == 12, 0.471,    \
	0.0  \
)

variable.float.blockFlickerValue1 = (blockFlicker9A + blockFlicker11A + blockFlicker13A) / 3
variable.float.blockFlickerValue2 = (blockFlicker9B + blockFlicker11B + blockFlicker13B) / 3
variable.float.blockFlickerValue3 = (blockFlicker9C + blockFlicker11C + blockFlicker13C) / 3
variable.float.blockFlickerValue4 = (blockFlicker9D + blockFlicker11D + blockFlicker13D) / 3

# cubic interpolate
variable.float.blockFlickerA0 = blockFlickerValue4 - blockFlickerValue3 - blockFlickerValue1 + blockFlickerValue2
variable.float.blockFlickerA1 = blockFlickerValue1 - blockFlickerValue2 - blockFlickerA0
variable.float.blockFlickerA2 = blockFlickerValue3 - blockFlickerValue1
variable.float.blockFlickerA3 = blockFlickerValue2
variable.float.blockFlickerInterpValue3 = blockFlickerInterpValue * blockFlickerInterpValue * blockFlickerInterpValue
variable.float.blockFlickerInterpValue2 = blockFlickerInterpValue * blockFlickerInterpValue
variable.float.rawBlockFlickerAmount = 1.0 - (blockFlickerA0 * blockFlickerInterpValue3 + blockFlickerA1 * blockFlickerInterpValue2 + blockFlickerA2 * blockFlickerInterpValue + blockFlickerA3)
uniform.float.blockFlickerAmount = 1.0 - rawBlockFlickerAmount * rawBlockFlickerAmount * rawBlockFlickerAmount * rawBlockFlickerAmount





# inverses

uniform.float.invAspectRatio = 1.0 / aspectRatio
uniform.float.invFrameTime = 1.0 / frameTime
uniform.float.invFar = 1.0 / far
uniform.float.invFarMinusNear = 1.0 / farMinusNear
