From 0fc3d21d8ae7dfe1f0bf095ba91b8265a788dbc2 Mon Sep 17 00:00:00 2001 From: Xonk Date: Wed, 27 Mar 2024 16:11:28 -0400 Subject: [PATCH] Remake post effects for taking damage, and make use of IRIS features to detect low health. ADDED new submenu "GAMPLAY POST EFFECTS" --- shaders/dimensions/final.fsh | 41 +++++++++-------- shaders/dimensions/final.vsh | 1 + shaders/lib/gameplay_effects.glsl | 73 +++++++++++++++++++++++++++++++ shaders/lib/settings.glsl | 12 ++++- shaders/shaders.properties | 31 +++++++++---- 5 files changed, 129 insertions(+), 29 deletions(-) create mode 100644 shaders/lib/gameplay_effects.glsl diff --git a/shaders/dimensions/final.fsh b/shaders/dimensions/final.fsh index 024fe40..5c3adc9 100644 --- a/shaders/dimensions/final.fsh +++ b/shaders/dimensions/final.fsh @@ -15,6 +15,8 @@ uniform sampler2D shadowtex1; #include "/lib/color_transforms.glsl" #include "/lib/color_dither.glsl" #include "/lib/res_params.glsl" +#include "/lib/gameplay_effects.glsl" + vec4 SampleTextureCatmullRom(sampler2D tex, vec2 uv, vec2 texSize ) { @@ -99,29 +101,29 @@ vec3 colorGrading(vec3 color) { return saturate(graded_shadows * shadows_amount + graded_mids * mids_amount + graded_highlights * highlights_amount); } -#ifdef HURT_AND_DEATH_EFFECT - uniform float hurt; - uniform float dying; - uniform float dead; +// #ifdef HURT_AND_DEATH_EFFECT +// uniform float hurt; +// uniform float dying; +// uniform float dead; - void PlayerDamagedEffect(inout vec3 outColor){ +// void PlayerDamagedEffect(inout vec3 outColor){ - if(dying > 0){ +// if(dying > 0){ - float vignette2 = clamp(1.0 - exp(-(sin(frameTimeCounter*7)*15+50) * dot(texcoord-0.5,texcoord-0.5)),0.0,1.0); +// float vignette2 = clamp(1.0 - exp(-(sin(frameTimeCounter*7)*15+50) * dot(texcoord-0.5,texcoord-0.5)),0.0,1.0); - outColor = mix(outColor, vec3(0.0), min(dying,1.0)*vignette2); - outColor = mix(outColor, vec3(0.0), dead); +// outColor = mix(outColor, vec3(0.0), min(dying,1.0)*vignette2); +// outColor = mix(outColor, vec3(0.0), dead); - }else{ +// }else{ - float vignette = clamp(1.0 - exp(-5 * dot(texcoord-0.5,texcoord-0.5)),0.0,1.0); +// float vignette = clamp(1.0 - exp(-5 * dot(texcoord-0.5,texcoord-0.5)),0.0,1.0); - outColor = mix(outColor, vec3(0.3,0.0,0.0), vignette*sqrt(hurt)); +// outColor = mix(outColor, vec3(0.3,0.0,0.0), vignette*sqrt(hurt)); - } - } -#endif +// } +// } +// #endif uniform int hideGUI; void main() { @@ -152,10 +154,8 @@ void main() { vec3 diff = col-lum; col = col + diff*(-lum*CROSSTALK + SATURATION); - #ifdef HURT_AND_DEATH_EFFECT - PlayerDamagedEffect(col); - #endif - + + vec3 FINAL_COLOR = clamp(int8Dither(col,texcoord),0.0,1.0); #ifdef TONE_CURVE @@ -167,7 +167,10 @@ void main() { #endif applyContrast(FINAL_COLOR, CONTRAST); // for fun + + applyGameplayEffects_FRAGMENT(FINAL_COLOR, texcoord); // for making the fun, more fun + gl_FragColor.rgb = FINAL_COLOR; #if DEBUG_VIEW == debug_SHADOWMAP diff --git a/shaders/dimensions/final.vsh b/shaders/dimensions/final.vsh index e41b357..eccbe10 100644 --- a/shaders/dimensions/final.vsh +++ b/shaders/dimensions/final.vsh @@ -2,6 +2,7 @@ varying vec2 texcoord; + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// diff --git a/shaders/lib/gameplay_effects.glsl b/shaders/lib/gameplay_effects.glsl new file mode 100644 index 0000000..a142927 --- /dev/null +++ b/shaders/lib/gameplay_effects.glsl @@ -0,0 +1,73 @@ +#ifdef IS_IRIS + uniform float currentPlayerHealth; + uniform float maxPlayerHealth; + uniform float oneHeart; + uniform float threeHeart; +#else + uniform bool isDead; +#endif + +uniform float hurt; + +// uniform float currentPlayerHunger; +// uniform float maxPlayerHunger; + +// uniform float currentPlayerArmor; +// uniform float maxPlayerArmor; + +// uniform float currentPlayerAir; +// uniform float maxPlayerAir; + +// uniform bool is_sneaking; +// uniform bool is_sprinting; +// uniform bool is_hurt; +// uniform bool is_invisible; +// uniform bool is_burning; + +// uniform bool is_on_ground; +// uniform bool isSpectator; + + +void applyGameplayEffects_FRAGMENT(inout vec3 color, in vec2 texcoord){ + + #if defined LOW_HEALTH_EFFECT || defined DAMAGE_TAKEN_EFFECT + // detect when health is zero + #ifdef IS_IRIS + bool isDead = currentPlayerHealth * maxPlayerHealth <= 0.0 && currentPlayerHealth > -1; + #else + float oneHeart = 0.0; + float threeHeart = 0.0; + #endif + + float vignette = sqrt(clamp(dot(texcoord*2.0 - 1.0, texcoord*2.0 - 1.0) * 0.5, 0.0, 1.0)); + + // heart beat effect to scale stuff with, make it more intense. theres a multiplier "MOTION_AMOUNT" for accessiblity + float beatingRate = isDead ? 0.0 : (oneHeart > 0.0 ? 15.0 : 7.5); + float heartBeat = (pow(sin(frameTimeCounter * beatingRate)*0.5+0.5,2.0)*0.2 + 0.1); + + // scale UV to be more and more lower frequency towards the edges of the screen, to create a tunnel vision effect, + vec2 zoomUV = 0.5 + (texcoord - 0.5) * (1.0 - vignette * (isDead ? 0.7 : heartBeat * MOTION_AMOUNT)); + vec3 distortedScreen = vec3(1.0, 0.0, 0.0) * dot(texture2D(colortex7, zoomUV).rgb, vec3(0.21, 0.72, 0.07)); + + #ifdef LOW_HEALTH_EFFECT + // at 1 heart or 3 hearts, create 2 levels of a strain / tunnel vision effect. + + // black and white version of the scene color. + vec3 colorLuma = vec3(1.0, 1.0, 1.0) * dot(color,vec3(0.21, 0.72, 0.07)); + + // I LOVE LINEAR INTERPOLATION + color = mix(color, mix(colorLuma, distortedScreen, vignette), mix(vignette * threeHeart, oneHeart, oneHeart)); + + if(isDead) color = distortedScreen*0.3; + #endif + + + #ifdef DAMAGE_TAKEN_EFFECT + // when damage is taken, flash the above effect. because it uses the stuff above, it seamlessly blends to them. + color = mix(color, distortedScreen, (vignette*vignette) * sqrt(hurt)); + #endif + + + // if(isDead) color = vec3(0); + #endif +} \ No newline at end of file diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 44ab2fa..da90382 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -579,6 +579,15 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) //#define BICUBIC_UPSCALING +/////////////////////////////////////////////////////// +// ----- GAMEPLAY POST EFFECT RELATED SETTINGS ----- // +/////////////////////////////////////////////////////// + +#define MOTION_AMOUNT 0.25 // [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] +#define DAMAGE_TAKEN_EFFECT +#define LOW_HEALTH_EFFECT + + ///////////////////////////////////////// // ----- NETHER RELATED SETTINGS ----- // @@ -605,7 +614,6 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) #define ORB_ColMult 1.0 // [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 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 ] - /////////////////////////////// // ----- MISC SETTINGS ----- // /////////////////////////////// @@ -627,7 +635,7 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) #define LIT_PARTICLE_BRIGHTNESS 2.0 // [1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 100.] -#define HURT_AND_DEATH_EFFECT + #define SELECT_BOX #define LIGHTNING_FLASH // FOR OPTIFINE USERS. some mods change the sky color, which can trigger the lightning flash detection. diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 82d5628..f93d067 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -97,7 +97,7 @@ alphaTest.gbuffers_skybasic=false alphaTest.gbuffers_skytextured=false -sliders = TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS DAY3_l0_coverage DAY3_l0_density DAY3_l1_coverage DAY3_l1_density DAY3_l2_coverage DAY3_l2_density DAY3_ufog_density DAY3_cfog_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE CONTRAST EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance Sky_Brightness fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColorG sunColorB sunColorR sky_mieg sky_coefficientMieB sky_coefficientMieG sky_coefficientMieR sky_coefficientRayleighB sky_coefficientRayleighG sky_coefficientRayleighR CLOUDS_QUALITY EXPOSURE_MULTIPLIER MIN_LIGHT_AMOUNT TORCH_R TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST SSR_STEPS ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal aperture MANUAL_FOCUS SHADOW_FILTER_SAMPLE_COUNT Max_Filter_Depth VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius Water_Top_Layer fog_coefficientRayleighB SHARPENING rayMarchSampleCount Dirt_Amount Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B Purkinje_strength Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Texture_MipMap_Bias DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_RESOLUTION BLOOM_QUALITY VL_RENDER_RESOLUTION RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 Roughness_Threshold Sun_specular_Strength reflection_quality DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH SHADOWS_GRADE_R MIDS_GRADE_R HIGHLIGHTS_GRADE_R SHADOWS_GRADE_G MIDS_GRADE_G HIGHLIGHTS_GRADE_G SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL +sliders = MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS DAY3_l0_coverage DAY3_l0_density DAY3_l1_coverage DAY3_l1_density DAY3_l2_coverage DAY3_l2_density DAY3_ufog_density DAY3_cfog_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE CONTRAST EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance Sky_Brightness fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColorG sunColorB sunColorR sky_mieg sky_coefficientMieB sky_coefficientMieG sky_coefficientMieR sky_coefficientRayleighB sky_coefficientRayleighG sky_coefficientRayleighR CLOUDS_QUALITY EXPOSURE_MULTIPLIER MIN_LIGHT_AMOUNT TORCH_R TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST SSR_STEPS ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal aperture MANUAL_FOCUS SHADOW_FILTER_SAMPLE_COUNT Max_Filter_Depth VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius Water_Top_Layer fog_coefficientRayleighB SHARPENING rayMarchSampleCount Dirt_Amount Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B Purkinje_strength Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Texture_MipMap_Bias DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_RESOLUTION BLOOM_QUALITY VL_RENDER_RESOLUTION RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 Roughness_Threshold Sun_specular_Strength reflection_quality DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH SHADOWS_GRADE_R MIDS_GRADE_R HIGHLIGHTS_GRADE_R SHADOWS_GRADE_G MIDS_GRADE_G HIGHLIGHTS_GRADE_G SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL screen.columns=2 screen = \ @@ -269,7 +269,7 @@ BLISS_SHADERS \ ######## POST screen.Post_Processing.columns=2 - screen.Post_Processing = [TAA_OPTIONS] [Tonemapping] [Exposure] [DepthOfField] [Purkinje_effect] [COLOR_GRADING] SHARPENING BLOOM_STRENGTH + screen.Post_Processing = [TAA_OPTIONS] [Tonemapping] [Exposure] [DepthOfField] [Purkinje_effect] [COLOR_GRADING] [GAMEPLAY_EFFECTS] SHARPENING BLOOM_STRENGTH ### TAA screen.TAA_OPTIONS.columns = 1 screen.TAA_OPTIONS= SCREENSHOT_MODE TAA BLEND_FACTOR TAA_UPSCALING SCALE_FACTOR @@ -297,11 +297,14 @@ BLISS_SHADERS \ SHADOWS_GRADE_G MIDS_GRADE_G HIGHLIGHTS_GRADE_G \ SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B \ SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL + ### COOL GAMEPLAY EFFECTS + screen.GAMEPLAY_EFFECTS = MOTION_AMOUNT DAMAGE_TAKEN_EFFECT LOW_HEALTH_EFFECT + ######## MISC SETTINGS - screen.Misc_Settings = DEBUG_VIEW [the_orb] display_LUT WhiteWorld SSS_view ambientLight_only LIGHTNING_FLASH HURT_AND_DEATH_EFFECT LIT_PARTICLE_BRIGHTNESS PLANET_GROUND_BRIGHTNESS BLOOMY_PARTICLES ORIGINAL_CHOCAPIC_SKY BIOME_TINT_WATER CLOUDS_INFRONT_OF_WORLD SELECT_BOX DENOISE_SSS_AND_SSAO WATER_CAUSTICS_BRIGHTNESS HYPER_DETAILED_WAVES + screen.Misc_Settings = DEBUG_VIEW [the_orb] display_LUT WhiteWorld SSS_view ambientLight_only LIGHTNING_FLASH LIT_PARTICLE_BRIGHTNESS PLANET_GROUND_BRIGHTNESS BLOOMY_PARTICLES ORIGINAL_CHOCAPIC_SKY BIOME_TINT_WATER CLOUDS_INFRONT_OF_WORLD SELECT_BOX DENOISE_SSS_AND_SSAO WATER_CAUSTICS_BRIGHTNESS HYPER_DETAILED_WAVES screen.the_orb.columns = 1 screen.the_orb = THE_ORB ORB_X ORB_Y ORB_Z ORB_ColMult ORB_R ORB_G ORB_B @@ -519,12 +522,24 @@ uniform.float.noPuddleAreas = smooth(if(in(biome, 3, 4, 16, 37, 39, 48, 49, 31, ####### RANDOM STUFF ####### ############################ -#ifdef HURT_AND_DEATH_EFFECT - uniform.float.hurt = smooth(if(is_hurt,1,0),0,1) - #ifndef IS_IRIS - uniform.float.dying = smooth(if(!is_alive,2,0),3,0) - uniform.float.dead = smooth(if(dying >= 1.99, 1,0),1,0) + + # float Currenthealth = currentPlayerHealth * maxPlayerHealth; + # bool isDead = Currenthealth < 1 && currentPlayerHealth > -1; + # bool oneHeart = Currenthealth <= 2 && currentPlayerHealth > -1; + # bool threeHeart = Currenthealth <= 6 && currentPlayerHealth > -1; + + + +#if defined LOW_HEALTH_EFFECT || defined DAMAGE_TAKEN_EFFECT + #ifdef IS_IRIS + variable.float.Currenthealth = currentPlayerHealth * maxPlayerHealth + uniform.float.oneHeart = smooth(if(Currenthealth <= 2.0 && currentPlayerHealth > -1.0, 1,0), 0.0,1.0) + uniform.float.threeHeart = smooth(if(Currenthealth <= 6.0 && currentPlayerHealth > -1.0, 1,0), 0.0,1.0) + #else + uniform.bool.isDead = !is_alive #endif + + uniform.float.hurt = smooth(if(is_hurt,1,0),0.0,0.5) #endif # uniform.vec3.CamPos = vec3(cameraPosition.x,cameraPosition.y,cameraPosition.z)