// DRAWING STYLE SYSTEM
#define DRAWING_STYLE 4 // Drawing Style [1 2 3 4 5 6 7 8 9]

// Style-dependent settings resolution
#if DRAWING_STYLE == 1
    // Pencil on Paper Style
    #define STYLE_TEXTURE_PAPER 1
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 1
#elif DRAWING_STYLE == 2
    // Colorful Sketch Style
    #define STYLE_TEXTURE_PAPER 0
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 1
#elif DRAWING_STYLE == 3
	// Blue Pen Style
	#define STYLE_TEXTURE_PAPER 1
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 1
#elif DRAWING_STYLE == 4
    // Painterly Style
    #define STYLE_TEXTURE_PAPER 0
	#define STYLE_ENABLE_VORONOI_DISTORTION 1
	#define STYLE_ENABLE_SHADOWS 1
#elif DRAWING_STYLE == 5
    // Outline Pencil on Paper Style
    #define STYLE_TEXTURE_PAPER 1
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 1
#elif DRAWING_STYLE == 6
	// Blueprint
	#define STYLE_TEXTURE_PAPER 1
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 0
#elif DRAWING_STYLE == 7
    // Chalkboard
    #define STYLE_TEXTURE_PAPER 1
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 0
#elif DRAWING_STYLE == 8
    // Comic
    #define STYLE_TEXTURE_PAPER 0
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 1
#elif DRAWING_STYLE == 9
    // Textureless Comic
    #define STYLE_TEXTURE_PAPER 0
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 1
#else
    // Fallback to Pencil style
    #define STYLE_TEXTURE_PAPER 1
	#define STYLE_ENABLE_VORONOI_DISTORTION 0
	#define STYLE_ENABLE_SHADOWS 1
#endif

// Shadow settings
#define ENABLE_SHADOWS STYLE_ENABLE_SHADOWS // Enable shadow mapping [0 1]
#define COLORED_SHADOWS 1 // Enable colored shadows [0 1]
#define SHADOW_BRIGHTNESS 0.60 //Light levels are multiplied by this number when the surface is in shadows [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
#define CAVE_DARKNESS 0.75 // Brightness multiplier applied underground (lower = darker caves) [0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
#define BLOCK_LIGHT_INTENSITY 0.9 // Controls brightness of block lights [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0]

//texture settings:
#define Shininess 1.0 //Water shine intensity [0.0 0.25 0.5 0.75 1.0]
#define TEXTURE_PAPER_STYLE STYLE_TEXTURE_PAPER // Enable paper style [0 1]
#define TEXTURE_GRAYSCALE_STRENGTH 1.0 // How much to convert texture to grayscale [0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0]
#define ENABLE_TEXTURE_OUTLINES 0 // Enable texture outlines [0 1]
#define TEXTURE_OUTLINE_STRENGTH 0.8 // Outline intensity [0.0 0.5 0.8 1.0 1.5]
#define ENABLE_DIRECTIONAL_LIGHTING 1 // Enable directional lighitng [0 1]
#define ENABLE_VORONOI_DISTORTION STYLE_ENABLE_VORONOI_DISTORTION // Enable voronoi distortion [0 1]

// "Uncube" noise field
#define ENABLE_ENTITY_DISTORTION 1 // Apply Uncube-style geometry warp to entities [0 1]
#define UNCUBE_STRENGTH 0.2 //Uncube distortion level [0.0 0.2 0.4 0.6 0.8 1.0]
#define UNCUBE_CAMERA 0.5 //Camera height [0.0 0.5 1.0]
#define UNCUBE_TIME_SYNC 1	 // Enable time-synced uncube updates [0 1]
#define PAPER_TEXTURE_SPEED 2.0 // Paper texture update rate [0.1 0.5 1.0 2.0 5.0 10.0]
#define UNCUBE_MIN_DISTANCE 5.0 // Distance where uncube starts scaling [5.0 10.0 20.0]
#define UNCUBE_MAX_DISTANCE 50.0 // Distance where uncube reaches full strength [50.0 100.0 150.0]
#define UNCUBE_MIN_STRENGTH 0.02 // Minimum uncube strength up close [0.0 0.1 0.2]
#define UNCUBE_DISTANCE_SCALING 1 // Enable distance-based uncube scaling [0 1]

#define OUTLINE_THICKNESS 0.5 // Edge thickness [0.5 1.0 1.5 2.0 3.0]
#define TEXTURE_PAPER_WHITENESS 0.9 // How white the paper is [0.5 0.6 0.7 0.8 0.9 1.0]
#define GRAY_BIAS_STRENGTH 0.7 // How much to bias grays toward white [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define GRAY_BIAS_RANGE_MIN 0.15 // Lower bound for gray detection [0.1 0.125 0.15 0.175 0.2 0.225 0.25 0.275 0.3 0.325 0.35 0.375 0.4]
#define GRAY_BIAS_RANGE_MAX 0.9 // Upper bound for gray detection [0.6 0.65 0.7 0.75 0.8 0.85 0.9]
#define GRAY_BIAS_BRIGHTNESS_LIFT 0.6 // How much to brighten biased areas [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]

// Soft shadow settings
#define SOFT_SHADOWS 1 // Enable soft shadows [0 1]
#define PCF_SAMPLE 16 //[8 16 32 64]
#define PCF_BLUR_RADIUS 2.0 //[1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0]

const int shadowMapResolution = 1024; //[512 1024 2048 4096 8192]
const bool shadowtex0Nearest = true;
const bool shadowtex1Nearest = true;
const bool shadowcolor0Nearest = true;
const int noiseTextureResolution = 256;
const float sunPathRotation = 30.0; //[-30.0 -20.0 -10.0 0.0 10.0 20.0 30.0]
const bool shadowHardwareFiltering = false;
const float shadowDistance = 256.0; //[64.0 96.0 128.0 160.0 192.0 224.0 256.0 288.0 320.0 352.0 384.0 416.0 448.0 480.0 512.0]
const float shadowDistanceRenderMul = 1.0;

#define SHADOW_DISTORTION 1 // Enable shadow map distortion [0 1]
#define SHADOW_DISTORT_REDUCTION 0.15 // Distortion Reduction [0.05 0.10 0.15 0.20 0.25 0.30]
#define FAR_DISTANCE_BIAS_START 16.0 // Distance where extra bias scaling starts [16.0 24.0 32.0 40.0 48.0 56.0 64.0]
#define FAR_DISTANCE_BIAS_RANGE 48.0 // Range over which bias scales [32.0 48.0 64.0 80.0 96.0 112.0 128.0]
#define FAR_DISTANCE_BIAS_MAX 4.0 // Maximum bias multiplier for far distances [2.0 3.0 4.0 5.0]

// HANDHELD LIGHT
#define HANDHELD_LIGHT 1          // Enable handheld light [0 1]
#define HANDHELD_LIGHT_RANGE 10.0  // Falloff radius in blocks [4.0 6.0 8.0 10.0 12.0]
#define HANDHELD_LIGHT_STRENGTH 0.75 // Overall brightness [0.25 0.5 0.75 1.0 1.25 1.5]

//  CUSTOM SKY TOGGLE
#define CUSTOM_SKY 1 // Custom Sky [0 1]
#define WHITEOUT_SKY 0 // Whiteout Sky [0 1]

// --- Day horizon ---
#define SKY_DAY_HORIZON_R 0.60 // Day Horizon Red   [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
#define SKY_DAY_HORIZON_G 0.79 // Day Horizon Green [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.72 0.75 0.80 0.85 0.90 0.95 1.00]
#define SKY_DAY_HORIZON_B 0.94 // Day Horizon Blue  [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.85 0.90 0.95 1.00]

// --- Night horizon ---
#define SKY_NIGHT_HORIZON_R 0.010 // Night Horizon Red   [0.000 0.005 0.008 0.010 0.012 0.015 0.020 0.025 0.030 0.040 0.050]
#define SKY_NIGHT_HORIZON_G 0.012 // Night Horizon Green [0.000 0.005 0.008 0.010 0.012 0.015 0.020 0.025 0.030 0.040 0.050]
#define SKY_NIGHT_HORIZON_B 0.050 // Night Horizon Blue  [0.000 0.010 0.020 0.030 0.040 0.050 0.060 0.070 0.080 0.100 0.120]

// --- Sunset/sunrise tint ---
#define SKY_SUNSET_R 0.95 // Sunset/Sunrise Tint Red   [0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
#define SKY_SUNSET_G 0.35 // Sunset/Sunrise Tint Green [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50]
#define SKY_SUNSET_B 0.05 // Sunset/Sunrise Tint Blue  [0.00 0.02 0.04 0.05 0.06 0.08 0.10 0.12 0.15 0.20 0.25 0.30]
#define SKY_SUNSET_TINT_STRENGTH 0.55 // Sunset/Sunrise Sky Tint Strength [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80]

// --- Sunset/sunrise directional hotspot ---
#define SKY_SUNSET_HOTSPOT_WIDTH    0.18 // Sunset Hotspot Width  [0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 0.25 0.30 0.35 0.40]
#define SKY_SUNSET_HOTSPOT_STRENGTH 0.50 // Sunset Hotspot Brightness [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.60 0.70 0.80]

// --- Twilight ---
#define SKY_TWILIGHT_R  0.20 // Twilight Sky Red   [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40]
#define SKY_TWILIGHT_G  0.10 // Twilight Sky Green [0.00 0.05 0.08 0.10 0.12 0.15 0.20 0.25 0.30]
#define SKY_TWILIGHT_B  0.35 // Twilight Sky Blue  [0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60]
#define SKY_TWILIGHT_STRENGTH 0.50 // Twilight Strength [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]

// --- Decoupled light colors ---

#define BLOCK_LIGHT_COLOR_R 1.00 // Block/Torch Light Red   [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]
#define BLOCK_LIGHT_COLOR_G 0.75 // Block/Torch Light Green [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]
#define BLOCK_LIGHT_COLOR_B 0.40 // Block/Torch Light Blue  [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]

#define SUNLIGHT_DAY_COLOR_R 1.00 // Daylight Color Red   [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]
#define SUNLIGHT_DAY_COLOR_G 0.96 // Daylight Color Green [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]
#define SUNLIGHT_DAY_COLOR_B 0.90 // Daylight Color Blue  [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]

#define SUNLIGHT_NIGHT_COLOR_R 0.55 // Moonlight Color Red   [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]
#define SUNLIGHT_NIGHT_COLOR_G 0.65 // Moonlight Color Green [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]
#define SUNLIGHT_NIGHT_COLOR_B 1.00 // Moonlight Color Blue  [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]

// Day/night brightness multipliers.
#define DAY_AMBIENT_BRIGHTNESS   1.00 // Ambient/sky sunlight brightness during the day (the general outdoor light level). [0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.50 3.00 4.00 5.00]
#define DAY_DIRECT_BRIGHTNESS    1.00 // Direct sunlit-patch brightness during the day (surfaces facing the sun, not in shadow). [0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.50 3.00 4.00 5.00]
#define NIGHT_AMBIENT_BRIGHTNESS 1.75 // Ambient/sky moonlight brightness at night (the general outdoor glow). [0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.50 3.00 4.00 5.00]
#define NIGHT_DIRECT_BRIGHTNESS  1.75 // Direct moonlit-patch brightness at night (surfaces facing the moon, not in shadow). [0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.50 3.00 4.00 5.00]

// How much the actual moon phase tempers night brightness darker.
#define MOON_PHASE_INFLUENCE 0.50 // [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]

#define SUNLIGHT_GOLDEN_HOUR_STRENGTH 1.0 // How much the sunset/sunrise tint bleeds into sunlight & ambient sky light [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define AMBIENT_SKY_TINT_STRENGTH SUNLIGHT_GOLDEN_HOUR_STRENGTH/2 // How much the sunlight color tints ambient (indirect) sky lighting, vs staying neutral white [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]

// --- Rain sky modulation ---
#define RAIN_SKY_DARKEN      0.45 // How much rain darkens the sky/fog (0=none, 1=fully black) [0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80]
#define RAIN_SKY_DESATURATE  0.60 // How much rain desaturates the sky/fog (0=none, 1=fully grey) [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00]
#define RAIN_CLOUD_SUN_INTENSITY  0.01 // Cloud sun brightness during full rain [0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.08 0.10]
#define RAIN_CLOUD_MOON_INTENSITY 0.005 // Cloud moon brightness during full rain [0.00 0.001 0.002 0.003 0.004 0.005 0.01 0.02]

// VOLUMETRIC CLOUDS (adapted from Escheridia V4.1, MIT License 2025)
#define CLOUDS 				1         // [0 1 2] Cloud mode. 0=Off, 1=Volumetric (shader clouds), 2=Vanilla (Minecraft's built-in clouds). Vanilla and Volumetric never render at the same time; picking 2 also requires Clouds to be enabled in Minecraft's Video Settings. [CLOUDS]
#define CLOUD_STYLE         0         // [0 1]  0=Boxy (vanilla-like), 1=Fantasy
#define CLOUD_SCROLL_SPEED 0.3        // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0] Cloud Scroll Speed
#define CLOUD_PLANE_BOTTOM  164       // [120 130 140 150 160 164 170 180 190 200]
#define CLOUD_PLANE_TOP     173       // [130 140 150 160 170 173 180 190 200 210]
#define CLOUD_THICKNESS     6         // [-12 -10 -8 -6 -4 -2 0 2 4 6 8 10 12 16 20]
#define CLOUD_DENSITY       1.0       // [0.1 0.2 0.5 0.8 1.0 1.5 2.0 3.0 4.0 5.0]
#define CLOUD_DENSITY_THRESHOLD 0.428 // [0.0 0.1 0.2 0.3 0.35 0.4 0.428 0.5 0.6 0.7]
#define CLOUD_NOISE_SCALE   1.2       // [0.5 0.8 1.0 1.2 1.5 2.0 3.0 5.0]
#define CLOUD_DISTANCE      1800       // [300 400 500 600 700 800 1000 1200 1400 1600 1800 2000 2500 3000 4000 5000]
#define CLOUD_DISTANCE_TYPE 0         // [0 1]  0=fixed distance, 1=follow far plane
#define CLOUD_AMBIENT_INTENSITY 5.0 // [0.0 0.25 0.5 0.75 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0]  Sky ambient fill inside clouds
#define CLOUD_SUN_INTENSITY   0.5   // [0.1 0.2 0.3 0.4 0.5 0.55 0.6 0.7 0.8 0.9 1.0 1.2 1.5]  Direct sun/moon brightness on clouds
#define CLOUD_MOON_INTENSITY  0.10   // [0.01 0.02 0.04 0.06 0.08 0.10 0.12 0.15 0.18 0.20 0.25 0.30]  Moon contribution multiplier
#define CLOUD_SUNSET_TINT     2.0   // [0.0 0.25 0.5 0.75 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0]  Sunset/sunrise colour on clouds

