#BSL Shaders Shader Properties

#Profiles
profile.MINIMUM=!AO !LIGHT_SHAFT !SHADOW !SHADOW_COLOR !SHADOW_FILTER shadowMapResolution=512 shadowDistance=128.0 !TAA
profile.LOW=profile.MINIMUM SHADOW shadowMapResolution=1024 shadowDistance=128.0
profile.MEDIUM=profile.LOW AO SHADOW_FILTER shadowMapResolution=1536 shadowDistance=192.0
profile.HIGH=profile.MEDIUM LIGHT_SHAFT SHADOW_COLOR shadowMapResolution=2048 shadowDistance=256.0 TAA
profile.ULTRA=profile.HIGH shadowMapResolution=3072 shadowDistance=512.0

#Force Video Settings
dynamicHandLight=true
oldHandLight=false
oldLighting=false
particles.ordering=mixed
separateAo=true
underwaterOverlay=false
vignette=false
breaksAnisotropy=true

#Screen Setup
screen=<empty> <empty> ABOUT <profile> <empty> <empty> [LIGHTING] [MATERIAL] [ENVIRONMENT] [CAMERA] [COLOR] [CGT] [ANTIALIASING] [EXTRAS]

screen.LIGHTING=<empty> <empty> SHADOW [SHADOW] shadowMapResolution shadowDistance SHADOW_FILTER SHADOW_COLOR <empty> <empty> AO [AO] MULTICOLORED_BLOCKLIGHT [MCBL] DESATURATION DESATURATION_FACTOR DYNAMIC_HANDLIGHT HALF_LAMBERT
screen.SHADOW=<empty> <empty> SHADOW_ENTITY SHADOW_BLOCK_ENTITY SHADOW_VEGETATION SHADOW_CLOUD SHADOW_LOD <empty> <empty> <empty> sunPathRotation SHADOW_BIAS SHADOW_PIXEL SHADOW_SKY_FALLOFF
screen.AO=<empty> <empty> AO_METHOD <empty> <empty> <empty> AO_STRENGTH ambientOcclusionLevel

screen.MCBL=<empty> <empty> MCBL_FOG MCBL_FOG_STRENGTH MCBL_DISTANCE MCBL_HALF_HEIGHT MCBL_RANDOM <empty> <empty> <empty> MCBL_SS MCBL_SS_MODE MCBL_SS_ANTI_BLEED

screen.MATERIAL=<empty> <empty> ADVANCED_MATERIALS MATERIAL_FORMAT <empty> <empty> [SPECULAR] [NORMALS] [EMISSIVE] <empty> <empty> <empty> SSS BASIC_SSS ENTITY_FLASH REFRACTION ALBEDO_BALANCING ALPHA_BLEND
screen.SPECULAR=<empty> <empty> REFLECTION REFLECTION_TRANSLUCENT REFLECTION_MODE REFLECTION_PREVIOUS SPECULAR_HIGHLIGHT REFLECTION_LOD REFLECTION_SKY_FALLOFF REFLECTION_SKYBOX <empty> <empty> REFLECTION_SPECULAR REFLECTION_ROUGH REFLECTION_RAIN REFLECTION_RAIN_AMOUNT SPECULAR_HIGHLIGHT_ROUGH ALBEDO_METAL
screen.NORMALS=<empty> <empty> PARALLAX PARALLAX_DEPTH PARALLAX_QUALITY PARALLAX_DISTANCE PARALLAX_PORTAL <empty> SELF_SHADOW SELF_SHADOW_ANGLE SELF_SHADOW_QUALITY SELF_SHADOW_STRENGTH <empty> <empty> DIRECTIONAL_LIGHTMAP DIRECTIONAL_LIGHTMAP_STRENGTH NORMAL_DAMPENING NORMAL_PLANTS
screen.EMISSIVE=<empty> <empty> EMISSIVE EMISSIVE_HARDCODED GLOWING_ORES <empty> <empty> <empty> EMISSIVE_INTENSITY EMISSIVE_CURVE

screen.ENVIRONMENT=<empty> <empty> [CLOUDS] [FOG] [SKY] [SKYBOX] [WATER] [ANIMATION] <empty> <empty> LIGHT_SHAFT [LIGHT_SHAFT] WEATHER_PERBIOME WEATHER_OPACITY DH_OVERDRAW
screen.CLOUDS=<empty> <empty> CLOUDS CLOUD_BASE <empty> <empty> CLOUD_DENSITY CLOUD_AMOUNT CLOUD_HEIGHT CLOUD_SCALE CLOUD_STRETCH CLOUD_THICKNESS CLOUD_DETAIL CLOUD_SPEED CLOUD_OPACITY CLOUD_BRIGHTNESS CLOUD_REVEAL
screen.FOG=<empty> <empty> FOG_DENSITY FOG_DENSITY_NETHER FOG_DENSITY_END [FOG_DENSITY_MORE] FOG_HEIGHT [FOG_HEIGHT] FAR_VANILLA_FOG [FOG_VANILLA] FOG_INTERIOR
screen.FOG_DENSITY_MORE=<empty> <empty> FOG_DENSITY_NIGHT FOG_DENSITY_WEATHER FOG_DENSITY_COLD FOG_DENSITY_DRY FOG_DENSITY_DAMP FOG_DENSITY_INDOOR FOG_DENSITY_LOD FOG_DISTANCE_LOD
screen.FOG_HEIGHT=<empty> <empty> FOG_HEIGHT_Y FOG_HEIGHT_FALLOFF
screen.FOG_VANILLA=<empty> <empty> FAR_VANILLA_FOG_STYLE FOG_DENSITY_VANILLA FOG_VANILLA_CLOUD
screen.SKY=<empty> <empty> SKY_DENSITY_D SKY_EXPOSURE_D SKY_DENSITY_N SKY_EXPOSURE_N SKY_DENSITY_W SKY_EXPOSURE_W SKY_HORIZON_N SKY_HORIZON_F <empty> <empty> SKY_DESATURATION SKY_GROUND SKY_UNDERGROUND SHADER_END_SKY SKY_DEFERRED
screen.SKYBOX=<empty> <empty> SHADER_SUN_MOON SUN_MOON_GROUND STARS AURORA <empty> <empty> SKYBOX_INTENSITY SKYBOX_OPACITY SUN_INTENSITY MOON_INTENSITY SHADER_SUN_MOON_SHAPE SHADER_SUN_MOON_SIZE
screen.WATER=<empty> <empty> WATER_MODE WATER_ALPHA_MODE WATER_NORMALS WATER_PARALLAX WATER_SHADOW_COLOR WATER_CAUSTICS <empty> <empty> WATER_DETAIL WATER_SHARPNESS WATER_BUMP WATER_SPEED WATER_FOG WATER_FOG_DENSITY WATER_CAUSTICS_STRENGTH WATER_PIXEL
screen.ANIMATION=<empty> <empty> ANIMATION_STRENGTH ANIMATION_SPEED WORLD_TIME_ANIMATION <empty> <empty> <empty> WAVING_GRASS WAVING_CROP WAVING_PLANT WAVING_TALL_PLANT WAVING_LEAF WAVING_VINE WAVING_WATER WAVING_LAVA WAVING_FIRE WAVING_LANTERN
screen.LIGHT_SHAFT=<empty> <empty> LIGHT_SHAFT_STRENGTH LIGHT_SHAFT_END_SMOKE <empty> <empty> LIGHT_SHAFT_MORNING_FALLOFF LIGHT_SHAFT_DAY_FALLOFF LIGHT_SHAFT_NIGHT_FALLOFF LIGHT_SHAFT_WEATHER_FALLOFF

screen.CAMERA=<empty> <empty> DOF [DOF] MOTION_BLUR MOTION_BLUR_STRENGTH BLOOM_RADIUS BLOOM_STRENGTH BLOOM_CONTRAST DIRTY_LENS LENS_FLARE LENS_FLARE_STRENGTH VIGNETTE VIGNETTE_STRENGTH CHROMATIC_ABERRATION UNDERWATER_DISTORTION
screen.DOF=<empty> <empty> DOF_FOCUS_MODE DOF_STRENGTH DOF_FOCUS_X DOF_FOCUS_Y DOF_FOCUS_SPEED DOF_FOCUS_POINT DOF_FOCUS_DISTANCE

screen.ANTIALIASING=<empty> <empty> FXAA TAA <empty> <empty> FXAA_SUBPIXEL FXAA_EDGE_SENSITIVITY TAA_MODE TAA_SELECTIVE SHARPEN SHARPEN_CLAMP

screen.COLOR=<empty> <empty> [LIGHT_COLOR] [BLOCKLIGHT_COLOR] [ATMOSPHERE_COLOR] [WATER_COLOR] [WEATHER_COLOR] [AURORA_COLOR] [NETHER_COLOR] [END_COLOR] [SELECTION_COLOR]
screen.LIGHT_COLOR=<empty> <empty> [LIGHT_M] [AMBIENT_M] [LIGHT_D] [AMBIENT_D] [LIGHT_E] [AMBIENT_E] [LIGHT_N] [AMBIENT_N] [MINLIGHT] <empty> <empty> <empty> NIGHT_MOON_PHASE
screen.LIGHT_M=<empty> <empty> LIGHT_MR LIGHT_MG LIGHT_MB LIGHT_MI
screen.LIGHT_D=<empty> <empty> LIGHT_DR LIGHT_DG LIGHT_DB LIGHT_DI
screen.LIGHT_E=<empty> <empty> LIGHT_ER LIGHT_EG LIGHT_EB LIGHT_EI
screen.LIGHT_N=<empty> <empty> LIGHT_NR LIGHT_NG LIGHT_NB LIGHT_NI
screen.AMBIENT_M=<empty> <empty> AMBIENT_MR AMBIENT_MG AMBIENT_MB AMBIENT_MI
screen.AMBIENT_D=<empty> <empty> AMBIENT_DR AMBIENT_DG AMBIENT_DB AMBIENT_DI
screen.AMBIENT_E=<empty> <empty> AMBIENT_ER AMBIENT_EG AMBIENT_EB AMBIENT_EI
screen.AMBIENT_N=<empty> <empty> AMBIENT_NR AMBIENT_NG AMBIENT_NB AMBIENT_NI
screen.MINLIGHT=<empty> <empty> MINLIGHT_R MINLIGHT_G MINLIGHT_B MINLIGHT_I
screen.BLOCKLIGHT_COLOR=<empty> <empty> BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I
screen.ATMOSPHERE_COLOR=<empty> <empty> [SKY_COLOR] [FOG_COLOR] <empty> <empty> SKY_VANILLA USE_FOG_COLOR SKY_BLEND FOG_BLEND
screen.SKY_COLOR=<empty> <empty> SKY_R SKY_G SKY_B SKY_I
screen.FOG_COLOR=<empty> <empty> FOG_R FOG_G FOG_B FOG_I
screen.WATER_COLOR=<empty> <empty> WATER_R WATER_G WATER_B WATER_I WATER_A WATER_F WATER_VI WATER_VA
screen.WEATHER_COLOR=<empty> <empty> [WEATHER_R] [WEATHER_C] [WEATHER_D] [WEATHER_B] [WEATHER_S] [WEATHER_M] [WEATHER_V] [WEATHER_J]
screen.WEATHER_R=<empty> <empty> WEATHER_RR WEATHER_RG WEATHER_RB WEATHER_RI
screen.WEATHER_C=<empty> <empty> WEATHER_CR WEATHER_CG WEATHER_CB WEATHER_CI
screen.WEATHER_D=<empty> <empty> WEATHER_DR WEATHER_DG WEATHER_DB WEATHER_DI
screen.WEATHER_B=<empty> <empty> WEATHER_BR WEATHER_BG WEATHER_BB WEATHER_BI
screen.WEATHER_S=<empty> <empty> WEATHER_SR WEATHER_SG WEATHER_SB WEATHER_SI
screen.WEATHER_M=<empty> <empty> WEATHER_MR WEATHER_MG WEATHER_MB WEATHER_MI
screen.WEATHER_V=<empty> <empty> WEATHER_VR WEATHER_VG WEATHER_VB WEATHER_VI
screen.WEATHER_J=<empty> <empty> WEATHER_JR WEATHER_JG WEATHER_JB WEATHER_JI
screen.AURORA_COLOR=<empty> <empty> [AURORA_L] [AURORA_H]
screen.AURORA_L=<empty> <empty> AURORA_LR AURORA_LG AURORA_LB AURORA_LI
screen.AURORA_H=<empty> <empty> AURORA_HR AURORA_HG AURORA_HB AURORA_HI
screen.NETHER_COLOR=<empty> <empty> [NETHER_N] [NETHER_V] [NETHER_C] [NETHER_W] [NETHER_B] <empty> <empty> <empty> NETHER_VANILLA
screen.NETHER_N=<empty> <empty> NETHER_NR NETHER_NG NETHER_NB NETHER_NI
screen.NETHER_V=<empty> <empty> NETHER_VR NETHER_VG NETHER_VB NETHER_VI
screen.NETHER_C=<empty> <empty> NETHER_CR NETHER_CG NETHER_CB NETHER_CI
screen.NETHER_W=<empty> <empty> NETHER_WR NETHER_WG NETHER_WB NETHER_WI
screen.NETHER_B=<empty> <empty> NETHER_BR NETHER_BG NETHER_BB NETHER_BI
screen.END_COLOR=<empty> <empty> END_R END_G END_B END_I
screen.SELECTION_COLOR=<empty> <empty> SELECTION_R SELECTION_G SELECTION_B SELECTION_I SELECTION_A

screen.CGT=<empty> <empty> EXPOSURE AUTO_EXPOSURE CLASSIC_EXPOSURE [EXPOSURE] COLOR_GRADING [COLOR_GRADING] <empty> <empty> TONEMAP_LOWER_CURVE TONEMAP_UPPER_CURVE TONEMAP_WHITE_CURVE TONEMAP_WHITE_PATH <empty> <empty> SATURATION VIBRANCE
screen.EXPOSURE=<empty> <empty> AUTO_EXPOSURE_RADIUS AUTO_EXPOSURE_SPEED
screen.COLOR_GRADING=<empty> <empty> [CG_R] [CG_G] [CG_B] [CG_T]
screen.CG_R=<empty> <empty> CG_RR CG_RG CG_RB CG_RI <empty> <empty> CG_RM CG_RC
screen.CG_G=<empty> <empty> CG_GR CG_GG CG_GB CG_GI <empty> <empty> CG_GM CG_GC
screen.CG_B=<empty> <empty> CG_BR CG_BG CG_BB CG_BI <empty> <empty> CG_BM CG_BC
screen.CG_T=<empty> <empty> CG_TR CG_TG CG_TB CG_TI <empty> <empty> CG_TM

screen.EXTRAS=<empty> <empty> OUTLINE TOON_LIGHTMAP RETRO_FILTER RETRO_FILTER_SIZE RETRO_FILTER_DEPTH <empty> WORLD_CURVATURE WORLD_CURVATURE_SIZE WHITE_WORLD

#Set Sliders
sliders=shadowMapResolution shadowDistance sunPathRotation SHADOW_PIXEL SHADOW_SKY_FALLOFF AO_STRENGTH ambientOcclusionLevel MCBL_FOG_STRENGTH MCBL_DISTANCE DESATURATION_FACTOR REFLECTION_RAIN_AMOUNT REFLECTION_SKY_FALLOFF PARALLAX_DEPTH PARALLAX_QUALITY PARALLAX_DISTANCE SELF_SHADOW_ANGLE SELF_SHADOW_QUALITY SELF_SHADOW_STRENGTH DIRECTIONAL_LIGHTMAP_STRENGTH EMISSIVE_INTENSITY EMISSIVE_CURVE CLOUD_DENSITY CLOUD_AMOUNT CLOUD_HEIGHT CLOUD_SCALE CLOUD_STRETCH CLOUD_THICKNESS CLOUD_DETAIL CLOUD_OPACITY CLOUD_SPEED CLOUD_BRIGHTNESS FOG_DENSITY FOG_DENSITY_NETHER FOG_DENSITY_END FOG_DENSITY_NIGHT FOG_DENSITY_WEATHER FOG_DENSITY_COLD FOG_DENSITY_DRY FOG_DENSITY_DAMP FOG_DENSITY_INDOOR FOG_DENSITY_LOD FOG_HEIGHT_Y FOG_HEIGHT_FALLOFF FOG_DENSITY_VANILLA SKY_DENSITY_D SKY_EXPOSURE_D SKY_DENSITY_N SKY_EXPOSURE_N SKY_DENSITY_W SKY_EXPOSURE_W SKY_HORIZON_N SKY_HORIZON_F SKYBOX_INTENSITY SKYBOX_OPACITY SUN_INTENSITY MOON_INTENSITY SHADER_SUN_MOON_SIZE WATER_SHARPNESS WATER_DETAIL WATER_BUMP WATER_SPEED WATER_FOG_DENSITY WATER_CAUSTICS_STRENGTH WATER_PIXEL ANIMATION_STRENGTH ANIMATION_SPEED LIGHT_SHAFT_STRENGTH LIGHT_SHAFT_END_SMOKE LIGHT_SHAFT_MORNING_FALLOFF LIGHT_SHAFT_DAY_FALLOFF LIGHT_SHAFT_NIGHT_FALLOFF LIGHT_SHAFT_WEATHER_FALLOFF WEATHER_OPACITY DH_OVERDRAW DOF_STRENGTH DOF_FOCUS_X DOF_FOCUS_Y DOF_FOCUS_SPEED DOF_FOCUS_DISTANCE MOTION_BLUR_STRENGTH BLOOM_RADIUS BLOOM_STRENGTH BLOOM_CONTRAST LENS_FLARE_STRENGTH VIGNETTE_STRENGTH CHROMATIC_ABERRATION EXPOSURE AUTO_EXPOSURE_RADIUS AUTO_EXPOSURE_SPEED TONEMAP_LOWER_CURVE TONEMAP_UPPER_CURVE TONEMAP_WHITE_CURVE TONEMAP_WHITE_PATH SATURATION VIBRANCE CG_RR CG_RG CG_RB CG_RI CG_RM CG_RC CG_GR CG_GG CG_GB CG_GI CG_GM CG_GC CG_BR CG_BG CG_BB CG_BI CG_BM CG_BC CG_TR CG_TG CG_TB CG_TI CG_TM FXAA_SUBPIXEL FXAA_EDGE_SENSITIVITY SHARPEN LIGHT_MR LIGHT_MG LIGHT_MB LIGHT_MI LIGHT_DR LIGHT_DG LIGHT_DB LIGHT_DI LIGHT_ER LIGHT_EG LIGHT_EB LIGHT_EI LIGHT_NR LIGHT_NG LIGHT_NB LIGHT_NI AMBIENT_MR AMBIENT_MG AMBIENT_MB AMBIENT_MI AMBIENT_DR AMBIENT_DG AMBIENT_DB AMBIENT_DI AMBIENT_ER AMBIENT_EG AMBIENT_EB AMBIENT_EI AMBIENT_NR AMBIENT_NG AMBIENT_NB AMBIENT_NI MINLIGHT_R MINLIGHT_G MINLIGHT_B MINLIGHT_I BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I SKY_R SKY_G SKY_B SKY_I FOG_R FOG_G FOG_B FOG_I WATER_R WATER_G WATER_B WATER_I WATER_A WATER_F WATER_VI WATER_VA WEATHER_RR WEATHER_RG WEATHER_RB WEATHER_RI WEATHER_CR WEATHER_CG WEATHER_CB WEATHER_CI WEATHER_DR WEATHER_DG WEATHER_DB WEATHER_DI WEATHER_BR WEATHER_BG WEATHER_BB WEATHER_BI WEATHER_SR WEATHER_SG WEATHER_SB WEATHER_SI WEATHER_MR WEATHER_MG WEATHER_MB WEATHER_MI WEATHER_VR WEATHER_VG WEATHER_VB WEATHER_VI WEATHER_JR WEATHER_JG WEATHER_JB WEATHER_JI AURORA_LR AURORA_LG AURORA_LB AURORA_LI AURORA_HR AURORA_HG AURORA_HB AURORA_HI NETHER_NR NETHER_NG NETHER_NB NETHER_NI NETHER_VR NETHER_VG NETHER_VB NETHER_VI NETHER_CR NETHER_CG NETHER_CB NETHER_CI NETHER_WR NETHER_WG NETHER_WB NETHER_WI NETHER_BR NETHER_BG NETHER_BB NETHER_BI END_R END_G END_B END_I SELECTION_R SELECTION_G SELECTION_B SELECTION_I SELECTION_A SKY_BLEND FOG_BLEND  RETRO_FILTER_SIZE RETRO_FILTER_DEPTH WORLD_CURVATURE_SIZE

#Program Toggle
program.world0/shadow.enabled=SHADOW
program.world-1/shadow.enabled=SHADOW && MULTICOLORED_BLOCKLIGHT
program.world1/shadow.enabled=SHADOW
program.world0/shadowcomp.enabled=MULTICOLORED_BLOCKLIGHT
program.world-1/shadowcomp.enabled=MULTICOLORED_BLOCKLIGHT
program.world1/shadowcomp.enabled=MULTICOLORED_BLOCKLIGHT
program.world0/deferred.enabled=AO
program.world-1/deferred.enabled=AO
program.world1/deferred.enabled=AO
program.world0/composite1.enabled=LIGHT_SHAFT
program.world-1/composite1.enabled=LIGHT_SHAFT && MULTICOLORED_BLOCKLIGHT
program.world1/composite1.enabled=LIGHT_SHAFT
program.world0/composite2.enabled=MOTION_BLUR
program.world-1/composite2.enabled=MOTION_BLUR
program.world1/composite2.enabled=MOTION_BLUR
program.world0/composite3.enabled=DOF
program.world-1/composite3.enabled=DOF
program.world1/composite3.enabled=DOF
program.world0/composite6.enabled=FXAA && !RETRO_FILTER
program.world-1/composite6.enabled=FXAA && !RETRO_FILTER
program.world1/composite6.enabled=FXAA && !RETRO_FILTER
program.world0/composite7.enabled=TAA && !RETRO_FILTER
program.world-1/composite7.enabled=TAA && !RETRO_FILTER
program.world1/composite7.enabled=TAA && !RETRO_FILTER

#Disable Fast Leaves
# alphaTest.gbuffers_terrain=GREATER 0.1

#Allow Low Opacity
alphaTest.gbuffers_block=GREATER 0.005
alphaTest.gbuffers_clouds=GREATER 0.005
alphaTest.gbuffers_hand=GREATER 0.005
alphaTest.gbuffers_water=GREATER 0.001
alphaTest.gbuffers_weather=GREATER 0.0001

#Enable Beacon Beam Depth
beacon.beam.depth=true

#Custom Texture
texture.noise=tex/noise.png
texture.composite.colortex7=tex/dirt.png

#Custom Time Uniform
#variable.float.tAmin=frac(sunAngle - 0.033333333)
#variable.float.tAlin=if(tAmin < 0.433333333, tAmin * 1.15384615385, tAmin * 0.882352941176 + 0.117647058824)
#variable.float.hA=if(tAlin > 0.5, 1.0, 0.0)
#variable.float.tAfrc=frac(tAlin * 2.0)
#variable.float.tAfrs=tAfrc * tAfrc * (3.0 - 2.0 * tAfrc)
#variable.float.tAmix=if(hA < 0.5, 0.3, -0.1)
#uniform.float.timeAngle=(tAfrc * (1.0 - tAmix) + tAfrs * tAmix + hA) * 0.5
#uniform.float.shadowFade=clamp(1.0 - (abs(abs(sunAngle - 0.5) - 0.25) - 0.23) * 100.0, 0.0, 1.0)
uniform.float.timeAngle=worldTime / 24000
variable.float.shadowFadeOut1=clamp((worldTime - 12330) / 230, 0.0, 1.0)
variable.float.shadowFadeIn1=clamp((worldTime - 13010) / 220, 0.0, 1.0)
variable.float.shadowFadeOut2=clamp((worldTime - 22770) / 220, 0.0, 1.0)
variable.float.shadowFadeIn2=clamp((worldTime - 23440) / 230, 0.0, 1.0)
uniform.float.shadowFade=1.0 - (shadowFadeOut1 - shadowFadeIn1 + shadowFadeOut2 - shadowFadeIn2)
uniform.float.timeBrightness=max(sin(timeAngle * 6.28318530718), 0.0)

#Custom Blindness Uniform
variable.float.blindFactorSqrt=clamp(blindness * 2.0 - 1.0, 0.0, 1.0)
uniform.float.blindFactor=blindFactorSqrt * blindFactorSqrt

#Custom Biome Uniforms

#if MC_VERSION >= 11800
variable.float.yCold1=if(cameraPosition.y >= 113.0, 1, 0)
variable.float.yCold2=if(cameraPosition.y >= 153.0, 1, 0)
variable.float.yCold3=if(cameraPosition.y >= 193.0, 1, 0)

uniform.float.isCold=smooth(1, if(in(biome, BIOME_GROVE, BIOME_FROZEN_OCEAN, BIOME_FROZEN_RIVER, BIOME_SNOWY_PLAINS, BIOME_SNOWY_BEACH, BIOME_SNOWY_TAIGA, BIOME_ICE_SPIKES, BIOME_FROZEN_PEAKS, BIOME_JAGGED_PEAKS, BIOME_SNOWY_SLOPES), 1, 0), 10, 10) + \
                     smooth(11, if(in(biome, BIOME_WINDSWEPT_HILLS, BIOME_STONY_SHORE, BIOME_WINDSWEPT_FOREST, BIOME_WINDSWEPT_GRAVELLY_HILLS), 1, 0) * yCold1, 10, 10) + \
                     smooth(12, if(in(biome, BIOME_TAIGA, BIOME_OLD_GROWTH_SPRUCE_TAIGA), 1, 0) * yCold2, 10, 10) + \
                     smooth(13, if(in(biome, BIOME_OLD_GROWTH_PINE_TAIGA), 1, 0) * yCold3, 10, 10)
uniform.float.isDesert=smooth(2, if(in(biome, BIOME_DESERT), 1, 0), 10, 10)
uniform.float.isMesa=smooth(3, if(in(biome, BIOME_BADLANDS, BIOME_WOODED_BADLANDS, BIOME_ERODED_BADLANDS), 1, 0), 10, 10)
uniform.float.isSwamp=smooth(4, if(in(biome, BIOME_SWAMP, BIOME_MANGROVE_SWAMP), 1, 0), 10, 10)
uniform.float.isMushroom=smooth(5, if(in(biome, BIOME_MUSHROOM_FIELDS), 1, 0), 10, 10)
uniform.float.isSavanna=smooth(6, if(in(biome, BIOME_SAVANNA, BIOME_SAVANNA_PLATEAU), 1, 0), 10, 10)
uniform.float.isJungle=smooth(7, if(in(biome, BIOME_JUNGLE, BIOME_SPARSE_JUNGLE, BIOME_BAMBOO_JUNGLE), 1, 0), 10, 10)

uniform.float.isValley=smooth(8, if(in(biome, BIOME_SOUL_SAND_VALLEY), 1, 0), 10, 10)
uniform.float.isCrimson=smooth(9, if(in(biome, BIOME_CRIMSON_FOREST), 1, 0), 10, 10)
uniform.float.isWarped=smooth(10, if(in(biome, BIOME_WARPED_FOREST), 1, 0), 10, 10)
uniform.float.isBasalt=smooth(11, if(in(biome, BIOME_BASALT_DELTAS), 1, 0), 10, 10)
#else
variable.float.yCold1=if(cameraPosition.y >= 93.0, 1, 0)
variable.float.yCold2=if(cameraPosition.y >= 123.0, 1, 0)
variable.float.yCold3=if(cameraPosition.y >= 153.0, 1, 0)

uniform.float.isCold=smooth(1, if(in(biome, 10, 11, 12, 13, 26, 30, 31, 140, 158), 1, 0), 10, 10) + \
                     smooth(11, if(in(biome, 3, 25, 34, 131, 162), 1, 0) * yCold1, 10, 10) + \
                     smooth(12, if(in(biome, 5, 19, 32, 33, 133), 1, 0) * yCold2, 10, 10) + \
                     smooth(13, if(in(biome, 160, 161), 1, 0) * yCold3, 10, 10)
uniform.float.isDesert=smooth(2, if(in(biome, 2, 17, 130), 1, 0), 10, 10)
uniform.float.isMesa=smooth(3, if(in(biome, 37, 38, 39, 165, 166, 167), 1, 0), 10, 10)
uniform.float.isSwamp=smooth(4, if(in(biome, 6, 134), 1, 0), 10, 10)
uniform.float.isMushroom=smooth(5, if(in(biome, 14, 15), 1, 0), 10, 10)
uniform.float.isSavanna=smooth(6, if(in(biome, 35, 36, 163, 164), 1, 0), 10, 10)
uniform.float.isJungle=smooth(7, if(in(biome, 21, 22, 23, 48, 49, 149, 151), 1, 0), 10, 10)

uniform.float.isValley=smooth(8, if(in(biome, 170), 1, 0), 10, 10)
uniform.float.isCrimson=smooth(9, if(in(biome, 171), 1, 0), 10, 10)
uniform.float.isWarped=smooth(10, if(in(biome, 172), 1, 0), 10, 10)
uniform.float.isBasalt=smooth(11, if(in(biome, 173), 1, 0), 10, 10)
#endif

#Frame Jitter Uniform
uniform.float.framemod8 = frameCounter % 8
uniform.float.framemod2 = frameCounter % 2

#Disable Frustum Culling When Necessary
#ifdef WORLD_CURVATURE
frustum.culling=false
#endif

#Disable Entity Shadows If Disabled
#ifndef SHADOW_ENTITY
shadowEntities=false
#endif
#ifndef SHADOW_BLOCK_ENTITY
shadowBlockEntities=false
#endif

#Multi-Colored Blocklight Prerequisites
#ifdef MULTICOLORED_BLOCKLIGHT
iris.features.optional=CUSTOM_IMAGES FADE_VARIABLE
shadow.culling=reversed

#ifdef MCBL_HALF_HEIGHT
#if MCBL_DISTANCE == 128
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 128 64 128
image.lightimg0=lighttex0 rgba rgba16f float false false 128 64 128
image.lightimg1=lighttex1 rgba rgba16f float false false 128 64 128
#elif MCBL_DISTANCE == 192
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 192 96 192
image.lightimg0=lighttex0 rgba rgba16f float false false 192 96 192
image.lightimg1=lighttex1 rgba rgba16f float false false 192 96 192
#elif MCBL_DISTANCE == 256
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 256 128 256
image.lightimg0=lighttex0 rgba rgba16f float false false 256 128 256
image.lightimg1=lighttex1 rgba rgba16f float false false 256 128 256
#elif MCBL_DISTANCE == 384
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 384 192 384
image.lightimg0=lighttex0 rgba rgba16f float false false 384 192 384
image.lightimg1=lighttex1 rgba rgba16f float false false 384 192 384
#elif MCBL_DISTANCE == 512
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 512 256 512
image.lightimg0=lighttex0 rgba rgba16f float false false 512 256 512
image.lightimg1=lighttex1 rgba rgba16f float false false 512 256 512
#endif
#else
#if MCBL_DISTANCE == 128
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 128 128 128
image.lightimg0=lighttex0 rgba rgba16f float false false 128 128 128
image.lightimg1=lighttex1 rgba rgba16f float false false 128 128 128
#elif MCBL_DISTANCE == 192
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 192 192 192
image.lightimg0=lighttex0 rgba rgba16f float false false 192 192 192
image.lightimg1=lighttex1 rgba rgba16f float false false 192 192 192
#elif MCBL_DISTANCE == 256
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 256 256 256
image.lightimg0=lighttex0 rgba rgba16f float false false 256 256 256
image.lightimg1=lighttex1 rgba rgba16f float false false 256 256 256
#elif MCBL_DISTANCE == 384
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 384 256 384
image.lightimg0=lighttex0 rgba rgba16f float false false 384 256 384
image.lightimg1=lighttex1 rgba rgba16f float false false 384 256 384
#elif MCBL_DISTANCE == 512
image.voxelimg=voxeltex red_integer r8ui unsigned_int true false 512 256 512
image.lightimg0=lighttex0 rgba rgba16f float false false 512 256 512
image.lightimg1=lighttex1 rgba rgba16f float false false 512 256 512
#endif
#endif

#endif

#Disable Distant Horizons Shadow
#ifdef DISTANT_HORIZONS
dhShadow.enabled=false
blend.dh_water=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ONE_MINUS_SRC_ALPHA
#endif