From 68f029d8c35be664e5507ccf9127384695cc96a0 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sat, 4 May 2024 23:55:14 -0400 Subject: [PATCH 01/12] variable normal offset strength; misc fixes --- shaders/dimensions/all_translucent.fsh | 11 +- shaders/dimensions/composite1.fsh | 11 +- shaders/entity.properties | 3 +- shaders/lang/en_us.lang | 4 +- shaders/lib/settings.glsl | 1 + shaders/shaders.properties | 4 +- shaders/template/block.properties | 690 +++++++++++++++++++++++++ shaders/world0/shadow.vsh | 4 +- 8 files changed, 713 insertions(+), 15 deletions(-) create mode 100644 shaders/template/block.properties diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index c1087fd..03145fb 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -619,13 +619,14 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) #endif #ifdef IS_LPV_ENABLED - vec3 lpvPos = GetLpvPosition(feetPlayerPos); + vec3 normalOffset = 0.5*worldSpaceNormal; - #ifdef LPV_NORMAL_OFFSET - lpvPos += -0.5*worldSpaceNormal + viewToWorld(normal); - #else - lpvPos += 0.5*worldSpaceNormal; + #if LPV_NORMAL_STRENGTH > 0 + vec3 texNormalOffset = -normalOffset + viewToWorld(normal); + normalOffset = mix(normalOffset, texNormalOffset, (LPV_NORMAL_STRENGTH*0.01)); #endif + + vec3 lpvPos = GetLpvPosition(feetPlayerPos) + normalOffset; #else const vec3 lpvPos = vec3(0.0); #endif diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 40b037d..056ab96 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -1175,13 +1175,14 @@ void main() { #endif #ifdef IS_LPV_ENABLED - vec3 lpvPos = GetLpvPosition(feetPlayerPos); + vec3 normalOffset = 0.5*viewToWorld(FlatNormals); - #ifdef LPV_NORMAL_OFFSET - lpvPos += -0.5*viewToWorld(FlatNormals) + slopednormal; - #else - lpvPos += 0.5*viewToWorld(FlatNormals); + #if LPV_NORMAL_STRENGTH > 0 + vec3 texNormalOffset = -normalOffset + slopednormal; + normalOffset = mix(normalOffset, texNormalOffset, (LPV_NORMAL_STRENGTH*0.01)); #endif + + vec3 lpvPos = GetLpvPosition(feetPlayerPos) + normalOffset; #else const vec3 lpvPos = vec3(0.0); #endif diff --git a/shaders/entity.properties b/shaders/entity.properties index 79d75b1..23b7965 100644 --- a/shaders/entity.properties +++ b/shaders/entity.properties @@ -17,7 +17,8 @@ entity.1303= tnt firework_rocket entity.1401 = giant ghast elder_guardian ## weak sss (same as weak sss for blocks) -entity.1402 = furnace_minecart player sheep frog chicken iron_golem snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin blaze creeper drowned endermite evoker guardian hoglin husk magma_cube phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama +entity.1402 = furnace_minecart sheep frog chicken iron_golem snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin blaze creeper drowned endermite evoker guardian hoglin husk magma_cube phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama +#removed: player ################################################ ###### REFLECTIVE TRANSLUCENTS diff --git a/shaders/lang/en_us.lang b/shaders/lang/en_us.lang index bc98f7d..6e9647f 100644 --- a/shaders/lang/en_us.lang +++ b/shaders/lang/en_us.lang @@ -97,7 +97,9 @@ screen.Direct_Light = Direct Light value.LPV_SIZE.6 = Small [64] value.LPV_SIZE.7 = Medium [128] value.LPV_SIZE.8 = Large [256] - option.LPV_NORMAL_OFFSET = Normal-Offset + option.LPV_NORMAL_STRENGTH = Normal Strength + suffix.LPV_NORMAL_STRENGTH = % + value.LPV_NORMAL_STRENGTH.0 = OFF option.LPV_ENTITY_LIGHTS = Entity Lights option.LPV_REDSTONE_LIGHTS = Redstone Lights option.LPV_COLORED_CANDLES = Colored Candles diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 4d68378..2f9716a 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -681,6 +681,7 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) //#define LPV_ENABLED #define LPV_SIZE 7 // [6 7 8] +#define LPV_NORMAL_STRENGTH 50 // [0 10 20 30 40 50 60 70 80 90 100] #define LPV_NORMAL_OFFSET #define LPV_ENTITY_LIGHTS #define LPV_REDSTONE_LIGHTS diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 7a852c1..946cf5c 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -110,7 +110,7 @@ alphaTest.gbuffers_skybasic = false alphaTest.gbuffers_skytextured = false -sliders = sss_density_multiplier sss_absorbance_multiplier 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 +sliders = sss_density_multiplier sss_absorbance_multiplier 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 LPV_NORMAL_STRENGTH screen.columns=2 screen = \ @@ -174,7 +174,7 @@ BLISS_SHADERS \ ### FloodFill screen.LPV.columns = 1 - screen.LPV = LPV_ENABLED LPV_SIZE LPV_NORMAL_OFFSET LPV_ENTITY_LIGHTS LPV_REDSTONE_LIGHTS LPV_COLORED_CANDLES + screen.LPV = LPV_ENABLED LPV_SIZE LPV_NORMAL_STRENGTH LPV_ENTITY_LIGHTS LPV_REDSTONE_LIGHTS LPV_COLORED_CANDLES ######## WORLD screen.World.columns=1 screen.World = [Water] [Waving_Stuff] [LabPBR] SKY_GROUND RESOURCEPACK_SKY AEROCHROME_MODE AEROCHROME_PINKNESS AEROCHROME_WOOL_ENABLED diff --git a/shaders/template/block.properties b/shaders/template/block.properties new file mode 100644 index 0000000..5347087 --- /dev/null +++ b/shaders/template/block.properties @@ -0,0 +1,690 @@ +layer.translucent = minecraft:glass minecraft:glass_pane + +#= BLOCK_WATER +block.8= minecraft:water minecraft:flowing_water + +#= BLOCK_BAMBOO +block.11= bamboo bamboo_sapling + +#= BLOCK_GRASS_SHORT +block.*= minecraft:short_grass minecraft:grass + +#= BLOCK_GRASS_TALL_LOWER +block.*= minecraft:tall_grass:half=lower + +#= BLOCK_GRASS_TALL_UPPER +block.*= minecraft:tall_grass:half=upper + +#= BLOCK_SAPLING +block.*= minecraft:oak_sapling minecraft:spruce_sapling minecraft:birch_sapling minecraft:jungle_sapling minecraft:acacia_sapling minecraft:dark_oak_sapling + +#= BLOCK_VINE +block.*= vine + + +####### ----- waving blocks with SSS ----- ####### + + ## ground waving + ## add a newline to organize for modded blocks + #= BLOCK_GROUND_WAVING + block.60= minecraft:sunflower:half=upper minecraft:beetroots minecraft:potatoes minecraft:carrots minecraft:wheat minecraft:nether_wart minecraft:kelp minecraft:large_fern:half=upper minecraft:peony:half=upper minecraft:rose_bush:half=upper minecraft:lilac:half=upper minecraft:crimson_roots minecraft:nether_sprouts minecraft:warped_roots minecraft:seagrass minecraft:tall_seagrass:half=upper minecraft:wither_rose minecraft:lily_of_the_valley minecraft:cornflower minecraft:sweet_berry_bush minecraft:oxeye_daisy minecraft:pink_tulip minecraft:white_tulip minecraft:orange_tulip minecraft:red_tulip minecraft:azure_bluet minecraft:allium minecraft:blue_orchid minecraft:poppy minecraft:dandelion minecraft:dead_bush + # removed: sapling(s) + + ## ground waving vertical models. this exists to brighten up the sides of grass and stuff in shaded places they blend in better with the world. + #= BLOCK_GROUND_WAVING_VERTICAL + block.*= minecraft:fern conquest:acacia_sapling conquest:alder_tree_sapling conquest:apple_tree_sapling conquest:aspen_tree_sapling conquest:birch_sapling conquest:cherry_tree_sapling conquest:dark_oak_sapling conquest:downy_willow_tree_sapling conquest:gorse_tree_sapling conquest:grape_vine_sapling conquest:horse_chestnut_tree_sapling conquest:jungle_sapling conquest:larch_tree_sapling conquest:mallorn_tree_sapling conquest:oak_sapling conquest:orange_tree_sapling conquest:pear_tree_sapling conquest:pine_tree_sapling conquest:plum_tree_sapling conquest:rowan_tree_sapling conquest:spruce_sapling conquest:willow_tree_sapling conquest:angelica conquest:black_knapweed conquest:buttercups conquest:cornflower conquest:dandelion conquest:elanor conquest:goldenrod conquest:harebell conquest:lily_of_the_valley conquest:lobelia_flowers conquest:marsh_ragwort conquest:meadow_saffron conquest:mediterranean_wild_tulip conquest:moorland_spotted_orchid conquest:niphredil conquest:orange_tulip conquest:orpine conquest:oxeye_daisy conquest:pasque_flower conquest:pink_tulip conquest:poppy conquest:red_tulip conquest:rock_rose conquest:sea_lavender conquest:simbelmyne conquest:white_clematis conquest:white_tulip conquest:wild_dagga conquest:allium conquest:barley conquest:bean_pole conquest:beetroots conquest:cabbage conquest:carrots conquest:common_beans conquest:corn conquest:flax conquest:heirloom_wheat_crops conquest:hemp conquest:lavender conquest:peas conquest:potatoes conquest:rice conquest:thyme conquest:tobacco conquest:turnips conquest:water_mint conquest:wheat conquest:wild_basil conquest:wild_parsley conquest:wild_wheat conquest:common_meadow_grass conquest:cotton_grass conquest:dead_grass conquest:deergrass conquest:grass conquest:kentucky_bluegrass conquest:lush_grass conquest:purple_moor_grass conquest:sea_arrowgrass conquest:seagrass conquest:sweet_grass conquest:timothy_grass conquest:wavy_hair_grass conquest:pine_cones conquest:spruce_cones conquest:beautyberry_bush conquest:bilberry_bush conquest:blackberry_bush conquest:bog_blueberry_bush conquest:broom_bush conquest:dead_bush conquest:hawthorn_bush conquest:lingonberry_bush conquest:raspberry_bush conquest:alpine_sow_thristle conquest:athelas conquest:autumnal_dwarf_birch conquest:birdsfoot_trefoil conquest:bog_asphodel conquest:bottle_sedge conquest:cattails conquest:common_cow_wheat conquest:cow_parsley conquest:cross leaved heath conquest:dead_reeds conquest:dead_shrubs conquest:desert_shrub conquest:dogs_mercury conquest:dooryard_dock conquest:dry_reeds conquest:greater_fen_sedge conquest:greater_wood_rush conquest:green_meadow_fescue conquest:green_spurge conquest:heather conquest:meadow_fescue conquest:melancholy_thristle conquest:nettles conquest:nightshade conquest:papyrus conquest:purple_wolfs_bane conquest:red_common_cow_wheat conquest:rosebay_willowherb conquest:rushes conquest:wild_shrub conquest:sedge conquest:small_fescue conquest:small_scabious conquest:sweet_woodruff conquest:wild_overgrown_nettles conquest:wild_shrub conquest:wood_horsetail conquest:woodland_sedge conquest:wormwood conquest:yellow_wolfs_bane conquest:autumnal_bracken conquest:bracken conquest:dark_autumnal_bracken conquest:dead_bracken conquest:fern conquest:fern_1 conquest:fern_2 conquest:harts_tongue_fern conquest:large_fern_1 conquest:large_fern_2 conquest:large_fern_3 conquest:thick_fern conquest:tall_grass conquest:large_fern conquest:sunflower conquest:tall_lilac conquest:peony conquest:rose_bush conquest:tall_seagrass conquest:cypress conquest:young_tree conquest:young_frozen_tree conquest:cross_leaved_heath conquest:jungle_ground_cover conquest:alpine_sow_thistle conquest:duckweed conquest:red_mushroom conquest:brown_mushroom + + ## air waving + ## add a newline to organize for modded blocks + #= BLOCK_AIR_WAVING + block.*= minecraft:azalea_leaves minecraft:flowering_azalea_leaves minecraft:cherry_leaves minecraft:mangrove_leaves minecraft:vine minecraft:oak_leaves minecraft:spruce_leaves minecraft:birch_leaves minecraft:jungle_leaves minecraft:acacia_leaves minecraft:dark_oak_leaves westerosblocks:vine_jasmine westerosblocks:apple_fruit_leaves westerosblocks:apricot_fruit_leaves westerosblocks:cherry_fruit_leaves westerosblocks:purple_grape_fruit_leaves westerosblocks:lemon_fruit_leaves westerosblocks:lime_fruit_leaves westerosblocks:orange_fruit_leaves westerosblocks:peach_fruit_leaves westerosblocks:plum_fruit_leaves westerosblocks:pomegranate_fruit_leaves westerosblocks:weirwood_leaves westerosblocks:hop_fruit_leaves westerosblocks:olive_fruit_leaves westerosblocks:palm_leaves westerosblocks:white_grape_fruit_leaves conquest:apple_tree_leaves conquest:ash_tree_leaves conquest:aspen_leaves conquest:autumnal_aspen_leaves conquest:dark_deciduous_leaves conquest:autumnal_beech_tree_leaves conquest:autumnal_birch_leaves conquest:autumnal_horse_chestnut_leaves conquest:autumnal_maple_leaves conquest:autumnal_oak_leaves conquest:autumnal_weeping_willow_leaves conquest:banana_tree_leaves conquest:beech_tree_leaves conquest:bright_autumnal_beech_tree_leaves conquest:bright_autumnal_weeping_willow_leaves conquest:bushy_joshua_tree_leaves conquest:caribbean_royal_palm_leaves conquest:caribbean_royal_palm_leaves_corner conquest:cherry_tree_leaves conquest:dark_beech_tree_leaves conquest:date_palm_leaves conquest:diseased_horse_chestnut_leaves conquest:downy_willow_leaves conquest:downy_willow_leaves_tip conquest:faded_autumnal_beech_tree_leaves conquest:dead_norway_spruce_needles conquest:orange_larch_leaf_top conquest:yellow_larch_leaf_top conquest:larch_leaf_top conquest:larch_spruce_leaf_top conquest:larch_leaf_slab conquest:larch_leaf_long_branch conquest:larch_leaf_branch conquest:larch_spruce_leaf_top conquest:yellow_larch_spruce_leaf_top conquest:yellow_larch_leaf_slab conquest:yellow_larch_leaf_long_branch conquest:yellow_larch_leaf_branch conquest:orange_larch_spruce_leaf_top conquest:orange_larch_leaf_slab conquest:oranch_larch_leaf_long_branch conquest:orange_larch_leaf_branch conquest:dead_spruce_leaf_top conquest:dead_spruce_leaf_slab conquest:dead_spruce_leaf_long_branch conquest:dead_spruce_leaf_branch conquest:light_spruce_leaf_top conquest:light_spruce_leaf_slab conquest:light_spruce_leaf_long_branch conquest:light_spruce_leaf_branch conquest:goat_willow_leaves conquest:gorse_leaves conquest:grape_vine_leaves conquest:holly_leaves conquest:horse_chestnut_leaves conquest:joshua_tree_leaves conquest:lemon_tree_leaves conquest:old_caribbean_royal_palm_leaves conquest:old_caribbean_royal_palm_leaves_corner conquest:olive_tree_leaves conquest:orange_tree_leaves conquest:pear_tree_leaves conquest:plum_tree_leaves conquest:rowan_leaves conquest:weeping_willow_leaves conquest:wisteria_leaves conquest:yellow_autumnal_weeping_willow_leaves conquest:dark_spruce_needles conquest:dead_pine_needles conquest:dead_spruce_needles conquest:larch_needles conquest:light_spruce_needles conquest:orange_autumnal_larch_needles conquest:pine_needles conquest:yellow_autumnal_larch_needles conquest:dead_deciduous_branches conquest:mistletoe_garland conquest:lilac conquest:pink_cherry_blossoms conquest:purple_cherry_blossoms conquest:red_cherry_blossoms conquest:white_cherry_blossoms conquest:wisteria_blossoms conquest:hanging_moss conquest:lianas conquest:moss_vines conquest:spruce_leaf_top conquest:spruce_leaf_branch conquest:spruce_leaf_slab conquest:spruce_leaf_long_branch conquest:thick_hanging_ivy conquest:thick_ivy conquest:hanging_roots conquest:acacia_branch_tip conquest:acacia_branch_tip_45 conquest:acacia_branch_tip_2 conquest:acacia_branch_tip_2_45 conquest:beech_branch_tip conquest:beech_branch_tip_45 conquest:beech_branch_tip_2 conquest:beech _branch_tip_2_45 conquest:birch_branch_tip conquest:birch_branch_tip_45 conquest:birch_branch_tip_2 conquest:birch_branch_tip_2_45 conquest:oak_branch_tip conquest:oak_branch_tip_45 conquest:oak_branch_tip_2 conquest:oak_branch_tip_2_45 conquest:spruce_branch_tip conquest:spruce_branch_tip_45 conquest:spruce_branch_tip_2 conquest:spruce_branch_tip_2_45 conquest:orange_pine_branch_tip conquest:orange_pine_branch_tip_45 conquest:orange_pine_branch_tip_2 conquest:orange_pine_branch_tip_2_45 + + +####### ----- blocks with SSS ----- ####### + + ## strong sss + #= BLOCK_SSS_STRONG + block.80= minecraft:flowering_azalea minecraft:tall_seagrass minecraft:seagrass minecraft:kelp minecraft:large_fern:half=lower minecraft:tall_seagrass minecraft:kelp_plant minecraft:peony minecraft:rose_bush minecraft:lilac minecraft:sunflower:half=lower minecraft:packed_ice minecraft:blue_ice minecraft:melon_stem minecraft:pumpkin_stem minecraft:attached_melon_stem minecraft:attached_pumpkin_stem minecraft:lily_pad westerosblocks:blackberry_bush westerosblocks:blueberry_bush westerosblocks:raspberry_bush westerosblocks:juniper_bush westerosblocks:red_rose_bush westerosblocks:pink_rose_bush westerosblocks:white_rose_bush westerosblocks:yellow_rose_bush westerosblocks:yellow_wildflowers westerosblocks:green_spiny_herb westerosblocks:green_leafy_herb westerosblocks:orange_marigolds westerosblocks:orange_trollius westerosblocks:blue_forgetmenots westerosblocks:pink_wildflowers westerosblocks:yellow_tansy westerosblocks:blue_flax westerosblocks:white_daisies westerosblocks:yellow_daisies westerosblocks:green_scrub_grass westerosblocks:dead_scrub_grass westerosblocks:yellow_bedstraw westerosblocks:orange_bells westerosblocks:blue_bells westerosblocks:blue_swamp_bells westerosblocks:yellow_buttercups westerosblocks:orange_bog_asphodel westerosblocks:yellow_lupine westerosblocks:blue_hyacinth westerosblocks:pink_thistle westerosblocks:yellow_dandelions westerosblocks:yellow_daffodils westerosblocks:yellow_roses westerosblocks:strawberry_bush westerosblocks:white_lilyofthevalley westerosblocks:yellow_bells westerosblocks:yellow_sunflower westerosblocks:white_roses westerosblocks:red_dark_roses westerosblocks:yellow_hellebore westerosblocks:meadow_fescue westerosblocks:red_poppies westerosblocks:red_roses westerosblocks:purple_pansies westerosblocks:purple_roses westerosblocks:orange_sun_star westerosblocks:pink_primrose westerosblocks:red_aster westerosblocks:blue_chicory westerosblocks:red_flowering_spiny_herb westerosblocks:purple_foxglove westerosblocks:pink_allium westerosblocks:purple_violets westerosblocks:white_chamomile westerosblocks:red_tulips westerosblocks:white_peony westerosblocks:purple_alpine_sowthistle westerosblocks:red_carnations westerosblocks:magenta_roses westerosblocks:red_chrysanthemum westerosblocks:blue_orchid westerosblocks:yellow_rudbeckia westerosblocks:pink_tulips westerosblocks:cranberry_bush westerosblocks:purple_lavender westerosblocks:red_sourleaf_bush westerosblocks:pink_sweet_peas westerosblocks:red_sorrel westerosblocks:pink_roses westerosblocks:unshaded_grass westerosblocks:cow_parsely westerosblocks:bracken westerosblocks:lady_fern westerosblocks:nettle westerosblocks:dead_bracken westerosblocks:fireweed westerosblocks:heather westerosblocks:red_fern westerosblocks:dock_leaf westerosblocks:jasmine_vines westerosblocks:dappled_moss westerosblocks:cushion_moss_wall westerosblocks:hemp_short westerosblocks:hemp_tall westerosblocks:hemp_dense westerosblocks:crop_carrots westerosblocks:crop_wheat westerosblocks:crop_turnips westerosblocks:crop_peas westerosblocks:cattails westerosblocks:jungle_tall_fern westerosblocks:jungle_tall_grass westerosblocks:savanna_tall_grass + + ## weak sss + #= BLOCK_SSS_WEAK + block.*= minecraft:amethyst_block minecraft:budding_amethyst minecraft:small_amethyst_bud minecraft:pitcher_plant minecraft:small_dripleaf minecraft:grass_block:snowy=true minecraft:snow_block minecraft:snow powder_snow cobweb red_mushroom_block brown_mushroom_block weeping_vines weeping_vines_plant twisting_vines twisting_vines_plant tube_coral tube_coral_block tube_coral_fan tube_coral_wall_fan horn_coral horn_coral_block horn_coral_fan horn_coral_wall_fan fire_coral fire_coral_block fire_coral_fan fire_coral_wall_fan dead_brain_coral dead_brain_coral_block dead_brain_coral_fan dead_brain_coral_wall_fan dead_bubble_coral dead_bubble_coral_block dead_bubble_coral_fan dead_bubble_coral_wall_fan dead_bush dead_fire_coral dead_fire_coral_block dead_fire_coral_fan dead_fire_coral_wall_fan dead_horn_coral dead_horn_coral_block dead_horn_coral_fan dead_horn_coral_wall_fan dead_tube_coral dead_tube_coral_block dead_tube_coral_fan dead_tube_coral_wall_fan bubble_coral bubble_coral_block bubble_coral_fan bubble_coral_wall_fan brain_coral brain_coral_block brain_coral_fan brain_coral_wall_fan minecraft:spore_blossom minecraft:cave_vines:berries=false minecraft:cave_vines_plant:berries=false minecraft:glow_lichen minecraft:melon minecraft:pumpkin minecraft:big_dripleaf minecraft:big_dripleaf_stem minecraft:cactus minecraft:hay_block minecraft:brown_mushroom minecraft:mushroom_stem minecraft:sugar_cane minecraft:crimson_fungus minecraft:warped_fungus minecraft:sea_pickle:waterlogged=false minecraft:honeycomb_block + + ## weak sss + #= BLOCK_SSS_WEAK_2 + block.*= minecraft:white_wool minecraft:orange_wool minecraft:magenta_wool minecraft:light_blue_wool minecraft:yellow_wool minecraft:lime_wool minecraft:pink_wool minecraft:gray_wool minecraft:light_gray_wool minecraft:cyan_wool minecraft:purple_wool minecraft:blue_wool minecraft:brown_wool minecraft:green_wool minecraft:red_wool minecraft:black_wool minecraft:orange_carpet minecraft:magenta_carpet minecraft:light_blue_carpet minecraft:yellow_carpet minecraft:lime_carpet minecraft:pink_carpet minecraft:gray_carpet minecraft:light_gray_carpet minecraft:cyan_carpet minecraft:purple_carpet minecraft:blue_carpet minecraft:brown_carpet minecraft:green_carpet minecraft:red_carpet minecraft:black_carpet westerosblocks:clothesline westerosblocks:smoke westerosblocks:brown_mushroom_1 westerosblocks:brown_mushroom_2 westerosblocks:brown_mushroom_3 westerosblocks:brown_mushroom_4 westerosblocks:brown_mushroom_5 westerosblocks:brown_mushroom_6 westerosblocks:brown_mushroom_7 westerosblocks:brown_mushroom_8 westerosblocks:brown_mushroom_9 westerosblocks:brown_mushroom_10 westerosblocks:brown_mushroom_11 westerosblocks:brown_mushroom_12 westerosblocks:brown_mushroom_13 westerosblocks:red_mushroom_1 westerosblocks:red_mushroom_2 westerosblocks:red_mushroom_3 westerosblocks:red_mushroom_4 westerosblocks:red_mushroom_5 westerosblocks:red_mushroom_6 westerosblocks:red_mushroom_7 westerosblocks:red_mushroom_8 westerosblocks:red_mushroom_9 westerosblocks:white_wool_slab westerosblocks:orange_wool_slab westerosblocks:light_brown_wool_slab westerosblocks:light_blue_wool_slab westerosblocks:yellow_wool_slab westerosblocks:dirty_white_wool_slab westerosblocks:pink_wool_slab westerosblocks:grey_wool_slab westerosblocks:light_grey_wool_slab westerosblocks:cyan_wool_slab westerosblocks:purple_wool_slab westerosblocks:blue_wool_slab westerosblocks:brown_wool_slab westerosblocks:green_wool_slab westerosblocks:red_wool_slab westerosblocks:black_wool_slab westerosblocks:white_wool_carpet westerosblocks:orange_wool_carpet westerosblocks:light_brown_wool_carpet westerosblocks:light_blue_wool_carpet westerosblocks:yellow_wool_carpet westerosblocks:dirty_white_wool_carpet westerosblocks:pink_wool_carpet westerosblocks:grey_wool_carpet westerosblocks:light_grey_wool_carpet westerosblocks:cyan_wool_carpet westerosblocks:purple_wool_carpet westerosblocks:blue_wool_carpet westerosblocks:brown_wool_carpet westerosblocks:green_wool_carpet westerosblocks:red_wool_carpet westerosblocks:black_wool_carpet westerosblocks:thatch_light_fur_carpet westerosblocks:thatch_dark_fur_carpet + + ## weak sss + #= BLOCK_SSS_WEAK_3 + block.*= minecraft:white_wall_banner minecraft:orange_wall_banner minecraft:magenta_wall_banner minecraft:light_blue_wall_banner minecraft:yellow_wall_banner minecraft:lime_wall_banner minecraft:pink_wall_banner minecraft:gray_wall_banner minecraft:light_gray_wall_banner minecraft:cyan_wall_banner minecraft:purple_wall_banner minecraft:blue_wall_banner minecraft:brown_wall_banner minecraft:green_wall_banner minecraft:red_wall_banner minecraft:black_wall_banner minecraft:white_banner minecraft:orange_banner minecraft:magenta_banner minecraft:light_blue_banner minecraft:yellow_banner minecraft:lime_banner minecraft:pink_banner minecraft:gray_banner minecraft:light_gray_banner minecraft:cyan_banner minecraft:purple_banner minecraft:blue_banner minecraft:brown_banner minecraft:green_banner minecraft:red_banner minecraft:black_banner westerosblocks:renly_banner westerosblocks:redwyne_banner westerosblocks:grafton_banner westerosblocks:grey_banner westerosblocks:red_banner westerosblocks:black_banner westerosblocks:the_faith_of_the_seven_banner westerosblocks:cream_banner westerosblocks:blue_banner westerosblocks:brown_banner westerosblocks:cyan_banner westerosblocks:green_banner westerosblocks:orange_banner westerosblocks:pink_banner westerosblocks:purple_banner westerosblocks:lord_of_light_rhllor_banner westerosblocks:yellow_banner westerosblocks:arryn_banner westerosblocks:baratheon_banner westerosblocks:bolton_banner westerosblocks:dayne_banner westerosblocks:frey_banner westerosblocks:greyjoy_banner westerosblocks:hightower_banner westerosblocks:lannister_banner westerosblocks:manderly_banner westerosblocks:martell_banner westerosblocks:stannis_banner westerosblocks:stark_banner westerosblocks:targaryen_banner westerosblocks:tarly_banner westerosblocks:tully_banner westerosblocks:tyrell_banner + + ## weird blocks + #= BLOCK_SSS_WEIRD + block.*= minecraft:sand minecraft:red_sand + + ## grass uwu + #= BLOCK_GRASS + block.*= minecraft:grass_block:snowy=false + + +####### ----- lightsources ----- ####### + + #= BLOCK_AMETHYST_BUD_LARGE + block.101= large_amethyst_bud + + #= BLOCK_AMETHYST_BUD_MEDIUM + block.*= medium_amethyst_bud + + #= BLOCK_AMETHYST_CLUSTER + block.*= amethyst_cluster + + #= BLOCK_BEACON + block.*= beacon + + #= BLOCK_BREWING_STAND + block.*= brewing_stand + + group.candle= candle black_candle blue_candle brown_candle cyan_candle gray_candle \ + green_candle light_blue_candle light_gray_candle lime_candle magenta_candle \ + orange_candle pink_candle purple_candle red_candle white_candle yellow_candle + + #ifdef LPV_COLORED_CANDLES + #= BLOCK_CANDLES_PLAIN_LIT_1 + block.*= candle:candles=1:lit=true + + #= BLOCK_CANDLES_PLAIN_LIT_2 + block.*= candle:candles=2:lit=true + + #= BLOCK_CANDLES_PLAIN_LIT_3 + block.*= candle:candles=3:lit=true + + #= BLOCK_CANDLES_PLAIN_LIT_4 + block.*= candle:candles=4:lit=true + + #= BLOCK_CANDLES_BLACK_LIT_1 + block.*= black_candle:candles=1:lit=true + + #= BLOCK_CANDLES_BLACK_LIT_2 + block.*= black_candle:candles=2:lit=true + + #= BLOCK_CANDLES_BLACK_LIT_3 + block.*= black_candle:candles=3:lit=true + + #= BLOCK_CANDLES_BLACK_LIT_4 + block.*= black_candle:candles=4:lit=true + + #= BLOCK_CANDLES_BLUE_LIT_1 + block.*= blue_candle:candles=1:lit=true + + #= BLOCK_CANDLES_BLUE_LIT_2 + block.*= blue_candle:candles=2:lit=true + + #= BLOCK_CANDLES_BLUE_LIT_3 + block.*= blue_candle:candles=3:lit=true + + #= BLOCK_CANDLES_BLUE_LIT_4 + block.*= blue_candle:candles=4:lit=true + + #= BLOCK_CANDLES_BROWN_LIT_1 + block.*= brown_candle:candles=1:lit=true + + #= BLOCK_CANDLES_BROWN_LIT_2 + block.*= brown_candle:candles=2:lit=true + + #= BLOCK_CANDLES_BROWN_LIT_3 + block.*= brown_candle:candles=3:lit=true + + #= BLOCK_CANDLES_BROWN_LIT_4 + block.*= brown_candle:candles=4:lit=true + + #= BLOCK_CANDLES_CYAN_LIT_1 + block.*= cyan_candle:candles=1:lit=true + + #= BLOCK_CANDLES_CYAN_LIT_2 + block.*= cyan_candle:candles=2:lit=true + + #= BLOCK_CANDLES_CYAN_LIT_3 + block.*= cyan_candle:candles=3:lit=true + + #= BLOCK_CANDLES_CYAN_LIT_4 + block.*= cyan_candle:candles=4:lit=true + + #= BLOCK_CANDLES_GRAY_LIT_1 + block.*= gray_candle:candles=1:lit=true + + #= BLOCK_CANDLES_GRAY_LIT_2 + block.*= gray_candle:candles=2:lit=true + + #= BLOCK_CANDLES_GRAY_LIT_3 + block.*= gray_candle:candles=2:lit=true + + #= BLOCK_CANDLES_GRAY_LIT_4 + block.*= gray_candle:candles=4:lit=true + + #= BLOCK_CANDLES_GREEN_LIT_1 + block.*= green_candle:candles=1:lit=true + + #= BLOCK_CANDLES_GREEN_LIT_2 + block.*= green_candle:candles=2:lit=true + + #= BLOCK_CANDLES_GREEN_LIT_3 + block.*= green_candle:candles=3:lit=true + + #= BLOCK_CANDLES_GREEN_LIT_4 + block.*= green_candle:candles=4:lit=true + + #= BLOCK_CANDLES_LIGHT_BLUE_LIT_1 + block.*= light_blue_candle:candles=1:lit=true + + #= BLOCK_CANDLES_LIGHT_BLUE_LIT_2 + block.*= light_blue_candle:candles=2:lit=true + + #= BLOCK_CANDLES_LIGHT_BLUE_LIT_3 + block.*= light_blue_candle:candles=3:lit=true + + #= BLOCK_CANDLES_LIGHT_BLUE_LIT_4 + block.*= light_blue_candle:candles=4:lit=true + + #= BLOCK_CANDLES_LIGHT_GRAY_LIT_1 + block.*= light_gray_candle:candles=1:lit=true + + #= BLOCK_CANDLES_LIGHT_GRAY_LIT_2 + block.*= light_gray_candle:candles=2:lit=true + + #= BLOCK_CANDLES_LIGHT_GRAY_LIT_3 + block.*= light_gray_candle:candles=3:lit=true + + #= BLOCK_CANDLES_LIGHT_GRAY_LIT_4 + block.*= light_gray_candle:candles=4:lit=true + + #= BLOCK_CANDLES_LIME_LIT_1 + block.*= lime_candle:candles=1:lit=true + + #= BLOCK_CANDLES_LIME_LIT_2 + block.*= lime_candle:candles=2:lit=true + + #= BLOCK_CANDLES_LIME_LIT_3 + block.*= lime_candle:candles=3:lit=true + + #= BLOCK_CANDLES_LIME_LIT_4 + block.*= lime_candle:candles=4:lit=true + + #= BLOCK_CANDLES_MAGENTA_LIT_1 + block.*= magenta_candle:candles=1:lit=true + + #= BLOCK_CANDLES_MAGENTA_LIT_2 + block.*= magenta_candle:candles=2:lit=true + + #= BLOCK_CANDLES_MAGENTA_LIT_3 + block.*= magenta_candle:candles=3:lit=true + + #= BLOCK_CANDLES_MAGENTA_LIT_4 + block.*= magenta_candle:candles=4:lit=true + + #= BLOCK_CANDLES_ORANGE_LIT_1 + block.*= orange_candle:candles=1:lit=true + + #= BLOCK_CANDLES_ORANGE_LIT_2 + block.*= orange_candle:candles=2:lit=true + + #= BLOCK_CANDLES_ORANGE_LIT_3 + block.*= orange_candle:candles=3:lit=true + + #= BLOCK_CANDLES_ORANGE_LIT_4 + block.*= orange_candle:candles=4:lit=true + + #= BLOCK_CANDLES_PINK_LIT_1 + block.*= pink_candle:candles=1:lit=true + + #= BLOCK_CANDLES_PINK_LIT_2 + block.*= pink_candle:candles=2:lit=true + + #= BLOCK_CANDLES_PINK_LIT_3 + block.*= pink_candle:candles=3:lit=true + + #= BLOCK_CANDLES_PINK_LIT_4 + block.*= pink_candle:candles=4:lit=true + + #= BLOCK_CANDLES_PURPLE_LIT_1 + block.*= purple_candle:candles=1:lit=true + + #= BLOCK_CANDLES_PURPLE_LIT_2 + block.*= purple_candle:candles=2:lit=true + + #= BLOCK_CANDLES_PURPLE_LIT_3 + block.*= purple_candle:candles=3:lit=true + + #= BLOCK_CANDLES_PURPLE_LIT_4 + block.*= purple_candle:candles=4:lit=true + + #= BLOCK_CANDLES_RED_LIT_1 + block.*= red_candle:candles=1:lit=true + + #= BLOCK_CANDLES_RED_LIT_2 + block.*= red_candle:candles=2:lit=true + + #= BLOCK_CANDLES_RED_LIT_3 + block.*= red_candle:candles=3:lit=true + + #= BLOCK_CANDLES_RED_LIT_4 + block.*= red_candle:candles=4:lit=true + + #= BLOCK_CANDLES_WHITE_LIT_1 + block.*= white_candle:candles=1:lit=true + + #= BLOCK_CANDLES_WHITE_LIT_2 + block.*= white_candle:candles=2:lit=true + + #= BLOCK_CANDLES_WHITE_LIT_3 + block.*= white_candle:candles=3:lit=true + + #= BLOCK_CANDLES_WHITE_LIT_4 + block.*= white_candle:candles=4:lit=true + + #= BLOCK_CANDLES_YELLOW_LIT_1 + block.*= yellow_candle:candles=1:lit=true + + #= BLOCK_CANDLES_YELLOW_LIT_2 + block.*= yellow_candle:candles=2:lit=true + + #= BLOCK_CANDLES_YELLOW_LIT_3 + block.*= yellow_candle:candles=3:lit=true + + #= BLOCK_CANDLES_YELLOW_LIT_4 + block.*= yellow_candle:candles=4:lit=true + #else + #= BLOCK_CANDLES_LIT_1 + block.*= [candle]:candles=1:lit=true + + #= BLOCK_CANDLES_LIT_2 + block.*= [candle]:candles=2:lit=true + + #= BLOCK_CANDLES_LIT_3 + block.*= [candle]:candles=3:lit=true + + #= BLOCK_CANDLES_LIT_4 + block.*= [candle]:candles=4:lit=true + #endif + + #= BLOCK_CAVE_VINE_BERRIES + block.*= cave_vines_plant:berries=true cave_vines:berries=true + + #= BLOCK_COMPARATOR_LIT + block.*= comparator:powered=true + + #= BLOCK_COPPER_BULB_LIT + block.*= copper_bulb:lit=true waxed_copper_bulb:lit=true + + #= BLOCK_COPPER_BULB_EXPOSED_LIT + block.*= exposed_copper_bulb:lit=true waxed_exposed_copper_bulb:lit=true + + #= BLOCK_COPPER_BULB_OXIDIZED_LIT + block.*= oxidized_copper_bulb:lit=true waxed_oxidized_copper_bulb:lit=true + + #= BLOCK_COPPER_BULB_WEATHERED_LIT + block.*= weathered_copper_bulb:lit=true waxed_weathered_copper_bulb:lit=true + + #= BLOCK_CONDUIT + block.*= conduit + + #= BLOCK_CRYING_OBSIDIAN + block.*= crying_obsidian + + #= BLOCK_END_GATEWAY + block.*= end_gateway + + #= BLOCK_END_ROD + block.*= end_rod + + #= BLOCK_FIRE + block.*= fire campfire:lit=true + + #= BLOCK_FROGLIGHT_OCHRE + block.*= ochre_froglight + + #= BLOCK_FROGLIGHT_PEARLESCENT + block.*= pearlescent_froglight + + #= BLOCK_FROGLIGHT_VERDANT + block.*= verdant_froglight + + #= BLOCK_GLOW_LICHEN + block.*= glow_lichen + + #= BLOCK_GLOWSTONE + block.*= glowstone + + #= BLOCK_JACK_O_LANTERN + block.*= jack_o_lantern + + #= BLOCK_LANTERN + block.*= lantern + + #= BLOCK_LAVA + block.*= lava + + #= BLOCK_LIGHT_1 + block.*= light:level=1 + + #= BLOCK_LIGHT_2 + block.*= light:level=2 + + #= BLOCK_LIGHT_3 + block.*= light:level=3 + + #= BLOCK_LIGHT_4 + block.*= light:level=4 + + #= BLOCK_LIGHT_5 + block.*= light:level=5 + + #= BLOCK_LIGHT_6 + block.*= light:level=6 + + #= BLOCK_LIGHT_7 + block.*= light:level=7 + + #= BLOCK_LIGHT_8 + block.*= light:level=8 + + #= BLOCK_LIGHT_9 + block.*= light:level=9 + + #= BLOCK_LIGHT_10 + block.*= light:level=10 + + #= BLOCK_LIGHT_11 + block.*= light:level=11 + + #= BLOCK_LIGHT_12 + block.*= light:level=12 + + #= BLOCK_LIGHT_13 + block.*= light:level=13 + + #= BLOCK_LIGHT_14 + block.*= light:level=14 + + #= BLOCK_LIGHT_15 + block.*= light:level=15 + + #= BLOCK_MAGMA + block.*= magma_block + + #= BLOCK_REDSTONE_LAMP_LIT + block.*= redstone_lamp:lit=true + + #= BLOCK_REDSTONE_TORCH_LIT + block.*= redstone_torch:lit=true redstone_wall_torch:lit=true + + #= BLOCK_REDSTONE_WIRE_1 + block.*= redstone_wire:power=1 + + #= BLOCK_REDSTONE_WIRE_2 + block.*= redstone_wire:power=2 + + #= BLOCK_REDSTONE_WIRE_3 + block.*= redstone_wire:power=3 + + #= BLOCK_REDSTONE_WIRE_4 + block.*= redstone_wire:power=4 + + #= BLOCK_REDSTONE_WIRE_5 + block.*= redstone_wire:power=5 + + #= BLOCK_REDSTONE_WIRE_6 + block.*= redstone_wire:power=6 + + #= BLOCK_REDSTONE_WIRE_7 + block.*= redstone_wire:power=7 + + #= BLOCK_REDSTONE_WIRE_8 + block.*= redstone_wire:power=8 + + #= BLOCK_REDSTONE_WIRE_9 + block.*= redstone_wire:power=9 + + #= BLOCK_REDSTONE_WIRE_10 + block.*= redstone_wire:power=10 + + #= BLOCK_REDSTONE_WIRE_11 + block.*= redstone_wire:power=11 + + #= BLOCK_REDSTONE_WIRE_12 + block.*= redstone_wire:power=12 + + #= BLOCK_REDSTONE_WIRE_13 + block.*= redstone_wire:power=13 + + #= BLOCK_REDSTONE_WIRE_14 + block.*= redstone_wire:power=14 + + #= BLOCK_REDSTONE_WIRE_15 + block.*= redstone_wire:power=15 + + #= BLOCK_REPEATER_LIT + block.*= repeater:powered=true + + #= BLOCK_RESPAWN_ANCHOR_4 + block.*= respawn_anchor:charges=4 + + #= BLOCK_SCULK_SENSOR_ACTIVE + block.*= sculk_sensor:sculk_sensor_phase=active + + #= BLOCK_SEA_PICKLE_WET_1 + block.*= sea_pickle:waterlogged=true:pickles=1 + + #= BLOCK_SEA_PICKLE_WET_2 + block.*= sea_pickle:waterlogged=true:pickles=2 + + #= BLOCK_SEA_PICKLE_WET_3 + block.*= sea_pickle:waterlogged=true:pickles=3 + + #= BLOCK_SEA_PICKLE_WET_4 + block.*= sea_pickle:waterlogged=true:pickles=4 + + #= BLOCK_SEA_LANTERN + block.*= sea_lantern + + #= BLOCK_SHROOMLIGHT + block.*= shroomlight + + #= BLOCK_SMOKER_LIT + block.*= smoker:lit=true + + #= BLOCK_SOUL_FIRE + block.*= soul_fire soul_campfire:lit=true + + #= BLOCK_SOUL_LANTERN + block.*= soul_lantern + + #= BLOCK_SOUL_TORCH + block.*= soul_torch soul_wall_torch + + #= BLOCK_TORCH + block.*= torch wall_torch + + block.* = westerosblocks:safe_fire + block.* = conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:iron_candelabrum_1 conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light + + +####### ----- reflective translucents / glass ----- ####### + + #= BLOCK_GLASS + block.301= glass glass_pane + + #= BLOCK_HONEY + block.*= honey_block + + #= BLOCK_ICE + block.*= ice frosted_ice + + #= BLOCK_NETHER_PORTAL + block.*= nether_portal + + #= BLOCK_SLIME + block.*= slime_block + + #= BLOCK_GLASS_BLACK + block.*= black_stained_glass black_stained_glass_pane + + #= BLOCK_GLASS_BLUE + block.*= blue_stained_glass blue_stained_glass_pane + + #= BLOCK_GLASS_BROWN + block.*= brown_stained_glass brown_stained_glass_pane + + #= BLOCK_GLASS_CYAN + block.*= cyan_stained_glass cyan_stained_glass_pane + + #= BLOCK_GLASS_GRAY + block.*= gray_stained_glass gray_stained_glass_pane + + #= BLOCK_GLASS_GREEN + block.*= green_stained_glass green_stained_glass_pane + + #= BLOCK_GLASS_LIGHT_BLUE + block.*= light_blue_stained_glass light_blue_stained_glass_pane + + #= BLOCK_GLASS_LIGHT_GRAY + block.*= light_gray_stained_glass light_gray_stained_glass_pane + + #= BLOCK_GLASS_LIME + block.*= lime_stained_glass lime_stained_glass_pane + + #= BLOCK_GLASS_MAGENTA + block.*= magenta_stained_glass magenta_stained_glass_pane + + #= BLOCK_GLASS_ORANGE + block.*= orange_stained_glass orange_stained_glass_pane + + #= BLOCK_GLASS_PINK + block.*= pink_stained_glass pink_stained_glass_pane + + #= BLOCK_GLASS_PURPLE + block.*= purple_stained_glass purple_stained_glass_pane + + #= BLOCK_GLASS_RED + block.*= red_stained_glass red_stained_glass_pane + + #= BLOCK_GLASS_WHITE + block.*= white_stained_glass white_stained_glass_pane + + #= BLOCK_GLASS_YELLOW + block.*= yellow_stained_glass yellow_stained_glass_pane + + +####### ----- LPV shapes ----- ####### + + #= BLOCK_BUTTON + block.401= acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button + + #= BLOCK_CANDLE + block.*=[candle]:lit=false + + #= BLOCK_CARPET + block.*=black_carpet blue_carpet brown_carpet cyan_carpet gray_carpet green_carpet light_blue_carpet light_gray_carpet \ + lime_carpet magenta_carpet moss_carpet orange_carpet pink_carpet purple_carpet red_carpet white_carpet yellow_carpet + + #= BLOCK_CHAIN + block.*= chain + + group.door= acacia_door bamboo_door birch_door cherry_door crimson_door dark_oak_door \ + iron_door jungle_door mangrove_door oak_door spruce_door warped_door \ + copper_door exposed_copper_door weathered_copper_door oxidized_copper_door \ + waxed_copper_door waxed_exposed_copper_door waxed_weathered_copper_door waxed_oxidized_copper_door + + #= BLOCK_DOOR_N + block.*= [door]:facing=north:open=false [door]:facing=west:hinge=left:open=true [door]:facing=east:hinge=right:open=true + + #= BLOCK_DOOR_E + block.*= [door]:facing=east:open=false [door]:facing=north:hinge=left:open=true [door]:facing=south:hinge=right:open=true + + #= BLOCK_DOOR_S + block.*= [door]:facing=south:open=false [door]:facing=east:hinge=left:open=true [door]:facing=west:hinge=right:open=true + + #= BLOCK_DOOR_W + block.*= [door]:facing=west:open=false [door]:facing=south:hinge=left:open=true [door]:facing=north:hinge=right:open=true + + #= BLOCK_FENCE + block.*= acacia_fence bamboo_fence birch_fence cherry_fence crimson_fence dark_oak_fence jungle_fence mangrove_fence nether_brick_fence oak_fence spruce_fence warped_fence + + #= BLOCK_FENCE_GATE + block.*= acacia_fence_gate bamboo_fence_gate birch_fence_gate cherry_fence_gate crimson_fence_gate dark_oak_fence_gate jungle_fence_gate mangrove_fence_gate oak_fence_gate spruce_fence_gate warped_fence_gate + + #= BLOCK_FLOWER_POT + block.*= flower_pot potted_acacia_sapling potted_allium potted_azalea_bush potted_bamboo potted_azure_bluet potted_birch_sapling \ + potted_blue_orchid potted_brown_mushroom potted_cactus potted_cornflower potted_crimson_fungus potted_crimson_roots \ + potted_dandelion potted_dark_oak_sapling potted_dead_bush potted_fern potted_flowering_azalea_bush potted_jungle_sapling \ + potted_lily_of_the_valley potted_mangrove_propagule potted_oak_sapling potted_orange_tulip potted_oxeye_daisy \ + potted_pink_tulip potted_poppy potted_red_mushroom potted_red_tulip potted_spruce_sapling potted_torchflower \ + potted_warped_fungus potted_warped_roots potted_white_tulip potted_wither_rose + + #= BLOCK_IRON_BARS + block.*= iron_bars + + #= BLOCK_LADDER + block.*= ladder + + #= BLOCK_LEVER + block.*= lever + + #= BLOCK_PRESSURE_PLATE + block.*= acacia_pressure_plate bamboo_pressure_plate birch_pressure_plate cherry_pressure_plate crimson_pressure_plate \ + dark_oak_pressure_plate heavy_weighted_pressure_plate jungle_pressure_plate light_weighted_pressure_plate mangrove_pressure_plate \ + oak_pressure_plate polished_blackstone_pressure_plate spruce_pressure_plate stone_pressure_plate warped_pressure_plate + + group.slab= acacia_slab bamboo_slab bamboo_mosaic_slab birch_slab cherry_slab crimson_slab dark_oak_slab jungle_slab mangrove_slab \ + oak_slab spruce_slab warped_slab andesite_slab blackstone_slab brick_slab cobbled_deepslate_slab cobblestone_slab \ + cut_copper_slab cut_red_sandstone_slab cut_sandstone_slab dark_prismarine_slab deepslate_brick_slab deepslate_tile_slab \ + diorite_slab end_stone_brick_slab exposed_cut_copper_slab granite_slab mossy_cobblestone_slab mossy_stone_brick_slab \ + mud_brick_slab nether_brick_slab oxidized_cut_copper_slab petrified_oak_slab polished_andesite_slab \ + polished_blackstone_brick_slab polished_blackstone_slab polished_deepslate_slab polished_diorite_slab \ + polished_granite_slab prismarine_brick_slab prismarine_slab purpur_slab quartz_slab red_nether_brick_slab \ + red_sandstone_slab sandstone_slab smooth_quartz_slab smooth_red_sandstone_slab smooth_sandstone_slab smooth_stone_slab \ + stone_brick_slab stone_slab waxed_cut_copper_slab waxed_exposed_cut_copper_slab waxed_oxidized_cut_copper_slab \ + waxed_weathered_cut_copper_slab weathered_cut_copper_slab + + #= BLOCK_SLAB_TOP + block.*= [slab]:type=top + + #= BLOCK_SLAB_BOTTOM + block.*= [slab]:type=bottom daylight_detector + + group.trapdoor= acacia_trapdoor bamboo_trapdoor birch_trapdoor cherry_trapdoor crimson_trapdoor dark_oak_trapdoor \ + iron_trapdoor jungle_trapdoor mangrove_trapdoor oak_trapdoor spruce_trapdoor warped_trapdoor \ + copper_trapdoor exposed_copper_trapdoor weathered_copper_trapdoor oxidized_copper_trapdoor \ + waxed_copper_trapdoor waxed_exposed_copper_trapdoor waxed_weathered_copper_trapdoor waxed_oxidized_copper_trapdoor + + #= BLOCK_TRAPDOOR_BOTTOM + block.*= [trapdoor]:half=bottom:open=false + + #= BLOCK_TRAPDOOR_TOP + block.*= [trapdoor]:half=top:open=false + + #= BLOCK_TRAPDOOR_N + block.*= [trapdoor]:facing=north:open=true + + #= BLOCK_TRAPDOOR_E + block.*= [trapdoor]:facing=east:open=true + + #= BLOCK_TRAPDOOR_S + block.*= [trapdoor]:facing=south:open=true + + #= BLOCK_TRAPDOOR_W + block.*= [trapdoor]:facing=west:open=true + + +####### ----- misc ----- ####### + + ## stuff + #= BLOCK_END_PORTAL + block.500= minecraft:end_portal + + ## all blocks here get exluded from POM. + #= BLOCK_SIGN + block.*= minecraft:oak_sign minecraft:spruce_sign minecraft:birch_sign minecraft:jungle_sign minecraft:acacia_sign minecraft:dark_oak_sign minecraft:mangrove_sign minecraft:crimson_sign minecraft:warped_sign minecraft:oak_wall_sign minecraft:spruce_wall_sign minecraft:birch_wall_sign minecraft:jungle_wall_sign minecraft:acacia_wall_sign minecraft:dark_oak_wall_sign minecraft:mangrove_wall_sign minecraft:crimson_wall_sign minecraft:warped_wall_sign + + ## workaround mixed render stages + ##= BLOCK_REDSTONE_WIRE + ##block.*= minecraft:redstone_wire diff --git a/shaders/world0/shadow.vsh b/shaders/world0/shadow.vsh index fb171c0..c1cb0bf 100644 --- a/shaders/world0/shadow.vsh +++ b/shaders/world0/shadow.vsh @@ -210,9 +210,11 @@ void main() { (currentRenderedItemId > 0 || entityId > 0) && (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) ) { - uint voxelId = uint(BLOCK_EMPTY); + uint voxelId = 0u; if (currentRenderedItemId > 0) { + // TODO: once hand-light is added, switch to this condition + // if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) if (entityId != ENTITY_ITEM_FRAME) voxelId = uint(currentRenderedItemId); } From 48ae8597f6d39a4fad3e77ad69c414706048456b Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sun, 5 May 2024 00:12:36 -0400 Subject: [PATCH 02/12] floodfill player occluder fix --- shaders/world0/shadow.vsh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/shaders/world0/shadow.vsh b/shaders/world0/shadow.vsh index c1cb0bf..1d08937 100644 --- a/shaders/world0/shadow.vsh +++ b/shaders/world0/shadow.vsh @@ -213,9 +213,12 @@ void main() { uint voxelId = 0u; if (currentRenderedItemId > 0) { - // TODO: once hand-light is added, switch to this condition - // if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) - if (entityId != ENTITY_ITEM_FRAME) + if (entityId == ENTITY_PLAYER) { + // TODO: remove once hand-light is added + if (currentRenderedItemId < 1000) + voxelId = uint(currentRenderedItemId); + } + else if (entityId != ENTITY_ITEM_FRAME) voxelId = uint(currentRenderedItemId); } else { From ce6993c4338f52bf837b85ae815cb231ba173d89 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sun, 5 May 2024 00:35:07 -0400 Subject: [PATCH 03/12] floodfill ignore group --- shaders/dimensions/setup.csh | 15 ++------------- shaders/template/block.properties | 18 ++++-------------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index b4d9541..5e63988 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -862,19 +862,14 @@ void main() { // LPV shapes - case BLOCK_BUTTON: - mixWeight = 0.9; - break; - case BLOCK_CANDLE: + case BLOCK_LPV_IGNORE: mixWeight = 1.0; break; + case BLOCK_CARPET: mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); mixWeight = 0.9; break; - case BLOCK_CHAIN: - mixWeight = 1.0; - break; case BLOCK_DOOR_N: mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); @@ -903,12 +898,6 @@ void main() { case BLOCK_IRON_BARS: mixWeight = 0.6; break; - case BLOCK_LADDER: - mixWeight = 0.7; - break; - case BLOCK_LEVER: - mixWeight = 0.8; - break; case BLOCK_PRESSURE_PLATE: mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); mixWeight = 0.9; diff --git a/shaders/template/block.properties b/shaders/template/block.properties index 5347087..c5c86f6 100644 --- a/shaders/template/block.properties +++ b/shaders/template/block.properties @@ -576,19 +576,15 @@ block.*= vine ####### ----- LPV shapes ----- ####### - #= BLOCK_BUTTON - block.401= acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button - - #= BLOCK_CANDLE - block.*=[candle]:lit=false + #= BLOCK_LPV_IGNORE + block.401= chain ladder lever tripwire_hook \ + [candle]:lit=false \ + acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button #= BLOCK_CARPET block.*=black_carpet blue_carpet brown_carpet cyan_carpet gray_carpet green_carpet light_blue_carpet light_gray_carpet \ lime_carpet magenta_carpet moss_carpet orange_carpet pink_carpet purple_carpet red_carpet white_carpet yellow_carpet - #= BLOCK_CHAIN - block.*= chain - group.door= acacia_door bamboo_door birch_door cherry_door crimson_door dark_oak_door \ iron_door jungle_door mangrove_door oak_door spruce_door warped_door \ copper_door exposed_copper_door weathered_copper_door oxidized_copper_door \ @@ -623,12 +619,6 @@ block.*= vine #= BLOCK_IRON_BARS block.*= iron_bars - #= BLOCK_LADDER - block.*= ladder - - #= BLOCK_LEVER - block.*= lever - #= BLOCK_PRESSURE_PLATE block.*= acacia_pressure_plate bamboo_pressure_plate birch_pressure_plate cherry_pressure_plate crimson_pressure_plate \ dark_oak_pressure_plate heavy_weighted_pressure_plate jungle_pressure_plate light_weighted_pressure_plate mangrove_pressure_plate \ From 1cdd018491fc0f146c805cac6147e3013a0623d1 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sun, 5 May 2024 00:52:23 -0400 Subject: [PATCH 04/12] floodfill player fixes; add furnace lights --- shaders/block.properties | 142 ++++++++++++++---------------- shaders/dimensions/setup.csh | 8 +- shaders/dimensions/shadowcomp.csh | 22 ++--- shaders/lib/blocks.glsl | 138 ++++++++++++++--------------- shaders/template/block.properties | 6 +- 5 files changed, 153 insertions(+), 163 deletions(-) diff --git a/shaders/block.properties b/shaders/block.properties index 4d2aa86..b31be1e 100644 --- a/shaders/block.properties +++ b/shaders/block.properties @@ -238,101 +238,101 @@ block.190=pearlescent_froglight block.191=verdant_froglight -block.192=glow_lichen +block.192=furnace:lit=true blast_furnace:lit=true smoker:lit=true -block.193=glowstone +block.193=glow_lichen -block.194=jack_o_lantern +block.194=glowstone -block.195=lantern +block.195=jack_o_lantern -block.196=lava +block.196=lantern -block.197=light:level=1 +block.197=lava -block.198=light:level=2 +block.198=light:level=1 -block.199=light:level=3 +block.199=light:level=2 -block.200=light:level=4 +block.200=light:level=3 -block.201=light:level=5 +block.201=light:level=4 -block.202=light:level=6 +block.202=light:level=5 -block.203=light:level=7 +block.203=light:level=6 -block.204=light:level=8 +block.204=light:level=7 -block.205=light:level=9 +block.205=light:level=8 -block.206=light:level=10 +block.206=light:level=9 -block.207=light:level=11 +block.207=light:level=10 -block.208=light:level=12 +block.208=light:level=11 -block.209=light:level=13 +block.209=light:level=12 -block.210=light:level=14 +block.210=light:level=13 -block.211=light:level=15 +block.211=light:level=14 -block.212=magma_block +block.212=light:level=15 -block.213=redstone_lamp:lit=true +block.213=magma_block -block.214=redstone_torch:lit=true redstone_wall_torch:lit=true +block.214=redstone_lamp:lit=true -block.215=redstone_wire:power=1 +block.215=redstone_torch:lit=true redstone_wall_torch:lit=true -block.216=redstone_wire:power=2 +block.216=redstone_wire:power=1 -block.217=redstone_wire:power=3 +block.217=redstone_wire:power=2 -block.218=redstone_wire:power=4 +block.218=redstone_wire:power=3 -block.219=redstone_wire:power=5 +block.219=redstone_wire:power=4 -block.220=redstone_wire:power=6 +block.220=redstone_wire:power=5 -block.221=redstone_wire:power=7 +block.221=redstone_wire:power=6 -block.222=redstone_wire:power=8 +block.222=redstone_wire:power=7 -block.223=redstone_wire:power=9 +block.223=redstone_wire:power=8 -block.224=redstone_wire:power=10 +block.224=redstone_wire:power=9 -block.225=redstone_wire:power=11 +block.225=redstone_wire:power=10 -block.226=redstone_wire:power=12 +block.226=redstone_wire:power=11 -block.227=redstone_wire:power=13 +block.227=redstone_wire:power=12 -block.228=redstone_wire:power=14 +block.228=redstone_wire:power=13 -block.229=redstone_wire:power=15 +block.229=redstone_wire:power=14 -block.230=repeater:powered=true +block.230=redstone_wire:power=15 -block.231=respawn_anchor:charges=4 +block.231=repeater:powered=true -block.232=sculk_sensor:sculk_sensor_phase=active +block.232=respawn_anchor:charges=4 -block.233=sea_pickle:waterlogged=true:pickles=1 +block.233=sculk_sensor:sculk_sensor_phase=active -block.234=sea_pickle:waterlogged=true:pickles=2 +block.234=sea_pickle:waterlogged=true:pickles=1 -block.235=sea_pickle:waterlogged=true:pickles=3 +block.235=sea_pickle:waterlogged=true:pickles=2 -block.236=sea_pickle:waterlogged=true:pickles=4 +block.236=sea_pickle:waterlogged=true:pickles=3 -block.237=sea_lantern +block.237=sea_pickle:waterlogged=true:pickles=4 -block.238=shroomlight +block.238=sea_lantern -block.239=smoker:lit=true +block.239=shroomlight block.240=soul_fire soul_campfire:lit=true @@ -393,54 +393,46 @@ block.321=yellow_stained_glass yellow_stained_glass_pane ####### ----- LPV shapes ----- ####### -block.401=acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button +block.401=chain ladder lever tripwire_hook candle:lit=false black_candle:lit=false blue_candle:lit=false brown_candle:lit=false cyan_candle:lit=false gray_candle:lit=false green_candle:lit=false light_blue_candle:lit=false light_gray_candle:lit=false lime_candle:lit=false magenta_candle:lit=false orange_candle:lit=false pink_candle:lit=false purple_candle:lit=false red_candle:lit=false white_candle:lit=false yellow_candle:lit=false acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button -block.402=candle:lit=false black_candle:lit=false blue_candle:lit=false brown_candle:lit=false cyan_candle:lit=false gray_candle:lit=false green_candle:lit=false light_blue_candle:lit=false light_gray_candle:lit=false lime_candle:lit=false magenta_candle:lit=false orange_candle:lit=false pink_candle:lit=false purple_candle:lit=false red_candle:lit=false white_candle:lit=false yellow_candle:lit=false - -block.403=black_carpet blue_carpet brown_carpet cyan_carpet gray_carpet green_carpet light_blue_carpet light_gray_carpet lime_carpet magenta_carpet moss_carpet orange_carpet pink_carpet purple_carpet red_carpet white_carpet yellow_carpet - -block.404=chain +block.402=black_carpet blue_carpet brown_carpet cyan_carpet gray_carpet green_carpet light_blue_carpet light_gray_carpet lime_carpet magenta_carpet moss_carpet orange_carpet pink_carpet purple_carpet red_carpet white_carpet yellow_carpet -block.405=acacia_door:facing=north:open=false bamboo_door:facing=north:open=false birch_door:facing=north:open=false cherry_door:facing=north:open=false crimson_door:facing=north:open=false dark_oak_door:facing=north:open=false iron_door:facing=north:open=false jungle_door:facing=north:open=false mangrove_door:facing=north:open=false oak_door:facing=north:open=false spruce_door:facing=north:open=false warped_door:facing=north:open=false copper_door:facing=north:open=false exposed_copper_door:facing=north:open=false weathered_copper_door:facing=north:open=false oxidized_copper_door:facing=north:open=false waxed_copper_door:facing=north:open=false waxed_exposed_copper_door:facing=north:open=false waxed_weathered_copper_door:facing=north:open=false waxed_oxidized_copper_door:facing=north:open=false acacia_door:facing=west:hinge=left:open=true bamboo_door:facing=west:hinge=left:open=true birch_door:facing=west:hinge=left:open=true cherry_door:facing=west:hinge=left:open=true crimson_door:facing=west:hinge=left:open=true dark_oak_door:facing=west:hinge=left:open=true iron_door:facing=west:hinge=left:open=true jungle_door:facing=west:hinge=left:open=true mangrove_door:facing=west:hinge=left:open=true oak_door:facing=west:hinge=left:open=true spruce_door:facing=west:hinge=left:open=true warped_door:facing=west:hinge=left:open=true copper_door:facing=west:hinge=left:open=true exposed_copper_door:facing=west:hinge=left:open=true weathered_copper_door:facing=west:hinge=left:open=true oxidized_copper_door:facing=west:hinge=left:open=true waxed_copper_door:facing=west:hinge=left:open=true waxed_exposed_copper_door:facing=west:hinge=left:open=true waxed_weathered_copper_door:facing=west:hinge=left:open=true waxed_oxidized_copper_door:facing=west:hinge=left:open=true acacia_door:facing=east:hinge=right:open=true bamboo_door:facing=east:hinge=right:open=true birch_door:facing=east:hinge=right:open=true cherry_door:facing=east:hinge=right:open=true crimson_door:facing=east:hinge=right:open=true dark_oak_door:facing=east:hinge=right:open=true iron_door:facing=east:hinge=right:open=true jungle_door:facing=east:hinge=right:open=true mangrove_door:facing=east:hinge=right:open=true oak_door:facing=east:hinge=right:open=true spruce_door:facing=east:hinge=right:open=true warped_door:facing=east:hinge=right:open=true copper_door:facing=east:hinge=right:open=true exposed_copper_door:facing=east:hinge=right:open=true weathered_copper_door:facing=east:hinge=right:open=true oxidized_copper_door:facing=east:hinge=right:open=true waxed_copper_door:facing=east:hinge=right:open=true waxed_exposed_copper_door:facing=east:hinge=right:open=true waxed_weathered_copper_door:facing=east:hinge=right:open=true waxed_oxidized_copper_door:facing=east:hinge=right:open=true +block.403=acacia_door:facing=north:open=false bamboo_door:facing=north:open=false birch_door:facing=north:open=false cherry_door:facing=north:open=false crimson_door:facing=north:open=false dark_oak_door:facing=north:open=false iron_door:facing=north:open=false jungle_door:facing=north:open=false mangrove_door:facing=north:open=false oak_door:facing=north:open=false spruce_door:facing=north:open=false warped_door:facing=north:open=false copper_door:facing=north:open=false exposed_copper_door:facing=north:open=false weathered_copper_door:facing=north:open=false oxidized_copper_door:facing=north:open=false waxed_copper_door:facing=north:open=false waxed_exposed_copper_door:facing=north:open=false waxed_weathered_copper_door:facing=north:open=false waxed_oxidized_copper_door:facing=north:open=false acacia_door:facing=west:hinge=left:open=true bamboo_door:facing=west:hinge=left:open=true birch_door:facing=west:hinge=left:open=true cherry_door:facing=west:hinge=left:open=true crimson_door:facing=west:hinge=left:open=true dark_oak_door:facing=west:hinge=left:open=true iron_door:facing=west:hinge=left:open=true jungle_door:facing=west:hinge=left:open=true mangrove_door:facing=west:hinge=left:open=true oak_door:facing=west:hinge=left:open=true spruce_door:facing=west:hinge=left:open=true warped_door:facing=west:hinge=left:open=true copper_door:facing=west:hinge=left:open=true exposed_copper_door:facing=west:hinge=left:open=true weathered_copper_door:facing=west:hinge=left:open=true oxidized_copper_door:facing=west:hinge=left:open=true waxed_copper_door:facing=west:hinge=left:open=true waxed_exposed_copper_door:facing=west:hinge=left:open=true waxed_weathered_copper_door:facing=west:hinge=left:open=true waxed_oxidized_copper_door:facing=west:hinge=left:open=true acacia_door:facing=east:hinge=right:open=true bamboo_door:facing=east:hinge=right:open=true birch_door:facing=east:hinge=right:open=true cherry_door:facing=east:hinge=right:open=true crimson_door:facing=east:hinge=right:open=true dark_oak_door:facing=east:hinge=right:open=true iron_door:facing=east:hinge=right:open=true jungle_door:facing=east:hinge=right:open=true mangrove_door:facing=east:hinge=right:open=true oak_door:facing=east:hinge=right:open=true spruce_door:facing=east:hinge=right:open=true warped_door:facing=east:hinge=right:open=true copper_door:facing=east:hinge=right:open=true exposed_copper_door:facing=east:hinge=right:open=true weathered_copper_door:facing=east:hinge=right:open=true oxidized_copper_door:facing=east:hinge=right:open=true waxed_copper_door:facing=east:hinge=right:open=true waxed_exposed_copper_door:facing=east:hinge=right:open=true waxed_weathered_copper_door:facing=east:hinge=right:open=true waxed_oxidized_copper_door:facing=east:hinge=right:open=true -block.406=acacia_door:facing=east:open=false bamboo_door:facing=east:open=false birch_door:facing=east:open=false cherry_door:facing=east:open=false crimson_door:facing=east:open=false dark_oak_door:facing=east:open=false iron_door:facing=east:open=false jungle_door:facing=east:open=false mangrove_door:facing=east:open=false oak_door:facing=east:open=false spruce_door:facing=east:open=false warped_door:facing=east:open=false copper_door:facing=east:open=false exposed_copper_door:facing=east:open=false weathered_copper_door:facing=east:open=false oxidized_copper_door:facing=east:open=false waxed_copper_door:facing=east:open=false waxed_exposed_copper_door:facing=east:open=false waxed_weathered_copper_door:facing=east:open=false waxed_oxidized_copper_door:facing=east:open=false acacia_door:facing=north:hinge=left:open=true bamboo_door:facing=north:hinge=left:open=true birch_door:facing=north:hinge=left:open=true cherry_door:facing=north:hinge=left:open=true crimson_door:facing=north:hinge=left:open=true dark_oak_door:facing=north:hinge=left:open=true iron_door:facing=north:hinge=left:open=true jungle_door:facing=north:hinge=left:open=true mangrove_door:facing=north:hinge=left:open=true oak_door:facing=north:hinge=left:open=true spruce_door:facing=north:hinge=left:open=true warped_door:facing=north:hinge=left:open=true copper_door:facing=north:hinge=left:open=true exposed_copper_door:facing=north:hinge=left:open=true weathered_copper_door:facing=north:hinge=left:open=true oxidized_copper_door:facing=north:hinge=left:open=true waxed_copper_door:facing=north:hinge=left:open=true waxed_exposed_copper_door:facing=north:hinge=left:open=true waxed_weathered_copper_door:facing=north:hinge=left:open=true waxed_oxidized_copper_door:facing=north:hinge=left:open=true acacia_door:facing=south:hinge=right:open=true bamboo_door:facing=south:hinge=right:open=true birch_door:facing=south:hinge=right:open=true cherry_door:facing=south:hinge=right:open=true crimson_door:facing=south:hinge=right:open=true dark_oak_door:facing=south:hinge=right:open=true iron_door:facing=south:hinge=right:open=true jungle_door:facing=south:hinge=right:open=true mangrove_door:facing=south:hinge=right:open=true oak_door:facing=south:hinge=right:open=true spruce_door:facing=south:hinge=right:open=true warped_door:facing=south:hinge=right:open=true copper_door:facing=south:hinge=right:open=true exposed_copper_door:facing=south:hinge=right:open=true weathered_copper_door:facing=south:hinge=right:open=true oxidized_copper_door:facing=south:hinge=right:open=true waxed_copper_door:facing=south:hinge=right:open=true waxed_exposed_copper_door:facing=south:hinge=right:open=true waxed_weathered_copper_door:facing=south:hinge=right:open=true waxed_oxidized_copper_door:facing=south:hinge=right:open=true +block.404=acacia_door:facing=east:open=false bamboo_door:facing=east:open=false birch_door:facing=east:open=false cherry_door:facing=east:open=false crimson_door:facing=east:open=false dark_oak_door:facing=east:open=false iron_door:facing=east:open=false jungle_door:facing=east:open=false mangrove_door:facing=east:open=false oak_door:facing=east:open=false spruce_door:facing=east:open=false warped_door:facing=east:open=false copper_door:facing=east:open=false exposed_copper_door:facing=east:open=false weathered_copper_door:facing=east:open=false oxidized_copper_door:facing=east:open=false waxed_copper_door:facing=east:open=false waxed_exposed_copper_door:facing=east:open=false waxed_weathered_copper_door:facing=east:open=false waxed_oxidized_copper_door:facing=east:open=false acacia_door:facing=north:hinge=left:open=true bamboo_door:facing=north:hinge=left:open=true birch_door:facing=north:hinge=left:open=true cherry_door:facing=north:hinge=left:open=true crimson_door:facing=north:hinge=left:open=true dark_oak_door:facing=north:hinge=left:open=true iron_door:facing=north:hinge=left:open=true jungle_door:facing=north:hinge=left:open=true mangrove_door:facing=north:hinge=left:open=true oak_door:facing=north:hinge=left:open=true spruce_door:facing=north:hinge=left:open=true warped_door:facing=north:hinge=left:open=true copper_door:facing=north:hinge=left:open=true exposed_copper_door:facing=north:hinge=left:open=true weathered_copper_door:facing=north:hinge=left:open=true oxidized_copper_door:facing=north:hinge=left:open=true waxed_copper_door:facing=north:hinge=left:open=true waxed_exposed_copper_door:facing=north:hinge=left:open=true waxed_weathered_copper_door:facing=north:hinge=left:open=true waxed_oxidized_copper_door:facing=north:hinge=left:open=true acacia_door:facing=south:hinge=right:open=true bamboo_door:facing=south:hinge=right:open=true birch_door:facing=south:hinge=right:open=true cherry_door:facing=south:hinge=right:open=true crimson_door:facing=south:hinge=right:open=true dark_oak_door:facing=south:hinge=right:open=true iron_door:facing=south:hinge=right:open=true jungle_door:facing=south:hinge=right:open=true mangrove_door:facing=south:hinge=right:open=true oak_door:facing=south:hinge=right:open=true spruce_door:facing=south:hinge=right:open=true warped_door:facing=south:hinge=right:open=true copper_door:facing=south:hinge=right:open=true exposed_copper_door:facing=south:hinge=right:open=true weathered_copper_door:facing=south:hinge=right:open=true oxidized_copper_door:facing=south:hinge=right:open=true waxed_copper_door:facing=south:hinge=right:open=true waxed_exposed_copper_door:facing=south:hinge=right:open=true waxed_weathered_copper_door:facing=south:hinge=right:open=true waxed_oxidized_copper_door:facing=south:hinge=right:open=true -block.407=acacia_door:facing=south:open=false bamboo_door:facing=south:open=false birch_door:facing=south:open=false cherry_door:facing=south:open=false crimson_door:facing=south:open=false dark_oak_door:facing=south:open=false iron_door:facing=south:open=false jungle_door:facing=south:open=false mangrove_door:facing=south:open=false oak_door:facing=south:open=false spruce_door:facing=south:open=false warped_door:facing=south:open=false copper_door:facing=south:open=false exposed_copper_door:facing=south:open=false weathered_copper_door:facing=south:open=false oxidized_copper_door:facing=south:open=false waxed_copper_door:facing=south:open=false waxed_exposed_copper_door:facing=south:open=false waxed_weathered_copper_door:facing=south:open=false waxed_oxidized_copper_door:facing=south:open=false acacia_door:facing=east:hinge=left:open=true bamboo_door:facing=east:hinge=left:open=true birch_door:facing=east:hinge=left:open=true cherry_door:facing=east:hinge=left:open=true crimson_door:facing=east:hinge=left:open=true dark_oak_door:facing=east:hinge=left:open=true iron_door:facing=east:hinge=left:open=true jungle_door:facing=east:hinge=left:open=true mangrove_door:facing=east:hinge=left:open=true oak_door:facing=east:hinge=left:open=true spruce_door:facing=east:hinge=left:open=true warped_door:facing=east:hinge=left:open=true copper_door:facing=east:hinge=left:open=true exposed_copper_door:facing=east:hinge=left:open=true weathered_copper_door:facing=east:hinge=left:open=true oxidized_copper_door:facing=east:hinge=left:open=true waxed_copper_door:facing=east:hinge=left:open=true waxed_exposed_copper_door:facing=east:hinge=left:open=true waxed_weathered_copper_door:facing=east:hinge=left:open=true waxed_oxidized_copper_door:facing=east:hinge=left:open=true acacia_door:facing=west:hinge=right:open=true bamboo_door:facing=west:hinge=right:open=true birch_door:facing=west:hinge=right:open=true cherry_door:facing=west:hinge=right:open=true crimson_door:facing=west:hinge=right:open=true dark_oak_door:facing=west:hinge=right:open=true iron_door:facing=west:hinge=right:open=true jungle_door:facing=west:hinge=right:open=true mangrove_door:facing=west:hinge=right:open=true oak_door:facing=west:hinge=right:open=true spruce_door:facing=west:hinge=right:open=true warped_door:facing=west:hinge=right:open=true copper_door:facing=west:hinge=right:open=true exposed_copper_door:facing=west:hinge=right:open=true weathered_copper_door:facing=west:hinge=right:open=true oxidized_copper_door:facing=west:hinge=right:open=true waxed_copper_door:facing=west:hinge=right:open=true waxed_exposed_copper_door:facing=west:hinge=right:open=true waxed_weathered_copper_door:facing=west:hinge=right:open=true waxed_oxidized_copper_door:facing=west:hinge=right:open=true +block.405=acacia_door:facing=south:open=false bamboo_door:facing=south:open=false birch_door:facing=south:open=false cherry_door:facing=south:open=false crimson_door:facing=south:open=false dark_oak_door:facing=south:open=false iron_door:facing=south:open=false jungle_door:facing=south:open=false mangrove_door:facing=south:open=false oak_door:facing=south:open=false spruce_door:facing=south:open=false warped_door:facing=south:open=false copper_door:facing=south:open=false exposed_copper_door:facing=south:open=false weathered_copper_door:facing=south:open=false oxidized_copper_door:facing=south:open=false waxed_copper_door:facing=south:open=false waxed_exposed_copper_door:facing=south:open=false waxed_weathered_copper_door:facing=south:open=false waxed_oxidized_copper_door:facing=south:open=false acacia_door:facing=east:hinge=left:open=true bamboo_door:facing=east:hinge=left:open=true birch_door:facing=east:hinge=left:open=true cherry_door:facing=east:hinge=left:open=true crimson_door:facing=east:hinge=left:open=true dark_oak_door:facing=east:hinge=left:open=true iron_door:facing=east:hinge=left:open=true jungle_door:facing=east:hinge=left:open=true mangrove_door:facing=east:hinge=left:open=true oak_door:facing=east:hinge=left:open=true spruce_door:facing=east:hinge=left:open=true warped_door:facing=east:hinge=left:open=true copper_door:facing=east:hinge=left:open=true exposed_copper_door:facing=east:hinge=left:open=true weathered_copper_door:facing=east:hinge=left:open=true oxidized_copper_door:facing=east:hinge=left:open=true waxed_copper_door:facing=east:hinge=left:open=true waxed_exposed_copper_door:facing=east:hinge=left:open=true waxed_weathered_copper_door:facing=east:hinge=left:open=true waxed_oxidized_copper_door:facing=east:hinge=left:open=true acacia_door:facing=west:hinge=right:open=true bamboo_door:facing=west:hinge=right:open=true birch_door:facing=west:hinge=right:open=true cherry_door:facing=west:hinge=right:open=true crimson_door:facing=west:hinge=right:open=true dark_oak_door:facing=west:hinge=right:open=true iron_door:facing=west:hinge=right:open=true jungle_door:facing=west:hinge=right:open=true mangrove_door:facing=west:hinge=right:open=true oak_door:facing=west:hinge=right:open=true spruce_door:facing=west:hinge=right:open=true warped_door:facing=west:hinge=right:open=true copper_door:facing=west:hinge=right:open=true exposed_copper_door:facing=west:hinge=right:open=true weathered_copper_door:facing=west:hinge=right:open=true oxidized_copper_door:facing=west:hinge=right:open=true waxed_copper_door:facing=west:hinge=right:open=true waxed_exposed_copper_door:facing=west:hinge=right:open=true waxed_weathered_copper_door:facing=west:hinge=right:open=true waxed_oxidized_copper_door:facing=west:hinge=right:open=true -block.408=acacia_door:facing=west:open=false bamboo_door:facing=west:open=false birch_door:facing=west:open=false cherry_door:facing=west:open=false crimson_door:facing=west:open=false dark_oak_door:facing=west:open=false iron_door:facing=west:open=false jungle_door:facing=west:open=false mangrove_door:facing=west:open=false oak_door:facing=west:open=false spruce_door:facing=west:open=false warped_door:facing=west:open=false copper_door:facing=west:open=false exposed_copper_door:facing=west:open=false weathered_copper_door:facing=west:open=false oxidized_copper_door:facing=west:open=false waxed_copper_door:facing=west:open=false waxed_exposed_copper_door:facing=west:open=false waxed_weathered_copper_door:facing=west:open=false waxed_oxidized_copper_door:facing=west:open=false acacia_door:facing=south:hinge=left:open=true bamboo_door:facing=south:hinge=left:open=true birch_door:facing=south:hinge=left:open=true cherry_door:facing=south:hinge=left:open=true crimson_door:facing=south:hinge=left:open=true dark_oak_door:facing=south:hinge=left:open=true iron_door:facing=south:hinge=left:open=true jungle_door:facing=south:hinge=left:open=true mangrove_door:facing=south:hinge=left:open=true oak_door:facing=south:hinge=left:open=true spruce_door:facing=south:hinge=left:open=true warped_door:facing=south:hinge=left:open=true copper_door:facing=south:hinge=left:open=true exposed_copper_door:facing=south:hinge=left:open=true weathered_copper_door:facing=south:hinge=left:open=true oxidized_copper_door:facing=south:hinge=left:open=true waxed_copper_door:facing=south:hinge=left:open=true waxed_exposed_copper_door:facing=south:hinge=left:open=true waxed_weathered_copper_door:facing=south:hinge=left:open=true waxed_oxidized_copper_door:facing=south:hinge=left:open=true acacia_door:facing=north:hinge=right:open=true bamboo_door:facing=north:hinge=right:open=true birch_door:facing=north:hinge=right:open=true cherry_door:facing=north:hinge=right:open=true crimson_door:facing=north:hinge=right:open=true dark_oak_door:facing=north:hinge=right:open=true iron_door:facing=north:hinge=right:open=true jungle_door:facing=north:hinge=right:open=true mangrove_door:facing=north:hinge=right:open=true oak_door:facing=north:hinge=right:open=true spruce_door:facing=north:hinge=right:open=true warped_door:facing=north:hinge=right:open=true copper_door:facing=north:hinge=right:open=true exposed_copper_door:facing=north:hinge=right:open=true weathered_copper_door:facing=north:hinge=right:open=true oxidized_copper_door:facing=north:hinge=right:open=true waxed_copper_door:facing=north:hinge=right:open=true waxed_exposed_copper_door:facing=north:hinge=right:open=true waxed_weathered_copper_door:facing=north:hinge=right:open=true waxed_oxidized_copper_door:facing=north:hinge=right:open=true +block.406=acacia_door:facing=west:open=false bamboo_door:facing=west:open=false birch_door:facing=west:open=false cherry_door:facing=west:open=false crimson_door:facing=west:open=false dark_oak_door:facing=west:open=false iron_door:facing=west:open=false jungle_door:facing=west:open=false mangrove_door:facing=west:open=false oak_door:facing=west:open=false spruce_door:facing=west:open=false warped_door:facing=west:open=false copper_door:facing=west:open=false exposed_copper_door:facing=west:open=false weathered_copper_door:facing=west:open=false oxidized_copper_door:facing=west:open=false waxed_copper_door:facing=west:open=false waxed_exposed_copper_door:facing=west:open=false waxed_weathered_copper_door:facing=west:open=false waxed_oxidized_copper_door:facing=west:open=false acacia_door:facing=south:hinge=left:open=true bamboo_door:facing=south:hinge=left:open=true birch_door:facing=south:hinge=left:open=true cherry_door:facing=south:hinge=left:open=true crimson_door:facing=south:hinge=left:open=true dark_oak_door:facing=south:hinge=left:open=true iron_door:facing=south:hinge=left:open=true jungle_door:facing=south:hinge=left:open=true mangrove_door:facing=south:hinge=left:open=true oak_door:facing=south:hinge=left:open=true spruce_door:facing=south:hinge=left:open=true warped_door:facing=south:hinge=left:open=true copper_door:facing=south:hinge=left:open=true exposed_copper_door:facing=south:hinge=left:open=true weathered_copper_door:facing=south:hinge=left:open=true oxidized_copper_door:facing=south:hinge=left:open=true waxed_copper_door:facing=south:hinge=left:open=true waxed_exposed_copper_door:facing=south:hinge=left:open=true waxed_weathered_copper_door:facing=south:hinge=left:open=true waxed_oxidized_copper_door:facing=south:hinge=left:open=true acacia_door:facing=north:hinge=right:open=true bamboo_door:facing=north:hinge=right:open=true birch_door:facing=north:hinge=right:open=true cherry_door:facing=north:hinge=right:open=true crimson_door:facing=north:hinge=right:open=true dark_oak_door:facing=north:hinge=right:open=true iron_door:facing=north:hinge=right:open=true jungle_door:facing=north:hinge=right:open=true mangrove_door:facing=north:hinge=right:open=true oak_door:facing=north:hinge=right:open=true spruce_door:facing=north:hinge=right:open=true warped_door:facing=north:hinge=right:open=true copper_door:facing=north:hinge=right:open=true exposed_copper_door:facing=north:hinge=right:open=true weathered_copper_door:facing=north:hinge=right:open=true oxidized_copper_door:facing=north:hinge=right:open=true waxed_copper_door:facing=north:hinge=right:open=true waxed_exposed_copper_door:facing=north:hinge=right:open=true waxed_weathered_copper_door:facing=north:hinge=right:open=true waxed_oxidized_copper_door:facing=north:hinge=right:open=true -block.409=acacia_fence bamboo_fence birch_fence cherry_fence crimson_fence dark_oak_fence jungle_fence mangrove_fence nether_brick_fence oak_fence spruce_fence warped_fence +block.407=acacia_fence bamboo_fence birch_fence cherry_fence crimson_fence dark_oak_fence jungle_fence mangrove_fence nether_brick_fence oak_fence spruce_fence warped_fence -block.410=acacia_fence_gate bamboo_fence_gate birch_fence_gate cherry_fence_gate crimson_fence_gate dark_oak_fence_gate jungle_fence_gate mangrove_fence_gate oak_fence_gate spruce_fence_gate warped_fence_gate +block.408=acacia_fence_gate bamboo_fence_gate birch_fence_gate cherry_fence_gate crimson_fence_gate dark_oak_fence_gate jungle_fence_gate mangrove_fence_gate oak_fence_gate spruce_fence_gate warped_fence_gate -block.411=flower_pot potted_acacia_sapling potted_allium potted_azalea_bush potted_bamboo potted_azure_bluet potted_birch_sapling potted_blue_orchid potted_brown_mushroom potted_cactus potted_cornflower potted_crimson_fungus potted_crimson_roots potted_dandelion potted_dark_oak_sapling potted_dead_bush potted_fern potted_flowering_azalea_bush potted_jungle_sapling potted_lily_of_the_valley potted_mangrove_propagule potted_oak_sapling potted_orange_tulip potted_oxeye_daisy potted_pink_tulip potted_poppy potted_red_mushroom potted_red_tulip potted_spruce_sapling potted_torchflower potted_warped_fungus potted_warped_roots potted_white_tulip potted_wither_rose +block.409=flower_pot potted_acacia_sapling potted_allium potted_azalea_bush potted_bamboo potted_azure_bluet potted_birch_sapling potted_blue_orchid potted_brown_mushroom potted_cactus potted_cornflower potted_crimson_fungus potted_crimson_roots potted_dandelion potted_dark_oak_sapling potted_dead_bush potted_fern potted_flowering_azalea_bush potted_jungle_sapling potted_lily_of_the_valley potted_mangrove_propagule potted_oak_sapling potted_orange_tulip potted_oxeye_daisy potted_pink_tulip potted_poppy potted_red_mushroom potted_red_tulip potted_spruce_sapling potted_torchflower potted_warped_fungus potted_warped_roots potted_white_tulip potted_wither_rose -block.412=iron_bars +block.410=iron_bars -block.413=ladder - -block.414=lever - -block.415=acacia_pressure_plate bamboo_pressure_plate birch_pressure_plate cherry_pressure_plate crimson_pressure_plate dark_oak_pressure_plate heavy_weighted_pressure_plate jungle_pressure_plate light_weighted_pressure_plate mangrove_pressure_plate oak_pressure_plate polished_blackstone_pressure_plate spruce_pressure_plate stone_pressure_plate warped_pressure_plate +block.411=acacia_pressure_plate bamboo_pressure_plate birch_pressure_plate cherry_pressure_plate crimson_pressure_plate dark_oak_pressure_plate heavy_weighted_pressure_plate jungle_pressure_plate light_weighted_pressure_plate mangrove_pressure_plate oak_pressure_plate polished_blackstone_pressure_plate spruce_pressure_plate stone_pressure_plate warped_pressure_plate -block.416=acacia_slab:type=top bamboo_slab:type=top bamboo_mosaic_slab:type=top birch_slab:type=top cherry_slab:type=top crimson_slab:type=top dark_oak_slab:type=top jungle_slab:type=top mangrove_slab:type=top oak_slab:type=top spruce_slab:type=top warped_slab:type=top andesite_slab:type=top blackstone_slab:type=top brick_slab:type=top cobbled_deepslate_slab:type=top cobblestone_slab:type=top cut_copper_slab:type=top cut_red_sandstone_slab:type=top cut_sandstone_slab:type=top dark_prismarine_slab:type=top deepslate_brick_slab:type=top deepslate_tile_slab:type=top diorite_slab:type=top end_stone_brick_slab:type=top exposed_cut_copper_slab:type=top granite_slab:type=top mossy_cobblestone_slab:type=top mossy_stone_brick_slab:type=top mud_brick_slab:type=top nether_brick_slab:type=top oxidized_cut_copper_slab:type=top petrified_oak_slab:type=top polished_andesite_slab:type=top polished_blackstone_brick_slab:type=top polished_blackstone_slab:type=top polished_deepslate_slab:type=top polished_diorite_slab:type=top polished_granite_slab:type=top prismarine_brick_slab:type=top prismarine_slab:type=top purpur_slab:type=top quartz_slab:type=top red_nether_brick_slab:type=top red_sandstone_slab:type=top sandstone_slab:type=top smooth_quartz_slab:type=top smooth_red_sandstone_slab:type=top smooth_sandstone_slab:type=top smooth_stone_slab:type=top stone_brick_slab:type=top stone_slab:type=top waxed_cut_copper_slab:type=top waxed_exposed_cut_copper_slab:type=top waxed_oxidized_cut_copper_slab:type=top waxed_weathered_cut_copper_slab:type=top weathered_cut_copper_slab:type=top +block.412=acacia_slab:type=top bamboo_slab:type=top bamboo_mosaic_slab:type=top birch_slab:type=top cherry_slab:type=top crimson_slab:type=top dark_oak_slab:type=top jungle_slab:type=top mangrove_slab:type=top oak_slab:type=top spruce_slab:type=top warped_slab:type=top andesite_slab:type=top blackstone_slab:type=top brick_slab:type=top cobbled_deepslate_slab:type=top cobblestone_slab:type=top cut_copper_slab:type=top cut_red_sandstone_slab:type=top cut_sandstone_slab:type=top dark_prismarine_slab:type=top deepslate_brick_slab:type=top deepslate_tile_slab:type=top diorite_slab:type=top end_stone_brick_slab:type=top exposed_cut_copper_slab:type=top granite_slab:type=top mossy_cobblestone_slab:type=top mossy_stone_brick_slab:type=top mud_brick_slab:type=top nether_brick_slab:type=top oxidized_cut_copper_slab:type=top petrified_oak_slab:type=top polished_andesite_slab:type=top polished_blackstone_brick_slab:type=top polished_blackstone_slab:type=top polished_deepslate_slab:type=top polished_diorite_slab:type=top polished_granite_slab:type=top prismarine_brick_slab:type=top prismarine_slab:type=top purpur_slab:type=top quartz_slab:type=top red_nether_brick_slab:type=top red_sandstone_slab:type=top sandstone_slab:type=top smooth_quartz_slab:type=top smooth_red_sandstone_slab:type=top smooth_sandstone_slab:type=top smooth_stone_slab:type=top stone_brick_slab:type=top stone_slab:type=top waxed_cut_copper_slab:type=top waxed_exposed_cut_copper_slab:type=top waxed_oxidized_cut_copper_slab:type=top waxed_weathered_cut_copper_slab:type=top weathered_cut_copper_slab:type=top -block.417=acacia_slab:type=bottom bamboo_slab:type=bottom bamboo_mosaic_slab:type=bottom birch_slab:type=bottom cherry_slab:type=bottom crimson_slab:type=bottom dark_oak_slab:type=bottom jungle_slab:type=bottom mangrove_slab:type=bottom oak_slab:type=bottom spruce_slab:type=bottom warped_slab:type=bottom andesite_slab:type=bottom blackstone_slab:type=bottom brick_slab:type=bottom cobbled_deepslate_slab:type=bottom cobblestone_slab:type=bottom cut_copper_slab:type=bottom cut_red_sandstone_slab:type=bottom cut_sandstone_slab:type=bottom dark_prismarine_slab:type=bottom deepslate_brick_slab:type=bottom deepslate_tile_slab:type=bottom diorite_slab:type=bottom end_stone_brick_slab:type=bottom exposed_cut_copper_slab:type=bottom granite_slab:type=bottom mossy_cobblestone_slab:type=bottom mossy_stone_brick_slab:type=bottom mud_brick_slab:type=bottom nether_brick_slab:type=bottom oxidized_cut_copper_slab:type=bottom petrified_oak_slab:type=bottom polished_andesite_slab:type=bottom polished_blackstone_brick_slab:type=bottom polished_blackstone_slab:type=bottom polished_deepslate_slab:type=bottom polished_diorite_slab:type=bottom polished_granite_slab:type=bottom prismarine_brick_slab:type=bottom prismarine_slab:type=bottom purpur_slab:type=bottom quartz_slab:type=bottom red_nether_brick_slab:type=bottom red_sandstone_slab:type=bottom sandstone_slab:type=bottom smooth_quartz_slab:type=bottom smooth_red_sandstone_slab:type=bottom smooth_sandstone_slab:type=bottom smooth_stone_slab:type=bottom stone_brick_slab:type=bottom stone_slab:type=bottom waxed_cut_copper_slab:type=bottom waxed_exposed_cut_copper_slab:type=bottom waxed_oxidized_cut_copper_slab:type=bottom waxed_weathered_cut_copper_slab:type=bottom weathered_cut_copper_slab:type=bottom daylight_detector +block.413=acacia_slab:type=bottom bamboo_slab:type=bottom bamboo_mosaic_slab:type=bottom birch_slab:type=bottom cherry_slab:type=bottom crimson_slab:type=bottom dark_oak_slab:type=bottom jungle_slab:type=bottom mangrove_slab:type=bottom oak_slab:type=bottom spruce_slab:type=bottom warped_slab:type=bottom andesite_slab:type=bottom blackstone_slab:type=bottom brick_slab:type=bottom cobbled_deepslate_slab:type=bottom cobblestone_slab:type=bottom cut_copper_slab:type=bottom cut_red_sandstone_slab:type=bottom cut_sandstone_slab:type=bottom dark_prismarine_slab:type=bottom deepslate_brick_slab:type=bottom deepslate_tile_slab:type=bottom diorite_slab:type=bottom end_stone_brick_slab:type=bottom exposed_cut_copper_slab:type=bottom granite_slab:type=bottom mossy_cobblestone_slab:type=bottom mossy_stone_brick_slab:type=bottom mud_brick_slab:type=bottom nether_brick_slab:type=bottom oxidized_cut_copper_slab:type=bottom petrified_oak_slab:type=bottom polished_andesite_slab:type=bottom polished_blackstone_brick_slab:type=bottom polished_blackstone_slab:type=bottom polished_deepslate_slab:type=bottom polished_diorite_slab:type=bottom polished_granite_slab:type=bottom prismarine_brick_slab:type=bottom prismarine_slab:type=bottom purpur_slab:type=bottom quartz_slab:type=bottom red_nether_brick_slab:type=bottom red_sandstone_slab:type=bottom sandstone_slab:type=bottom smooth_quartz_slab:type=bottom smooth_red_sandstone_slab:type=bottom smooth_sandstone_slab:type=bottom smooth_stone_slab:type=bottom stone_brick_slab:type=bottom stone_slab:type=bottom waxed_cut_copper_slab:type=bottom waxed_exposed_cut_copper_slab:type=bottom waxed_oxidized_cut_copper_slab:type=bottom waxed_weathered_cut_copper_slab:type=bottom weathered_cut_copper_slab:type=bottom daylight_detector -block.418=acacia_trapdoor:half=bottom:open=false bamboo_trapdoor:half=bottom:open=false birch_trapdoor:half=bottom:open=false cherry_trapdoor:half=bottom:open=false crimson_trapdoor:half=bottom:open=false dark_oak_trapdoor:half=bottom:open=false iron_trapdoor:half=bottom:open=false jungle_trapdoor:half=bottom:open=false mangrove_trapdoor:half=bottom:open=false oak_trapdoor:half=bottom:open=false spruce_trapdoor:half=bottom:open=false warped_trapdoor:half=bottom:open=false copper_trapdoor:half=bottom:open=false exposed_copper_trapdoor:half=bottom:open=false weathered_copper_trapdoor:half=bottom:open=false oxidized_copper_trapdoor:half=bottom:open=false waxed_copper_trapdoor:half=bottom:open=false waxed_exposed_copper_trapdoor:half=bottom:open=false waxed_weathered_copper_trapdoor:half=bottom:open=false waxed_oxidized_copper_trapdoor:half=bottom:open=false +block.414=acacia_trapdoor:half=bottom:open=false bamboo_trapdoor:half=bottom:open=false birch_trapdoor:half=bottom:open=false cherry_trapdoor:half=bottom:open=false crimson_trapdoor:half=bottom:open=false dark_oak_trapdoor:half=bottom:open=false iron_trapdoor:half=bottom:open=false jungle_trapdoor:half=bottom:open=false mangrove_trapdoor:half=bottom:open=false oak_trapdoor:half=bottom:open=false spruce_trapdoor:half=bottom:open=false warped_trapdoor:half=bottom:open=false copper_trapdoor:half=bottom:open=false exposed_copper_trapdoor:half=bottom:open=false weathered_copper_trapdoor:half=bottom:open=false oxidized_copper_trapdoor:half=bottom:open=false waxed_copper_trapdoor:half=bottom:open=false waxed_exposed_copper_trapdoor:half=bottom:open=false waxed_weathered_copper_trapdoor:half=bottom:open=false waxed_oxidized_copper_trapdoor:half=bottom:open=false -block.419=acacia_trapdoor:half=top:open=false bamboo_trapdoor:half=top:open=false birch_trapdoor:half=top:open=false cherry_trapdoor:half=top:open=false crimson_trapdoor:half=top:open=false dark_oak_trapdoor:half=top:open=false iron_trapdoor:half=top:open=false jungle_trapdoor:half=top:open=false mangrove_trapdoor:half=top:open=false oak_trapdoor:half=top:open=false spruce_trapdoor:half=top:open=false warped_trapdoor:half=top:open=false copper_trapdoor:half=top:open=false exposed_copper_trapdoor:half=top:open=false weathered_copper_trapdoor:half=top:open=false oxidized_copper_trapdoor:half=top:open=false waxed_copper_trapdoor:half=top:open=false waxed_exposed_copper_trapdoor:half=top:open=false waxed_weathered_copper_trapdoor:half=top:open=false waxed_oxidized_copper_trapdoor:half=top:open=false +block.415=acacia_trapdoor:half=top:open=false bamboo_trapdoor:half=top:open=false birch_trapdoor:half=top:open=false cherry_trapdoor:half=top:open=false crimson_trapdoor:half=top:open=false dark_oak_trapdoor:half=top:open=false iron_trapdoor:half=top:open=false jungle_trapdoor:half=top:open=false mangrove_trapdoor:half=top:open=false oak_trapdoor:half=top:open=false spruce_trapdoor:half=top:open=false warped_trapdoor:half=top:open=false copper_trapdoor:half=top:open=false exposed_copper_trapdoor:half=top:open=false weathered_copper_trapdoor:half=top:open=false oxidized_copper_trapdoor:half=top:open=false waxed_copper_trapdoor:half=top:open=false waxed_exposed_copper_trapdoor:half=top:open=false waxed_weathered_copper_trapdoor:half=top:open=false waxed_oxidized_copper_trapdoor:half=top:open=false -block.420=acacia_trapdoor:facing=north:open=true bamboo_trapdoor:facing=north:open=true birch_trapdoor:facing=north:open=true cherry_trapdoor:facing=north:open=true crimson_trapdoor:facing=north:open=true dark_oak_trapdoor:facing=north:open=true iron_trapdoor:facing=north:open=true jungle_trapdoor:facing=north:open=true mangrove_trapdoor:facing=north:open=true oak_trapdoor:facing=north:open=true spruce_trapdoor:facing=north:open=true warped_trapdoor:facing=north:open=true copper_trapdoor:facing=north:open=true exposed_copper_trapdoor:facing=north:open=true weathered_copper_trapdoor:facing=north:open=true oxidized_copper_trapdoor:facing=north:open=true waxed_copper_trapdoor:facing=north:open=true waxed_exposed_copper_trapdoor:facing=north:open=true waxed_weathered_copper_trapdoor:facing=north:open=true waxed_oxidized_copper_trapdoor:facing=north:open=true +block.416=acacia_trapdoor:facing=north:open=true bamboo_trapdoor:facing=north:open=true birch_trapdoor:facing=north:open=true cherry_trapdoor:facing=north:open=true crimson_trapdoor:facing=north:open=true dark_oak_trapdoor:facing=north:open=true iron_trapdoor:facing=north:open=true jungle_trapdoor:facing=north:open=true mangrove_trapdoor:facing=north:open=true oak_trapdoor:facing=north:open=true spruce_trapdoor:facing=north:open=true warped_trapdoor:facing=north:open=true copper_trapdoor:facing=north:open=true exposed_copper_trapdoor:facing=north:open=true weathered_copper_trapdoor:facing=north:open=true oxidized_copper_trapdoor:facing=north:open=true waxed_copper_trapdoor:facing=north:open=true waxed_exposed_copper_trapdoor:facing=north:open=true waxed_weathered_copper_trapdoor:facing=north:open=true waxed_oxidized_copper_trapdoor:facing=north:open=true -block.421=acacia_trapdoor:facing=east:open=true bamboo_trapdoor:facing=east:open=true birch_trapdoor:facing=east:open=true cherry_trapdoor:facing=east:open=true crimson_trapdoor:facing=east:open=true dark_oak_trapdoor:facing=east:open=true iron_trapdoor:facing=east:open=true jungle_trapdoor:facing=east:open=true mangrove_trapdoor:facing=east:open=true oak_trapdoor:facing=east:open=true spruce_trapdoor:facing=east:open=true warped_trapdoor:facing=east:open=true copper_trapdoor:facing=east:open=true exposed_copper_trapdoor:facing=east:open=true weathered_copper_trapdoor:facing=east:open=true oxidized_copper_trapdoor:facing=east:open=true waxed_copper_trapdoor:facing=east:open=true waxed_exposed_copper_trapdoor:facing=east:open=true waxed_weathered_copper_trapdoor:facing=east:open=true waxed_oxidized_copper_trapdoor:facing=east:open=true +block.417=acacia_trapdoor:facing=east:open=true bamboo_trapdoor:facing=east:open=true birch_trapdoor:facing=east:open=true cherry_trapdoor:facing=east:open=true crimson_trapdoor:facing=east:open=true dark_oak_trapdoor:facing=east:open=true iron_trapdoor:facing=east:open=true jungle_trapdoor:facing=east:open=true mangrove_trapdoor:facing=east:open=true oak_trapdoor:facing=east:open=true spruce_trapdoor:facing=east:open=true warped_trapdoor:facing=east:open=true copper_trapdoor:facing=east:open=true exposed_copper_trapdoor:facing=east:open=true weathered_copper_trapdoor:facing=east:open=true oxidized_copper_trapdoor:facing=east:open=true waxed_copper_trapdoor:facing=east:open=true waxed_exposed_copper_trapdoor:facing=east:open=true waxed_weathered_copper_trapdoor:facing=east:open=true waxed_oxidized_copper_trapdoor:facing=east:open=true -block.422=acacia_trapdoor:facing=south:open=true bamboo_trapdoor:facing=south:open=true birch_trapdoor:facing=south:open=true cherry_trapdoor:facing=south:open=true crimson_trapdoor:facing=south:open=true dark_oak_trapdoor:facing=south:open=true iron_trapdoor:facing=south:open=true jungle_trapdoor:facing=south:open=true mangrove_trapdoor:facing=south:open=true oak_trapdoor:facing=south:open=true spruce_trapdoor:facing=south:open=true warped_trapdoor:facing=south:open=true copper_trapdoor:facing=south:open=true exposed_copper_trapdoor:facing=south:open=true weathered_copper_trapdoor:facing=south:open=true oxidized_copper_trapdoor:facing=south:open=true waxed_copper_trapdoor:facing=south:open=true waxed_exposed_copper_trapdoor:facing=south:open=true waxed_weathered_copper_trapdoor:facing=south:open=true waxed_oxidized_copper_trapdoor:facing=south:open=true +block.418=acacia_trapdoor:facing=south:open=true bamboo_trapdoor:facing=south:open=true birch_trapdoor:facing=south:open=true cherry_trapdoor:facing=south:open=true crimson_trapdoor:facing=south:open=true dark_oak_trapdoor:facing=south:open=true iron_trapdoor:facing=south:open=true jungle_trapdoor:facing=south:open=true mangrove_trapdoor:facing=south:open=true oak_trapdoor:facing=south:open=true spruce_trapdoor:facing=south:open=true warped_trapdoor:facing=south:open=true copper_trapdoor:facing=south:open=true exposed_copper_trapdoor:facing=south:open=true weathered_copper_trapdoor:facing=south:open=true oxidized_copper_trapdoor:facing=south:open=true waxed_copper_trapdoor:facing=south:open=true waxed_exposed_copper_trapdoor:facing=south:open=true waxed_weathered_copper_trapdoor:facing=south:open=true waxed_oxidized_copper_trapdoor:facing=south:open=true -block.423=acacia_trapdoor:facing=west:open=true bamboo_trapdoor:facing=west:open=true birch_trapdoor:facing=west:open=true cherry_trapdoor:facing=west:open=true crimson_trapdoor:facing=west:open=true dark_oak_trapdoor:facing=west:open=true iron_trapdoor:facing=west:open=true jungle_trapdoor:facing=west:open=true mangrove_trapdoor:facing=west:open=true oak_trapdoor:facing=west:open=true spruce_trapdoor:facing=west:open=true warped_trapdoor:facing=west:open=true copper_trapdoor:facing=west:open=true exposed_copper_trapdoor:facing=west:open=true weathered_copper_trapdoor:facing=west:open=true oxidized_copper_trapdoor:facing=west:open=true waxed_copper_trapdoor:facing=west:open=true waxed_exposed_copper_trapdoor:facing=west:open=true waxed_weathered_copper_trapdoor:facing=west:open=true waxed_oxidized_copper_trapdoor:facing=west:open=true +block.419=acacia_trapdoor:facing=west:open=true bamboo_trapdoor:facing=west:open=true birch_trapdoor:facing=west:open=true cherry_trapdoor:facing=west:open=true crimson_trapdoor:facing=west:open=true dark_oak_trapdoor:facing=west:open=true iron_trapdoor:facing=west:open=true jungle_trapdoor:facing=west:open=true mangrove_trapdoor:facing=west:open=true oak_trapdoor:facing=west:open=true spruce_trapdoor:facing=west:open=true warped_trapdoor:facing=west:open=true copper_trapdoor:facing=west:open=true exposed_copper_trapdoor:facing=west:open=true weathered_copper_trapdoor:facing=west:open=true oxidized_copper_trapdoor:facing=west:open=true waxed_copper_trapdoor:facing=west:open=true waxed_exposed_copper_trapdoor:facing=west:open=true waxed_weathered_copper_trapdoor:facing=west:open=true waxed_oxidized_copper_trapdoor:facing=west:open=true ####### ----- misc ----- ####### diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index 5e63988..e2f81dc 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -543,6 +543,10 @@ void main() { lightColor = vec3(0.463, 0.763, 0.409); lightRange = 15.0; break; + case BLOCK_FURNACE_LIT: + lightColor = vec3(0.8, 0.7, 0.1); + lightRange = 13.0; + break; case BLOCK_GLOW_LICHEN: lightColor = vec3(0.092, 0.217, 0.126); lightRange = 7.0; @@ -758,10 +762,6 @@ void main() { lightColor = vec3(0.848, 0.469, 0.205); lightRange = 15.0; break; - case BLOCK_SMOKER_LIT: - lightColor = vec3(0.8, 0.7, 0.1); - lightRange = 13.0; - break; case BLOCK_SOUL_FIRE: lightColor = vec3(0.1, 0.6, 1.0); lightRange = 10.0; diff --git a/shaders/dimensions/shadowcomp.csh b/shaders/dimensions/shadowcomp.csh index 7648358..dd26f01 100644 --- a/shaders/dimensions/shadowcomp.csh +++ b/shaders/dimensions/shadowcomp.csh @@ -132,6 +132,18 @@ void main() { uint tintData = LpvBlockMap[blockId].Tint; tintColor = unpackUnorm4x8(tintData).rgb; } + + if (blockId > 0u) { + vec4 lightColorRange = unpackUnorm4x8(LpvBlockMap[blockId].ColorRange); + float lightRange = lightColorRange.a * 255.0; + + if (lightRange > EPSILON) { + vec3 lightColor = srgbToLinear(lightColorRange.rgb); + lightValue.rgb = Lpv_RgbToHsv(lightColor, lightRange); + lightValue.ba = exp2(lightValue.ba * LpvBlockSkyRange) - 1.0; + lightValue.rgb = HsvToRgb(lightValue.rgb); + } + } if (mixWeight > EPSILON) { vec4 lightMixed = mixNeighbours(ivec3(gl_LocalInvocationID), mixMask); @@ -142,16 +154,6 @@ void main() { lightValue.rgb = RgbToHsv(lightValue.rgb); lightValue.ba = log2(lightValue.ba + 1.0) / LpvBlockSkyRange; - if (blockId > 0u) { - vec4 lightColorRange = unpackUnorm4x8(LpvBlockMap[blockId].ColorRange); - float lightRange = lightColorRange.a * 255.0; - - if (lightRange > EPSILON) { - vec3 lightColor = srgbToLinear(lightColorRange.rgb); - lightValue.rgb = Lpv_RgbToHsv(lightColor, lightRange); - } - } - if (frameCounter % 2 == 0) imageStore(imgLpv1, imgCoord, lightValue); else diff --git a/shaders/lib/blocks.glsl b/shaders/lib/blocks.glsl index 000723a..3ffd247 100644 --- a/shaders/lib/blocks.glsl +++ b/shaders/lib/blocks.glsl @@ -105,54 +105,54 @@ #define BLOCK_FROGLIGHT_OCHRE 189 #define BLOCK_FROGLIGHT_PEARLESCENT 190 #define BLOCK_FROGLIGHT_VERDANT 191 -#define BLOCK_GLOW_LICHEN 192 -#define BLOCK_GLOWSTONE 193 -#define BLOCK_JACK_O_LANTERN 194 -#define BLOCK_LANTERN 195 -#define BLOCK_LAVA 196 -#define BLOCK_LIGHT_1 197 -#define BLOCK_LIGHT_2 198 -#define BLOCK_LIGHT_3 199 -#define BLOCK_LIGHT_4 200 -#define BLOCK_LIGHT_5 201 -#define BLOCK_LIGHT_6 202 -#define BLOCK_LIGHT_7 203 -#define BLOCK_LIGHT_8 204 -#define BLOCK_LIGHT_9 205 -#define BLOCK_LIGHT_10 206 -#define BLOCK_LIGHT_11 207 -#define BLOCK_LIGHT_12 208 -#define BLOCK_LIGHT_13 209 -#define BLOCK_LIGHT_14 210 -#define BLOCK_LIGHT_15 211 -#define BLOCK_MAGMA 212 -#define BLOCK_REDSTONE_LAMP_LIT 213 -#define BLOCK_REDSTONE_TORCH_LIT 214 -#define BLOCK_REDSTONE_WIRE_1 215 -#define BLOCK_REDSTONE_WIRE_2 216 -#define BLOCK_REDSTONE_WIRE_3 217 -#define BLOCK_REDSTONE_WIRE_4 218 -#define BLOCK_REDSTONE_WIRE_5 219 -#define BLOCK_REDSTONE_WIRE_6 220 -#define BLOCK_REDSTONE_WIRE_7 221 -#define BLOCK_REDSTONE_WIRE_8 222 -#define BLOCK_REDSTONE_WIRE_9 223 -#define BLOCK_REDSTONE_WIRE_10 224 -#define BLOCK_REDSTONE_WIRE_11 225 -#define BLOCK_REDSTONE_WIRE_12 226 -#define BLOCK_REDSTONE_WIRE_13 227 -#define BLOCK_REDSTONE_WIRE_14 228 -#define BLOCK_REDSTONE_WIRE_15 229 -#define BLOCK_REPEATER_LIT 230 -#define BLOCK_RESPAWN_ANCHOR_4 231 -#define BLOCK_SCULK_SENSOR_ACTIVE 232 -#define BLOCK_SEA_PICKLE_WET_1 233 -#define BLOCK_SEA_PICKLE_WET_2 234 -#define BLOCK_SEA_PICKLE_WET_3 235 -#define BLOCK_SEA_PICKLE_WET_4 236 -#define BLOCK_SEA_LANTERN 237 -#define BLOCK_SHROOMLIGHT 238 -#define BLOCK_SMOKER_LIT 239 +#define BLOCK_FURNACE_LIT 192 +#define BLOCK_GLOW_LICHEN 193 +#define BLOCK_GLOWSTONE 194 +#define BLOCK_JACK_O_LANTERN 195 +#define BLOCK_LANTERN 196 +#define BLOCK_LAVA 197 +#define BLOCK_LIGHT_1 198 +#define BLOCK_LIGHT_2 199 +#define BLOCK_LIGHT_3 200 +#define BLOCK_LIGHT_4 201 +#define BLOCK_LIGHT_5 202 +#define BLOCK_LIGHT_6 203 +#define BLOCK_LIGHT_7 204 +#define BLOCK_LIGHT_8 205 +#define BLOCK_LIGHT_9 206 +#define BLOCK_LIGHT_10 207 +#define BLOCK_LIGHT_11 208 +#define BLOCK_LIGHT_12 209 +#define BLOCK_LIGHT_13 210 +#define BLOCK_LIGHT_14 211 +#define BLOCK_LIGHT_15 212 +#define BLOCK_MAGMA 213 +#define BLOCK_REDSTONE_LAMP_LIT 214 +#define BLOCK_REDSTONE_TORCH_LIT 215 +#define BLOCK_REDSTONE_WIRE_1 216 +#define BLOCK_REDSTONE_WIRE_2 217 +#define BLOCK_REDSTONE_WIRE_3 218 +#define BLOCK_REDSTONE_WIRE_4 219 +#define BLOCK_REDSTONE_WIRE_5 220 +#define BLOCK_REDSTONE_WIRE_6 221 +#define BLOCK_REDSTONE_WIRE_7 222 +#define BLOCK_REDSTONE_WIRE_8 223 +#define BLOCK_REDSTONE_WIRE_9 224 +#define BLOCK_REDSTONE_WIRE_10 225 +#define BLOCK_REDSTONE_WIRE_11 226 +#define BLOCK_REDSTONE_WIRE_12 227 +#define BLOCK_REDSTONE_WIRE_13 228 +#define BLOCK_REDSTONE_WIRE_14 229 +#define BLOCK_REDSTONE_WIRE_15 230 +#define BLOCK_REPEATER_LIT 231 +#define BLOCK_RESPAWN_ANCHOR_4 232 +#define BLOCK_SCULK_SENSOR_ACTIVE 233 +#define BLOCK_SEA_PICKLE_WET_1 234 +#define BLOCK_SEA_PICKLE_WET_2 235 +#define BLOCK_SEA_PICKLE_WET_3 236 +#define BLOCK_SEA_PICKLE_WET_4 237 +#define BLOCK_SEA_LANTERN 238 +#define BLOCK_SHROOMLIGHT 239 #define BLOCK_SOUL_FIRE 240 #define BLOCK_SOUL_LANTERN 241 #define BLOCK_SOUL_TORCH 242 @@ -178,28 +178,24 @@ #define BLOCK_GLASS_RED 319 #define BLOCK_GLASS_WHITE 320 #define BLOCK_GLASS_YELLOW 321 -#define BLOCK_BUTTON 401 -#define BLOCK_CANDLE 402 -#define BLOCK_CARPET 403 -#define BLOCK_CHAIN 404 -#define BLOCK_DOOR_N 405 -#define BLOCK_DOOR_E 406 -#define BLOCK_DOOR_S 407 -#define BLOCK_DOOR_W 408 -#define BLOCK_FENCE 409 -#define BLOCK_FENCE_GATE 410 -#define BLOCK_FLOWER_POT 411 -#define BLOCK_IRON_BARS 412 -#define BLOCK_LADDER 413 -#define BLOCK_LEVER 414 -#define BLOCK_PRESSURE_PLATE 415 -#define BLOCK_SLAB_TOP 416 -#define BLOCK_SLAB_BOTTOM 417 -#define BLOCK_TRAPDOOR_BOTTOM 418 -#define BLOCK_TRAPDOOR_TOP 419 -#define BLOCK_TRAPDOOR_N 420 -#define BLOCK_TRAPDOOR_E 421 -#define BLOCK_TRAPDOOR_S 422 -#define BLOCK_TRAPDOOR_W 423 +#define BLOCK_LPV_IGNORE 401 +#define BLOCK_CARPET 402 +#define BLOCK_DOOR_N 403 +#define BLOCK_DOOR_E 404 +#define BLOCK_DOOR_S 405 +#define BLOCK_DOOR_W 406 +#define BLOCK_FENCE 407 +#define BLOCK_FENCE_GATE 408 +#define BLOCK_FLOWER_POT 409 +#define BLOCK_IRON_BARS 410 +#define BLOCK_PRESSURE_PLATE 411 +#define BLOCK_SLAB_TOP 412 +#define BLOCK_SLAB_BOTTOM 413 +#define BLOCK_TRAPDOOR_BOTTOM 414 +#define BLOCK_TRAPDOOR_TOP 415 +#define BLOCK_TRAPDOOR_N 416 +#define BLOCK_TRAPDOOR_E 417 +#define BLOCK_TRAPDOOR_S 418 +#define BLOCK_TRAPDOOR_W 419 #define BLOCK_END_PORTAL 500 #define BLOCK_SIGN 501 diff --git a/shaders/template/block.properties b/shaders/template/block.properties index c5c86f6..8aad4e8 100644 --- a/shaders/template/block.properties +++ b/shaders/template/block.properties @@ -348,6 +348,9 @@ block.*= vine #= BLOCK_FROGLIGHT_VERDANT block.*= verdant_froglight + #= BLOCK_FURNACE_LIT + block.*= furnace:lit=true blast_furnace:lit=true smoker:lit=true + #= BLOCK_GLOW_LICHEN block.*= glow_lichen @@ -489,9 +492,6 @@ block.*= vine #= BLOCK_SHROOMLIGHT block.*= shroomlight - #= BLOCK_SMOKER_LIT - block.*= smoker:lit=true - #= BLOCK_SOUL_FIRE block.*= soul_fire soul_campfire:lit=true From 7cd1cde2c3c231923a3e1e33f5f66abf63d3db86 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sun, 5 May 2024 16:07:28 -0400 Subject: [PATCH 05/12] nether/end shadow pass for voxel data, broken iris uniforms though --- shaders/block.properties | 2 +- shaders/shaders.properties | 5 +- shaders/template/block.properties | 1 + shaders/world-1/shadow.fsh | 10 +++ shaders/world-1/shadow.vsh | 121 ++++++++++++++++++++++++++++++ shaders/world1/shadow.fsh | 10 +++ shaders/world1/shadow.vsh | 121 ++++++++++++++++++++++++++++++ 7 files changed, 268 insertions(+), 2 deletions(-) create mode 100644 shaders/world-1/shadow.fsh create mode 100644 shaders/world-1/shadow.vsh create mode 100644 shaders/world1/shadow.fsh create mode 100644 shaders/world1/shadow.vsh diff --git a/shaders/block.properties b/shaders/block.properties index b31be1e..2641257 100644 --- a/shaders/block.properties +++ b/shaders/block.properties @@ -393,7 +393,7 @@ block.321=yellow_stained_glass yellow_stained_glass_pane ####### ----- LPV shapes ----- ####### -block.401=chain ladder lever tripwire_hook candle:lit=false black_candle:lit=false blue_candle:lit=false brown_candle:lit=false cyan_candle:lit=false gray_candle:lit=false green_candle:lit=false light_blue_candle:lit=false light_gray_candle:lit=false lime_candle:lit=false magenta_candle:lit=false orange_candle:lit=false pink_candle:lit=false purple_candle:lit=false red_candle:lit=false white_candle:lit=false yellow_candle:lit=false acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button +block.401=chain ladder lever tripwire_hook snow:layers=1 candle:lit=false black_candle:lit=false blue_candle:lit=false brown_candle:lit=false cyan_candle:lit=false gray_candle:lit=false green_candle:lit=false light_blue_candle:lit=false light_gray_candle:lit=false lime_candle:lit=false magenta_candle:lit=false orange_candle:lit=false pink_candle:lit=false purple_candle:lit=false red_candle:lit=false white_candle:lit=false yellow_candle:lit=false acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button block.402=black_carpet blue_carpet brown_carpet cyan_carpet gray_carpet green_carpet light_blue_carpet light_gray_carpet lime_carpet magenta_carpet moss_carpet orange_carpet pink_carpet purple_carpet red_carpet white_carpet yellow_carpet diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 946cf5c..f43de0f 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -19,7 +19,7 @@ iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUS #endif #ifdef LPV_ENABLED - # shadow.enabled = true + shadow.enabled = true shadow.culling = reversed voxelizeLightBlocks = true #endif @@ -576,6 +576,9 @@ uniform.float.shadowMaxProj = 150.0/abs(sunPosY) program.world0/setup.enabled = false program.world-1/setup.enabled = false + program.world1/shadow.enabled = false + program.world-1/shadow.enabled = false + program.world1/shadowcomp.enabled = false program.world0/shadowcomp.enabled = false program.world-1/shadowcomp.enabled = false diff --git a/shaders/template/block.properties b/shaders/template/block.properties index 8aad4e8..b50a3fa 100644 --- a/shaders/template/block.properties +++ b/shaders/template/block.properties @@ -578,6 +578,7 @@ block.*= vine #= BLOCK_LPV_IGNORE block.401= chain ladder lever tripwire_hook \ + snow:layers=1 \ [candle]:lit=false \ acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button diff --git a/shaders/world-1/shadow.fsh b/shaders/world-1/shadow.fsh new file mode 100644 index 0000000..f0a8503 --- /dev/null +++ b/shaders/world-1/shadow.fsh @@ -0,0 +1,10 @@ +#version 120 + +#include "/lib/settings.glsl" + + +//////////////////////////////VOID MAIN////////////////////////////// + +void main() { + gl_FragData[0] = vec4(0.0); +} diff --git a/shaders/world-1/shadow.vsh b/shaders/world-1/shadow.vsh new file mode 100644 index 0000000..61de9bc --- /dev/null +++ b/shaders/world-1/shadow.vsh @@ -0,0 +1,121 @@ +#version 120 +#extension GL_ARB_explicit_attrib_location: enable +#extension GL_ARB_shader_image_load_store: enable + +#include "/lib/settings.glsl" + +#define RENDER_SHADOW + + +/* +!! DO NOT REMOVE !! +This code is from Chocapic13' shaders +Read the terms of modification and sharing before changing something below please ! +!! DO NOT REMOVE !! +*/ + +// #define SHADOW_MAP_BIAS 0.5 +// const float PI = 3.1415927; +// varying vec2 texcoord; +// uniform mat4 shadowProjectionInverse; +// uniform mat4 shadowProjection; +uniform mat4 shadowModelViewInverse; +// uniform mat4 shadowModelView; +// uniform mat4 gbufferModelView; +// uniform mat4 gbufferModelViewInverse; +// uniform mat4 gbufferProjection; +// uniform mat4 gbufferProjectionInverse; +// uniform int hideGUI; +uniform vec3 cameraPosition; +// uniform float frameTimeCounter; +// uniform int frameCounter; +// uniform float screenBrightness; +// uniform vec3 sunVec; +// uniform float aspectRatio; +// uniform float sunElevation; +// uniform vec3 sunPosition; +// uniform float lightSign; +// uniform float cosFov; +// uniform vec3 shadowViewDir; +// uniform vec3 shadowCamera; +// uniform vec3 shadowLightVec; +// uniform float shadowMaxProj; +// attribute vec4 mc_midTexCoord; +// varying vec4 color; + +#ifdef IS_LPV_ENABLED + attribute vec4 mc_Entity; + attribute vec3 at_midBlock; + + uniform int renderStage; + uniform int currentRenderedItemId; + uniform int blockEntityId; + uniform int entityId; + + // #include "/lib/Shadow_Params.glsl" + // #include "/lib/bokeh.glsl" + + + #include "/lib/blocks.glsl" + #include "/lib/entities.glsl" + #include "/lib/voxel_common.glsl" + #include "/lib/voxel_write.glsl" +#endif + + +void main() { + #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + + int blockId = int(mc_Entity.x + 0.5); + + #if defined IS_LPV_ENABLED || defined WAVY_PLANTS + vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + #endif + + if ( + renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || + renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED + ) { + uint voxelId = uint(blockId); + if (voxelId == 0u) voxelId = 1u; + + vec3 originPos = playerpos + at_midBlock/64.0; + + SetVoxelBlock(originPos, voxelId); + } + + #ifdef LPV_ENTITY_LIGHTS + if ( + (currentRenderedItemId > 0 || entityId > 0) && + (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) + ) { + uint voxelId = 0u; + + if (currentRenderedItemId > 0) { + if (entityId == ENTITY_PLAYER) { + // TODO: remove once hand-light is added + if (currentRenderedItemId < 1000) + voxelId = uint(currentRenderedItemId); + } + else if (entityId != ENTITY_ITEM_FRAME) + voxelId = uint(currentRenderedItemId); + } + else { + switch (entityId) { + case ENTITY_SPECTRAL_ARROW: + voxelId = uint(BLOCK_TORCH); + break; + + // TODO: blaze, magma_cube + } + } + + if (voxelId > 0u) + SetVoxelBlock(playerpos, voxelId); + } + #endif + #endif + + gl_Position = vec4(-1.0); +} \ No newline at end of file diff --git a/shaders/world1/shadow.fsh b/shaders/world1/shadow.fsh new file mode 100644 index 0000000..f0a8503 --- /dev/null +++ b/shaders/world1/shadow.fsh @@ -0,0 +1,10 @@ +#version 120 + +#include "/lib/settings.glsl" + + +//////////////////////////////VOID MAIN////////////////////////////// + +void main() { + gl_FragData[0] = vec4(0.0); +} diff --git a/shaders/world1/shadow.vsh b/shaders/world1/shadow.vsh new file mode 100644 index 0000000..61de9bc --- /dev/null +++ b/shaders/world1/shadow.vsh @@ -0,0 +1,121 @@ +#version 120 +#extension GL_ARB_explicit_attrib_location: enable +#extension GL_ARB_shader_image_load_store: enable + +#include "/lib/settings.glsl" + +#define RENDER_SHADOW + + +/* +!! DO NOT REMOVE !! +This code is from Chocapic13' shaders +Read the terms of modification and sharing before changing something below please ! +!! DO NOT REMOVE !! +*/ + +// #define SHADOW_MAP_BIAS 0.5 +// const float PI = 3.1415927; +// varying vec2 texcoord; +// uniform mat4 shadowProjectionInverse; +// uniform mat4 shadowProjection; +uniform mat4 shadowModelViewInverse; +// uniform mat4 shadowModelView; +// uniform mat4 gbufferModelView; +// uniform mat4 gbufferModelViewInverse; +// uniform mat4 gbufferProjection; +// uniform mat4 gbufferProjectionInverse; +// uniform int hideGUI; +uniform vec3 cameraPosition; +// uniform float frameTimeCounter; +// uniform int frameCounter; +// uniform float screenBrightness; +// uniform vec3 sunVec; +// uniform float aspectRatio; +// uniform float sunElevation; +// uniform vec3 sunPosition; +// uniform float lightSign; +// uniform float cosFov; +// uniform vec3 shadowViewDir; +// uniform vec3 shadowCamera; +// uniform vec3 shadowLightVec; +// uniform float shadowMaxProj; +// attribute vec4 mc_midTexCoord; +// varying vec4 color; + +#ifdef IS_LPV_ENABLED + attribute vec4 mc_Entity; + attribute vec3 at_midBlock; + + uniform int renderStage; + uniform int currentRenderedItemId; + uniform int blockEntityId; + uniform int entityId; + + // #include "/lib/Shadow_Params.glsl" + // #include "/lib/bokeh.glsl" + + + #include "/lib/blocks.glsl" + #include "/lib/entities.glsl" + #include "/lib/voxel_common.glsl" + #include "/lib/voxel_write.glsl" +#endif + + +void main() { + #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + + int blockId = int(mc_Entity.x + 0.5); + + #if defined IS_LPV_ENABLED || defined WAVY_PLANTS + vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + #endif + + if ( + renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || + renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED + ) { + uint voxelId = uint(blockId); + if (voxelId == 0u) voxelId = 1u; + + vec3 originPos = playerpos + at_midBlock/64.0; + + SetVoxelBlock(originPos, voxelId); + } + + #ifdef LPV_ENTITY_LIGHTS + if ( + (currentRenderedItemId > 0 || entityId > 0) && + (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) + ) { + uint voxelId = 0u; + + if (currentRenderedItemId > 0) { + if (entityId == ENTITY_PLAYER) { + // TODO: remove once hand-light is added + if (currentRenderedItemId < 1000) + voxelId = uint(currentRenderedItemId); + } + else if (entityId != ENTITY_ITEM_FRAME) + voxelId = uint(currentRenderedItemId); + } + else { + switch (entityId) { + case ENTITY_SPECTRAL_ARROW: + voxelId = uint(BLOCK_TORCH); + break; + + // TODO: blaze, magma_cube + } + } + + if (voxelId > 0u) + SetVoxelBlock(playerpos, voxelId); + } + #endif + #endif + + gl_Position = vec4(-1.0); +} \ No newline at end of file From beac5d235f33ad59218a2d7376b2935355c550a9 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sun, 5 May 2024 17:47:37 -0400 Subject: [PATCH 06/12] nether/end temp floodfill fix --- shaders/world-1/shadow.vsh | 107 ++++++++++++------------------------- shaders/world1/shadow.vsh | 107 ++++++++++++------------------------- 2 files changed, 70 insertions(+), 144 deletions(-) diff --git a/shaders/world-1/shadow.vsh b/shaders/world-1/shadow.vsh index 61de9bc..133962f 100644 --- a/shaders/world-1/shadow.vsh +++ b/shaders/world-1/shadow.vsh @@ -14,48 +14,18 @@ Read the terms of modification and sharing before changing something below pleas !! DO NOT REMOVE !! */ -// #define SHADOW_MAP_BIAS 0.5 -// const float PI = 3.1415927; -// varying vec2 texcoord; -// uniform mat4 shadowProjectionInverse; -// uniform mat4 shadowProjection; -uniform mat4 shadowModelViewInverse; -// uniform mat4 shadowModelView; -// uniform mat4 gbufferModelView; -// uniform mat4 gbufferModelViewInverse; -// uniform mat4 gbufferProjection; -// uniform mat4 gbufferProjectionInverse; -// uniform int hideGUI; -uniform vec3 cameraPosition; -// uniform float frameTimeCounter; -// uniform int frameCounter; -// uniform float screenBrightness; -// uniform vec3 sunVec; -// uniform float aspectRatio; -// uniform float sunElevation; -// uniform vec3 sunPosition; -// uniform float lightSign; -// uniform float cosFov; -// uniform vec3 shadowViewDir; -// uniform vec3 shadowCamera; -// uniform vec3 shadowLightVec; -// uniform float shadowMaxProj; -// attribute vec4 mc_midTexCoord; -// varying vec4 color; - #ifdef IS_LPV_ENABLED attribute vec4 mc_Entity; attribute vec3 at_midBlock; + attribute vec3 vaPosition; uniform int renderStage; + uniform vec3 chunkOffset; + uniform vec3 cameraPosition; uniform int currentRenderedItemId; uniform int blockEntityId; uniform int entityId; - // #include "/lib/Shadow_Params.glsl" - // #include "/lib/bokeh.glsl" - - #include "/lib/blocks.glsl" #include "/lib/entities.glsl" #include "/lib/voxel_common.glsl" @@ -65,57 +35,50 @@ uniform vec3 cameraPosition; void main() { #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store - vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - - int blockId = int(mc_Entity.x + 0.5); - - #if defined IS_LPV_ENABLED || defined WAVY_PLANTS - vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; - #endif - if ( renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED ) { - uint voxelId = uint(blockId); - if (voxelId == 0u) voxelId = 1u; - + vec3 playerpos = gl_Vertex.xyz; vec3 originPos = playerpos + at_midBlock/64.0; + uint voxelId = uint(mc_Entity.x + 0.5); + if (voxelId == 0u) voxelId = 1u; + SetVoxelBlock(originPos, voxelId); } - #ifdef LPV_ENTITY_LIGHTS - if ( - (currentRenderedItemId > 0 || entityId > 0) && - (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) - ) { - uint voxelId = 0u; + // #ifdef LPV_ENTITY_LIGHTS + // if ( + // (currentRenderedItemId > 0 || entityId > 0) && + // (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) + // ) { + // uint voxelId = 0u; - if (currentRenderedItemId > 0) { - if (entityId == ENTITY_PLAYER) { - // TODO: remove once hand-light is added - if (currentRenderedItemId < 1000) - voxelId = uint(currentRenderedItemId); - } - else if (entityId != ENTITY_ITEM_FRAME) - voxelId = uint(currentRenderedItemId); - } - else { - switch (entityId) { - case ENTITY_SPECTRAL_ARROW: - voxelId = uint(BLOCK_TORCH); - break; + // if (currentRenderedItemId > 0) { + // if (entityId == ENTITY_PLAYER) { + // // TODO: remove once hand-light is added + // if (currentRenderedItemId < 1000) + // voxelId = uint(currentRenderedItemId); + // } + // else if (entityId != ENTITY_ITEM_FRAME) + // voxelId = uint(currentRenderedItemId); + // } + // else { + // switch (entityId) { + // case ENTITY_SPECTRAL_ARROW: + // voxelId = uint(BLOCK_TORCH); + // break; - // TODO: blaze, magma_cube - } - } + // // TODO: blaze, magma_cube + // } + // } - if (voxelId > 0u) - SetVoxelBlock(playerpos, voxelId); - } - #endif + // if (voxelId > 0u) + // SetVoxelBlock(playerpos, voxelId); + // } + // #endif #endif gl_Position = vec4(-1.0); -} \ No newline at end of file +} diff --git a/shaders/world1/shadow.vsh b/shaders/world1/shadow.vsh index 61de9bc..26beb38 100644 --- a/shaders/world1/shadow.vsh +++ b/shaders/world1/shadow.vsh @@ -14,48 +14,18 @@ Read the terms of modification and sharing before changing something below pleas !! DO NOT REMOVE !! */ -// #define SHADOW_MAP_BIAS 0.5 -// const float PI = 3.1415927; -// varying vec2 texcoord; -// uniform mat4 shadowProjectionInverse; -// uniform mat4 shadowProjection; -uniform mat4 shadowModelViewInverse; -// uniform mat4 shadowModelView; -// uniform mat4 gbufferModelView; -// uniform mat4 gbufferModelViewInverse; -// uniform mat4 gbufferProjection; -// uniform mat4 gbufferProjectionInverse; -// uniform int hideGUI; -uniform vec3 cameraPosition; -// uniform float frameTimeCounter; -// uniform int frameCounter; -// uniform float screenBrightness; -// uniform vec3 sunVec; -// uniform float aspectRatio; -// uniform float sunElevation; -// uniform vec3 sunPosition; -// uniform float lightSign; -// uniform float cosFov; -// uniform vec3 shadowViewDir; -// uniform vec3 shadowCamera; -// uniform vec3 shadowLightVec; -// uniform float shadowMaxProj; -// attribute vec4 mc_midTexCoord; -// varying vec4 color; - #ifdef IS_LPV_ENABLED attribute vec4 mc_Entity; attribute vec3 at_midBlock; + attribute vec3 vaPosition; uniform int renderStage; + uniform vec3 chunkOffset; + uniform vec3 cameraPosition; uniform int currentRenderedItemId; uniform int blockEntityId; uniform int entityId; - // #include "/lib/Shadow_Params.glsl" - // #include "/lib/bokeh.glsl" - - #include "/lib/blocks.glsl" #include "/lib/entities.glsl" #include "/lib/voxel_common.glsl" @@ -65,57 +35,50 @@ uniform vec3 cameraPosition; void main() { #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store - vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - - int blockId = int(mc_Entity.x + 0.5); - - #if defined IS_LPV_ENABLED || defined WAVY_PLANTS - vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; - #endif - if ( renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED ) { - uint voxelId = uint(blockId); - if (voxelId == 0u) voxelId = 1u; - + vec3 playerpos = vaPosition + chunkOffset + gl_Vertex.xyz; vec3 originPos = playerpos + at_midBlock/64.0; + uint voxelId = uint(mc_Entity.x + 0.5); + if (voxelId == 0u) voxelId = 1u; + SetVoxelBlock(originPos, voxelId); } - #ifdef LPV_ENTITY_LIGHTS - if ( - (currentRenderedItemId > 0 || entityId > 0) && - (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) - ) { - uint voxelId = 0u; + // #ifdef LPV_ENTITY_LIGHTS + // if ( + // (currentRenderedItemId > 0 || entityId > 0) && + // (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) + // ) { + // uint voxelId = 0u; - if (currentRenderedItemId > 0) { - if (entityId == ENTITY_PLAYER) { - // TODO: remove once hand-light is added - if (currentRenderedItemId < 1000) - voxelId = uint(currentRenderedItemId); - } - else if (entityId != ENTITY_ITEM_FRAME) - voxelId = uint(currentRenderedItemId); - } - else { - switch (entityId) { - case ENTITY_SPECTRAL_ARROW: - voxelId = uint(BLOCK_TORCH); - break; + // if (currentRenderedItemId > 0) { + // if (entityId == ENTITY_PLAYER) { + // // TODO: remove once hand-light is added + // if (currentRenderedItemId < 1000) + // voxelId = uint(currentRenderedItemId); + // } + // else if (entityId != ENTITY_ITEM_FRAME) + // voxelId = uint(currentRenderedItemId); + // } + // else { + // switch (entityId) { + // case ENTITY_SPECTRAL_ARROW: + // voxelId = uint(BLOCK_TORCH); + // break; - // TODO: blaze, magma_cube - } - } + // // TODO: blaze, magma_cube + // } + // } - if (voxelId > 0u) - SetVoxelBlock(playerpos, voxelId); - } - #endif + // if (voxelId > 0u) + // SetVoxelBlock(playerpos, voxelId); + // } + // #endif #endif gl_Position = vec4(-1.0); -} \ No newline at end of file +} From 81fb07c371ebbc57f0e2a8589ce8423e43fe832d Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sun, 5 May 2024 18:03:00 -0400 Subject: [PATCH 07/12] nether/end floodfill final fix --- shaders/world-1/shadow.vsh | 59 ++++++++++++++++++++------------------ shaders/world1/shadow.vsh | 59 ++++++++++++++++++++------------------ 2 files changed, 62 insertions(+), 56 deletions(-) diff --git a/shaders/world-1/shadow.vsh b/shaders/world-1/shadow.vsh index 133962f..5b7f190 100644 --- a/shaders/world-1/shadow.vsh +++ b/shaders/world-1/shadow.vsh @@ -18,6 +18,8 @@ Read the terms of modification and sharing before changing something below pleas attribute vec4 mc_Entity; attribute vec3 at_midBlock; attribute vec3 vaPosition; + + uniform mat4 shadowModelViewInverse; uniform int renderStage; uniform vec3 chunkOffset; @@ -35,11 +37,13 @@ Read the terms of modification and sharing before changing something below pleas void main() { #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + if ( renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED ) { - vec3 playerpos = gl_Vertex.xyz; vec3 originPos = playerpos + at_midBlock/64.0; uint voxelId = uint(mc_Entity.x + 0.5); @@ -48,36 +52,35 @@ void main() { SetVoxelBlock(originPos, voxelId); } - // #ifdef LPV_ENTITY_LIGHTS - // if ( - // (currentRenderedItemId > 0 || entityId > 0) && - // (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) - // ) { - // uint voxelId = 0u; + #ifdef LPV_ENTITY_LIGHTS + if ( + (currentRenderedItemId > 0 || entityId > 0) && + (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) + ) { + uint voxelId = 0u; - // if (currentRenderedItemId > 0) { - // if (entityId == ENTITY_PLAYER) { - // // TODO: remove once hand-light is added - // if (currentRenderedItemId < 1000) - // voxelId = uint(currentRenderedItemId); - // } - // else if (entityId != ENTITY_ITEM_FRAME) - // voxelId = uint(currentRenderedItemId); - // } - // else { - // switch (entityId) { - // case ENTITY_SPECTRAL_ARROW: - // voxelId = uint(BLOCK_TORCH); - // break; + if (currentRenderedItemId > 0) { + if (entityId == ENTITY_PLAYER) { + if (currentRenderedItemId < 1000) + voxelId = uint(currentRenderedItemId); + } + else if (entityId != ENTITY_ITEM_FRAME) + voxelId = uint(currentRenderedItemId); + } + else { + switch (entityId) { + case ENTITY_SPECTRAL_ARROW: + voxelId = uint(BLOCK_TORCH); + break; - // // TODO: blaze, magma_cube - // } - // } + // TODO: blaze, magma_cube + } + } - // if (voxelId > 0u) - // SetVoxelBlock(playerpos, voxelId); - // } - // #endif + if (voxelId > 0u) + SetVoxelBlock(playerpos, voxelId); + } + #endif #endif gl_Position = vec4(-1.0); diff --git a/shaders/world1/shadow.vsh b/shaders/world1/shadow.vsh index 26beb38..5b7f190 100644 --- a/shaders/world1/shadow.vsh +++ b/shaders/world1/shadow.vsh @@ -18,6 +18,8 @@ Read the terms of modification and sharing before changing something below pleas attribute vec4 mc_Entity; attribute vec3 at_midBlock; attribute vec3 vaPosition; + + uniform mat4 shadowModelViewInverse; uniform int renderStage; uniform vec3 chunkOffset; @@ -35,11 +37,13 @@ Read the terms of modification and sharing before changing something below pleas void main() { #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + if ( renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED ) { - vec3 playerpos = vaPosition + chunkOffset + gl_Vertex.xyz; vec3 originPos = playerpos + at_midBlock/64.0; uint voxelId = uint(mc_Entity.x + 0.5); @@ -48,36 +52,35 @@ void main() { SetVoxelBlock(originPos, voxelId); } - // #ifdef LPV_ENTITY_LIGHTS - // if ( - // (currentRenderedItemId > 0 || entityId > 0) && - // (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) - // ) { - // uint voxelId = 0u; + #ifdef LPV_ENTITY_LIGHTS + if ( + (currentRenderedItemId > 0 || entityId > 0) && + (renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES || renderStage == MC_RENDER_STAGE_ENTITIES) + ) { + uint voxelId = 0u; - // if (currentRenderedItemId > 0) { - // if (entityId == ENTITY_PLAYER) { - // // TODO: remove once hand-light is added - // if (currentRenderedItemId < 1000) - // voxelId = uint(currentRenderedItemId); - // } - // else if (entityId != ENTITY_ITEM_FRAME) - // voxelId = uint(currentRenderedItemId); - // } - // else { - // switch (entityId) { - // case ENTITY_SPECTRAL_ARROW: - // voxelId = uint(BLOCK_TORCH); - // break; + if (currentRenderedItemId > 0) { + if (entityId == ENTITY_PLAYER) { + if (currentRenderedItemId < 1000) + voxelId = uint(currentRenderedItemId); + } + else if (entityId != ENTITY_ITEM_FRAME) + voxelId = uint(currentRenderedItemId); + } + else { + switch (entityId) { + case ENTITY_SPECTRAL_ARROW: + voxelId = uint(BLOCK_TORCH); + break; - // // TODO: blaze, magma_cube - // } - // } + // TODO: blaze, magma_cube + } + } - // if (voxelId > 0u) - // SetVoxelBlock(playerpos, voxelId); - // } - // #endif + if (voxelId > 0u) + SetVoxelBlock(playerpos, voxelId); + } + #endif #endif gl_Position = vec4(-1.0); From bfcf3e1805b6d609f5247fe13b0694e8f1fdb883 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Mon, 6 May 2024 11:54:30 -0400 Subject: [PATCH 08/12] entity.properties template; lpv hand-light prep --- shaders/dimensions/all_particles.fsh | 2 ++ shaders/dimensions/all_translucent.fsh | 3 ++ shaders/dimensions/composite1.fsh | 5 +++ shaders/dimensions/shadowcomp.csh | 3 -- shaders/entity.properties | 27 ++++++++++------ shaders/lib/diffuse_lighting.glsl | 22 ++++++++++--- shaders/lib/entities.glsl | 13 ++++---- shaders/lib/settings.glsl | 2 ++ shaders/template/entity.properties | 45 ++++++++++++++++++++++++++ shaders/world-1/shadow.vsh | 18 +++++------ shaders/world0/shadow.vsh | 11 ++----- shaders/world1/shadow.vsh | 18 +++++------ 12 files changed, 120 insertions(+), 49 deletions(-) create mode 100644 shaders/template/entity.properties diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 849071f..2a1a2c7 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -67,6 +67,8 @@ flat varying float HELD_ITEM_BRIGHTNESS; #endif #ifdef IS_LPV_ENABLED + uniform int heldItemId; + uniform int heldItemId2; uniform int frameCounter; #include "/lib/hsv.glsl" diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index 03145fb..b1e188b 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -107,6 +107,9 @@ uniform vec3 nsunColor; #endif #ifdef IS_LPV_ENABLED + uniform int heldItemId; + uniform int heldItemId2; + #include "/lib/hsv.glsl" #include "/lib/lpv_common.glsl" #include "/lib/lpv_render.glsl" diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 056ab96..10a7440 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -123,6 +123,11 @@ flat varying vec3 WsunVec; flat varying vec3 unsigned_WsunVec; flat varying float exposure; +#ifdef IS_LPV_ENABLED + uniform int heldItemId; + uniform int heldItemId2; +#endif + #define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) #define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) diff --git a/shaders/dimensions/shadowcomp.csh b/shaders/dimensions/shadowcomp.csh index dd26f01..043449c 100644 --- a/shaders/dimensions/shadowcomp.csh +++ b/shaders/dimensions/shadowcomp.csh @@ -131,9 +131,6 @@ void main() { uint tintData = LpvBlockMap[blockId].Tint; tintColor = unpackUnorm4x8(tintData).rgb; - } - - if (blockId > 0u) { vec4 lightColorRange = unpackUnorm4x8(LpvBlockMap[blockId].ColorRange); float lightRange = lightColorRange.a * 255.0; diff --git a/shaders/entity.properties b/shaders/entity.properties index 23b7965..8bb72e9 100644 --- a/shaders/entity.properties +++ b/shaders/entity.properties @@ -1,27 +1,34 @@ -entity.1201= player +entity.1201=player -entity.1202= minecraft:lightning_bolt weather2:lightning_bolt +entity.1202=minecraft:lightning_bolt weather2:lightning_bolt ## misc stuff -entity.1203= ender_dragon wither -entity.1301= item_frame item_display -entity.1302= spectral_arrow bigglobe:torch_arrow -entity.1303= tnt firework_rocket +entity.1203=blaze + +entity.1204=ender_dragon wither + +entity.1205=item_frame item_display + +entity.1206=magma_cube + +entity.1207=tnt firework_rocket + +entity.1208=spectral_arrow bigglobe:torch_arrow ################################################ ###### SUB-SURFACE SCATTERING ################################################ ## medium sss (same as strong sss for blocks) -entity.1401 = giant ghast elder_guardian +entity.1401=giant ghast elder_guardian ## weak sss (same as weak sss for blocks) -entity.1402 = furnace_minecart sheep frog chicken iron_golem snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin blaze creeper drowned endermite evoker guardian hoglin husk magma_cube phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama -#removed: player +entity.1402=furnace_minecart sheep frog chicken iron_golem snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin creeper drowned endermite evoker guardian hoglin husk phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama +#removed: player blaze magma_cube ################################################ ###### REFLECTIVE TRANSLUCENTS ################################################ -entity.1403 = slime \ No newline at end of file +entity.1403=slime diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index c5904a1..53b9a7a 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -1,3 +1,14 @@ +#ifdef IS_LPV_ENABLED + vec3 GetHandLight(const in int itemId) { + if (itemId < 1000) { + // TODO: block lights + } + else { + // TODO: item lights + } + } +#endif + vec3 DoAmbientLightColor( vec3 lpvPos, vec3 SkyColor, @@ -24,9 +35,6 @@ vec3 DoAmbientLightColor( vec4 lpvSample = SampleLpvLinear(lpvPos); vec3 LpvTorchLight = GetLpvBlockLight(lpvSample); - // TODO: needs work, just binary transition for now - // float LpvFadeF = clamp(lpvPos, vec3(0.0), LpvSize3 - 1.0) == lpvPos ? 1.0 : 0.0; - // i gotchu float fadeLength = 10.0; // in blocks vec3 cubicRadius = clamp( min(((LpvSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength) ,0.0,1.0); @@ -34,7 +42,13 @@ vec3 DoAmbientLightColor( LpvFadeF = 1.0 - pow(1.0-pow(LpvFadeF,1.5),3.0); // make it nice and soft :) - TorchLight = mix(TorchLight,LpvTorchLight/5.0, LpvFadeF) ; + TorchLight = mix(TorchLight,LpvTorchLight/5.0, LpvFadeF); + + if (heldItemId > 0) + TorchLight += GetHandLight(heldItemId); + + if (heldItemId2 > 0) + TorchLight += GetHandLight(heldItemId2); #endif return IndirectLight + TorchLight * TorchBrightness_autoAdjust; diff --git a/shaders/lib/entities.glsl b/shaders/lib/entities.glsl index 141d86a..de0bc1b 100644 --- a/shaders/lib/entities.glsl +++ b/shaders/lib/entities.glsl @@ -1,10 +1,11 @@ #define ENTITY_PLAYER 1201 #define ENTITY_LIGHTNING 1202 -//#define ENTITY_DRAGON_WITHER 1203 - -#define ENTITY_ITEM_FRAME 1301 -#define ENTITY_SPECTRAL_ARROW 1302 -#define ENTITY_TNT 1303 - +#define ENTITY_BLAZE 1203 +#define ENTITY_DRAGON_WITHER 1204 +#define ENTITY_ITEM_FRAME 1205 +#define ENTITY_MAGMA_CUBE 1206 +#define ENTITY_TNT 1207 +#define ENTITY_SPECTRAL_ARROW 1208 #define ENTITY_SSS_MEDIUM 1401 #define ENTITY_SSS_WEAK 1402 +#define ENTITY_SLIME 1403 diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 2f9716a..575bf24 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -687,6 +687,8 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) #define LPV_REDSTONE_LIGHTS //#define LPV_COLORED_CANDLES +#define LPV_NOSHADOW_HACK + #ifdef LPV_ENABLED #ifdef IRIS_FEATURE_CUSTOM_IMAGES #define IS_LPV_ENABLED diff --git a/shaders/template/entity.properties b/shaders/template/entity.properties new file mode 100644 index 0000000..12a87f3 --- /dev/null +++ b/shaders/template/entity.properties @@ -0,0 +1,45 @@ +#= ENTITY_PLAYER +entity.1201= player + +#= ENTITY_LIGHTNING +entity.*= minecraft:lightning_bolt weather2:lightning_bolt + +## misc stuff + +#= ENTITY_BLAZE +entity.*= blaze + +#= ENTITY_DRAGON_WITHER +entity.*= ender_dragon wither + +#= ENTITY_ITEM_FRAME +entity.*= item_frame item_display + +#= ENTITY_MAGMA_CUBE +entity.*= magma_cube + +#= ENTITY_TNT +entity.*= tnt firework_rocket + +#= ENTITY_SPECTRAL_ARROW +entity.*= spectral_arrow bigglobe:torch_arrow + +################################################ +###### SUB-SURFACE SCATTERING +################################################ + +## medium sss (same as strong sss for blocks) +#= ENTITY_SSS_MEDIUM +entity.1401 = giant ghast elder_guardian + +## weak sss (same as weak sss for blocks) +#= ENTITY_SSS_WEAK +entity.* = furnace_minecart sheep frog chicken iron_golem snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin creeper drowned endermite evoker guardian hoglin husk phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama +#removed: player blaze magma_cube + +################################################ +###### REFLECTIVE TRANSLUCENTS +################################################ + +#= ENTITY_SLIME +entity.* = slime diff --git a/shaders/world-1/shadow.vsh b/shaders/world-1/shadow.vsh index 5b7f190..79049b3 100644 --- a/shaders/world-1/shadow.vsh +++ b/shaders/world-1/shadow.vsh @@ -37,8 +37,12 @@ Read the terms of modification and sharing before changing something below pleas void main() { #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store - vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + #ifdef LPV_NOSHADOW_HACK + vec3 playerpos = gl_Vertex.xyz; + #else + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + #endif if ( renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || @@ -60,20 +64,16 @@ void main() { uint voxelId = 0u; if (currentRenderedItemId > 0) { - if (entityId == ENTITY_PLAYER) { - if (currentRenderedItemId < 1000) - voxelId = uint(currentRenderedItemId); - } - else if (entityId != ENTITY_ITEM_FRAME) + if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) voxelId = uint(currentRenderedItemId); } else { switch (entityId) { + case ENTITY_BLAZE: + case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: voxelId = uint(BLOCK_TORCH); break; - - // TODO: blaze, magma_cube } } diff --git a/shaders/world0/shadow.vsh b/shaders/world0/shadow.vsh index 1d08937..27d23af 100644 --- a/shaders/world0/shadow.vsh +++ b/shaders/world0/shadow.vsh @@ -213,21 +213,16 @@ void main() { uint voxelId = 0u; if (currentRenderedItemId > 0) { - if (entityId == ENTITY_PLAYER) { - // TODO: remove once hand-light is added - if (currentRenderedItemId < 1000) - voxelId = uint(currentRenderedItemId); - } - else if (entityId != ENTITY_ITEM_FRAME) + if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) voxelId = uint(currentRenderedItemId); } else { switch (entityId) { + case ENTITY_BLAZE: + case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: voxelId = uint(BLOCK_TORCH); break; - - // TODO: blaze, magma_cube } } diff --git a/shaders/world1/shadow.vsh b/shaders/world1/shadow.vsh index 5b7f190..79049b3 100644 --- a/shaders/world1/shadow.vsh +++ b/shaders/world1/shadow.vsh @@ -37,8 +37,12 @@ Read the terms of modification and sharing before changing something below pleas void main() { #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store - vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + #ifdef LPV_NOSHADOW_HACK + vec3 playerpos = gl_Vertex.xyz; + #else + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + vec3 playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + #endif if ( renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT || @@ -60,20 +64,16 @@ void main() { uint voxelId = 0u; if (currentRenderedItemId > 0) { - if (entityId == ENTITY_PLAYER) { - if (currentRenderedItemId < 1000) - voxelId = uint(currentRenderedItemId); - } - else if (entityId != ENTITY_ITEM_FRAME) + if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) voxelId = uint(currentRenderedItemId); } else { switch (entityId) { + case ENTITY_BLAZE: + case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: voxelId = uint(BLOCK_TORCH); break; - - // TODO: blaze, magma_cube } } From a1cb96dd03a1f325eb02d5cd57964d74bd16ead1 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Mon, 6 May 2024 15:12:52 -0400 Subject: [PATCH 09/12] migrate block data to image; hand-light initial --- shaders/dimensions/all_particles.fsh | 7 +- shaders/dimensions/all_translucent.fsh | 5 +- shaders/dimensions/composite1.fsh | 17 +- shaders/dimensions/setup.csh | 1742 ++++++++++++------------ shaders/dimensions/shadowcomp.csh | 34 +- shaders/item.properties | 5 +- shaders/lib/diffuse_lighting.glsl | 27 +- shaders/lib/lpv_blocks.glsl | 32 +- shaders/shaders.properties | 5 +- 9 files changed, 955 insertions(+), 919 deletions(-) diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 2a1a2c7..9be7ce2 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -2,6 +2,7 @@ #ifdef IS_LPV_ENABLED #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable #endif #include "/lib/res_params.glsl" @@ -35,7 +36,9 @@ uniform int isEyeInWater; uniform sampler2D texture; uniform sampler2D noisetex; uniform sampler2D colortex4; + #ifdef IS_LPV_ENABLED + uniform usampler1D texBlockData; uniform sampler3D texLpv1; uniform sampler3D texLpv2; #endif @@ -61,6 +64,8 @@ flat varying float HELD_ITEM_BRIGHTNESS; uniform float nightVision; #endif +#include "/lib/util.glsl" + #ifdef OVERWORLD_SHADER #define CLOUDSHADOWSONLY #include "/lib/volumetricClouds.glsl" @@ -417,7 +422,7 @@ void main() { const vec3 lpvPos = vec3(0.0); #endif - Indirect_lighting = DoAmbientLightColor(lpvPos, AmbientLightColor, MinimumLightColor, Torch_Color, clamp(lightmap.xy,0,1), exposure); + Indirect_lighting = DoAmbientLightColor(feetPlayerPos, lpvPos, AmbientLightColor, MinimumLightColor, Torch_Color, clamp(lightmap.xy,0,1), exposure); #ifdef LINES gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * toLinear(color.rgb); diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index b1e188b..31c5836 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -2,6 +2,7 @@ #ifdef IS_LPV_ENABLED #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable #endif #include "/lib/res_params.glsl" @@ -49,6 +50,7 @@ uniform sampler2D specular; uniform sampler2D normals; #ifdef IS_LPV_ENABLED + uniform usampler1D texBlockData; uniform sampler3D texLpv1; uniform sampler3D texLpv2; #endif @@ -92,6 +94,7 @@ uniform vec3 nsunColor; #include "/lib/projections.glsl" #include "/lib/sky_gradient.glsl" #include "/lib/waterBump.glsl" +#include "/lib/util.glsl" #ifdef OVERWORLD_SHADER flat varying float Flashing; @@ -634,7 +637,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) const vec3 lpvPos = vec3(0.0); #endif - Indirect_lighting = DoAmbientLightColor(lpvPos, AmbientLightColor, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, exposure); + Indirect_lighting = DoAmbientLightColor(feetPlayerPos, lpvPos, AmbientLightColor, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, exposure); vec3 FinalColor = (Indirect_lighting + Direct_lighting) * Albedo; diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 10a7440..a38a627 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -1,7 +1,8 @@ #include "/lib/settings.glsl" #ifdef IS_LPV_ENABLED - #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable #endif #include "/lib/res_params.glsl" @@ -76,6 +77,7 @@ uniform sampler2D colortex14; uniform sampler2D colortex15; // flat normals(rgb), vanillaAO(alpha) #ifdef IS_LPV_ENABLED + uniform usampler1D texBlockData; uniform sampler3D texLpv1; uniform sampler3D texLpv2; #endif @@ -166,9 +168,12 @@ vec3 toScreenSpace(vec3 p) { #include "/lib/volumetricClouds.glsl" #endif +#include "/lib/util.glsl" + #ifdef IS_LPV_ENABLED #include "/lib/hsv.glsl" #include "/lib/lpv_common.glsl" + // #include "/lib/lpv_blocks.glsl" #include "/lib/lpv_render.glsl" #endif @@ -238,10 +243,10 @@ vec3 fp10Dither(vec3 color,float dither){ -float facos(float sx){ - float x = clamp(abs( sx ),0.,1.); - return sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); -} +// float facos(float sx){ +// float x = clamp(abs( sx ),0.,1.); +// return sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); +// } vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort) { @@ -1192,7 +1197,7 @@ void main() { const vec3 lpvPos = vec3(0.0); #endif - Indirect_lighting = DoAmbientLightColor(lpvPos, Indirect_lighting, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B) , lightmap.xy, exposure); + Indirect_lighting = DoAmbientLightColor(feetPlayerPos, lpvPos, Indirect_lighting, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B) , lightmap.xy, exposure); #ifdef OVERWORLD_SHADER Indirect_lighting += LightningFlashLighting; diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index e2f81dc..4304ea2 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -40,8 +40,8 @@ const ivec3 workGroups = ivec3(6, 6, 1); void main() { #ifdef IS_LPV_ENABLED - uint blockId = uint(gl_GlobalInvocationID.x + gl_GlobalInvocationID.y * 32); - if (blockId >= 2000) return; + int blockId = int(gl_GlobalInvocationID.x + gl_GlobalInvocationID.y * 32); + if (blockId >= 2048) return; vec3 lightColor = vec3(0.0); float lightRange = 0.0; @@ -49,908 +49,934 @@ void main() { uint mixMask = 0xFFFF; vec3 tintColor = vec3(1.0); - switch (blockId) { - case BLOCK_WATER: - mixWeight = 0.8; - break; + if (blockId < 1000) { + // BLOCKS - case BLOCK_BAMBOO: - mixWeight = 0.8; - break; + switch (blockId) { + case BLOCK_WATER: + mixWeight = 0.8; + break; - case BLOCK_GRASS_SHORT: - case BLOCK_GRASS_TALL_UPPER: - case BLOCK_GRASS_TALL_LOWER: - mixWeight = 0.85; - break; + case BLOCK_BAMBOO: + mixWeight = 0.8; + break; - case BLOCK_GROUND_WAVING: - case BLOCK_GROUND_WAVING_VERTICAL: - case BLOCK_AIR_WAVING: - mixWeight = 0.9; - break; + case BLOCK_GRASS_SHORT: + case BLOCK_GRASS_TALL_UPPER: + case BLOCK_GRASS_TALL_LOWER: + mixWeight = 0.85; + break; - case BLOCK_SAPLING: - mixWeight = 0.9; - break; + case BLOCK_GROUND_WAVING: + case BLOCK_GROUND_WAVING_VERTICAL: + case BLOCK_AIR_WAVING: + mixWeight = 0.9; + break; - // lightsources + case BLOCK_SAPLING: + mixWeight = 0.9; + break; - case BLOCK_AMETHYST_BUD_LARGE: - lightColor = LightColor_Amethyst; - lightRange = 4.0; - mixWeight = 0.6; - break; - case BLOCK_AMETHYST_BUD_MEDIUM: - lightColor = LightColor_Amethyst; - lightRange = 2.0; - mixWeight = 0.8; - break; - case BLOCK_AMETHYST_CLUSTER: - lightColor = LightColor_Amethyst; - lightRange = 5.0; - mixWeight = 0.4; - break; - case BLOCK_BEACON: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_BREWING_STAND: - lightColor = vec3(0.636, 0.509, 0.179); - lightRange = 1.0; - mixWeight = 0.8; - break; + // lightsources - #ifdef LPV_COLORED_CANDLES - case BLOCK_CANDLES_PLAIN_LIT_1: - lightColor = LightColor_Candles; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_2: - lightColor = LightColor_Candles; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_3: - lightColor = LightColor_Candles; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_4: - lightColor = LightColor_Candles; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_AMETHYST_BUD_LARGE: + lightColor = LightColor_Amethyst; + lightRange = 4.0; + mixWeight = 0.6; + break; + case BLOCK_AMETHYST_BUD_MEDIUM: + lightColor = LightColor_Amethyst; + lightRange = 2.0; + mixWeight = 0.8; + break; + case BLOCK_AMETHYST_CLUSTER: + lightColor = LightColor_Amethyst; + lightRange = 5.0; + mixWeight = 0.4; + break; + case BLOCK_BEACON: + lightColor = vec3(1.0); + lightRange = 15.0; + break; + case BLOCK_BREWING_STAND: + lightColor = vec3(0.636, 0.509, 0.179); + lightRange = 1.0; + mixWeight = 0.8; + break; - case BLOCK_CANDLES_BLACK_LIT_1: - lightColor = LightColor_Candles_Black; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_2: - lightColor = LightColor_Candles_Black; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_3: - lightColor = LightColor_Candles_Black; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_4: - lightColor = LightColor_Candles_Black; - lightRange = 12.0; - mixWeight = 1.0; - break; + #ifdef LPV_COLORED_CANDLES + case BLOCK_CANDLES_PLAIN_LIT_1: + lightColor = LightColor_Candles; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_2: + lightColor = LightColor_Candles; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_3: + lightColor = LightColor_Candles; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_4: + lightColor = LightColor_Candles; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_BLUE_LIT_1: - lightColor = LightColor_Candles_Blue; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_2: - lightColor = LightColor_Candles_Blue; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_3: - lightColor = LightColor_Candles_Blue; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_4: - lightColor = LightColor_Candles_Blue; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_BLACK_LIT_1: + lightColor = LightColor_Candles_Black; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_2: + lightColor = LightColor_Candles_Black; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_3: + lightColor = LightColor_Candles_Black; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_4: + lightColor = LightColor_Candles_Black; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_BROWN_LIT_1: - lightColor = LightColor_Candles_Brown; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_2: - lightColor = LightColor_Candles_Brown; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_3: - lightColor = LightColor_Candles_Brown; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_4: - lightColor = LightColor_Candles_Brown; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_BLUE_LIT_1: + lightColor = LightColor_Candles_Blue; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_2: + lightColor = LightColor_Candles_Blue; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_3: + lightColor = LightColor_Candles_Blue; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_4: + lightColor = LightColor_Candles_Blue; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_CYAN_LIT_1: - lightColor = LightColor_Candles_Cyan; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_2: - lightColor = LightColor_Candles_Cyan; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_3: - lightColor = LightColor_Candles_Cyan; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_4: - lightColor = LightColor_Candles_Cyan; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_BROWN_LIT_1: + lightColor = LightColor_Candles_Brown; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_2: + lightColor = LightColor_Candles_Brown; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_3: + lightColor = LightColor_Candles_Brown; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_4: + lightColor = LightColor_Candles_Brown; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_GRAY_LIT_1: - lightColor = LightColor_Candles_Gray; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_2: - lightColor = LightColor_Candles_Gray; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_3: - lightColor = LightColor_Candles_Gray; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_4: - lightColor = LightColor_Candles_Gray; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_CYAN_LIT_1: + lightColor = LightColor_Candles_Cyan; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_2: + lightColor = LightColor_Candles_Cyan; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_3: + lightColor = LightColor_Candles_Cyan; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_4: + lightColor = LightColor_Candles_Cyan; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_GREEN_LIT_1: - lightColor = LightColor_Candles_Green; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_2: - lightColor = LightColor_Candles_Green; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_3: - lightColor = LightColor_Candles_Green; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_4: - lightColor = LightColor_Candles_Green; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_GRAY_LIT_1: + lightColor = LightColor_Candles_Gray; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_2: + lightColor = LightColor_Candles_Gray; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_3: + lightColor = LightColor_Candles_Gray; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_4: + lightColor = LightColor_Candles_Gray; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_1: - lightColor = LightColor_Candles_LightBlue; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_2: - lightColor = LightColor_Candles_LightBlue; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_3: - lightColor = LightColor_Candles_LightBlue; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_4: - lightColor = LightColor_Candles_LightBlue; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_GREEN_LIT_1: + lightColor = LightColor_Candles_Green; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_2: + lightColor = LightColor_Candles_Green; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_3: + lightColor = LightColor_Candles_Green; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_4: + lightColor = LightColor_Candles_Green; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_1: - lightColor = LightColor_Candles_LightGray; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_2: - lightColor = LightColor_Candles_LightGray; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_3: - lightColor = LightColor_Candles_LightGray; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_4: - lightColor = LightColor_Candles_LightGray; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_1: + lightColor = LightColor_Candles_LightBlue; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_2: + lightColor = LightColor_Candles_LightBlue; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_3: + lightColor = LightColor_Candles_LightBlue; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_4: + lightColor = LightColor_Candles_LightBlue; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_LIME_LIT_1: - lightColor = LightColor_Candles_Lime; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_2: - lightColor = LightColor_Candles_Lime; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_3: - lightColor = LightColor_Candles_Lime; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_4: - lightColor = LightColor_Candles_Lime; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_1: + lightColor = LightColor_Candles_LightGray; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_2: + lightColor = LightColor_Candles_LightGray; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_3: + lightColor = LightColor_Candles_LightGray; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_4: + lightColor = LightColor_Candles_LightGray; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_MAGENTA_LIT_1: - lightColor = LightColor_Candles_Magenta; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_2: - lightColor = LightColor_Candles_Magenta; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_3: - lightColor = LightColor_Candles_Magenta; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_4: - lightColor = LightColor_Candles_Magenta; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_LIME_LIT_1: + lightColor = LightColor_Candles_Lime; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_2: + lightColor = LightColor_Candles_Lime; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_3: + lightColor = LightColor_Candles_Lime; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_4: + lightColor = LightColor_Candles_Lime; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_ORANGE_LIT_1: - lightColor = LightColor_Candles_Orange; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_2: - lightColor = LightColor_Candles_Orange; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_3: - lightColor = LightColor_Candles_Orange; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_4: - lightColor = LightColor_Candles_Orange; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_MAGENTA_LIT_1: + lightColor = LightColor_Candles_Magenta; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_2: + lightColor = LightColor_Candles_Magenta; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_3: + lightColor = LightColor_Candles_Magenta; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_4: + lightColor = LightColor_Candles_Magenta; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_PINK_LIT_1: - lightColor = LightColor_Candles_Pink; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_2: - lightColor = LightColor_Candles_Pink; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_3: - lightColor = LightColor_Candles_Pink; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_4: - lightColor = LightColor_Candles_Pink; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_ORANGE_LIT_1: + lightColor = LightColor_Candles_Orange; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_2: + lightColor = LightColor_Candles_Orange; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_3: + lightColor = LightColor_Candles_Orange; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_4: + lightColor = LightColor_Candles_Orange; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_PURPLE_LIT_1: - lightColor = LightColor_Candles_Purple; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_2: - lightColor = LightColor_Candles_Purple; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_3: - lightColor = LightColor_Candles_Purple; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_4: - lightColor = LightColor_Candles_Purple; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_PINK_LIT_1: + lightColor = LightColor_Candles_Pink; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_2: + lightColor = LightColor_Candles_Pink; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_3: + lightColor = LightColor_Candles_Pink; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_4: + lightColor = LightColor_Candles_Pink; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_RED_LIT_1: - lightColor = LightColor_Candles_Red; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_2: - lightColor = LightColor_Candles_Red; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_3: - lightColor = LightColor_Candles_Red; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_4: - lightColor = LightColor_Candles_Red; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_PURPLE_LIT_1: + lightColor = LightColor_Candles_Purple; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_2: + lightColor = LightColor_Candles_Purple; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_3: + lightColor = LightColor_Candles_Purple; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_4: + lightColor = LightColor_Candles_Purple; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_WHITE_LIT_1: - lightColor = LightColor_Candles_White; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_2: - lightColor = LightColor_Candles_White; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_3: - lightColor = LightColor_Candles_White; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_4: - lightColor = LightColor_Candles_White; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_RED_LIT_1: + lightColor = LightColor_Candles_Red; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_2: + lightColor = LightColor_Candles_Red; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_3: + lightColor = LightColor_Candles_Red; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_4: + lightColor = LightColor_Candles_Red; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_YELLOW_LIT_1: - lightColor = LightColor_Candles_Yellow; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_2: - lightColor = LightColor_Candles_Yellow; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_3: - lightColor = LightColor_Candles_Yellow; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_4: - lightColor = LightColor_Candles_Yellow; - lightRange = 12.0; - mixWeight = 1.0; - break; - #else - case BLOCK_CANDLES_LIT_1: - lightColor = LightColor_Candles; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_2: - lightColor = LightColor_Candles; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_3: - lightColor = LightColor_Candles; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_4: - lightColor = LightColor_Candles; - lightRange = 12.0; - mixWeight = 1.0; - break; - #endif + case BLOCK_CANDLES_WHITE_LIT_1: + lightColor = LightColor_Candles_White; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_2: + lightColor = LightColor_Candles_White; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_3: + lightColor = LightColor_Candles_White; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_4: + lightColor = LightColor_Candles_White; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CAVE_VINE_BERRIES: - lightColor = vec3(0.651, 0.369, 0.157); - lightRange = 14.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_YELLOW_LIT_1: + lightColor = LightColor_Candles_Yellow; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_2: + lightColor = LightColor_Candles_Yellow; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_3: + lightColor = LightColor_Candles_Yellow; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_4: + lightColor = LightColor_Candles_Yellow; + lightRange = 12.0; + mixWeight = 1.0; + break; + #else + case BLOCK_CANDLES_LIT_1: + lightColor = LightColor_Candles; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_2: + lightColor = LightColor_Candles; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_3: + lightColor = LightColor_Candles; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_4: + lightColor = LightColor_Candles; + lightRange = 12.0; + mixWeight = 1.0; + break; + #endif - #ifdef LPV_REDSTONE_LIGHTS - case BLOCK_COMPARATOR_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - #endif + case BLOCK_CAVE_VINE_BERRIES: + lightColor = vec3(0.651, 0.369, 0.157); + lightRange = 14.0; + mixWeight = 1.0; + break; - case BLOCK_COPPER_BULB_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 15.0; - break; - case BLOCK_COPPER_BULB_EXPOSED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 12.0; - break; - case BLOCK_COPPER_BULB_OXIDIZED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 4.0; - break; - case BLOCK_COPPER_BULB_WEATHERED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 8.0; - break; - case BLOCK_CONDUIT: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_CRYING_OBSIDIAN: - lightColor = vec3(0.390, 0.065, 0.646); - lightRange = 10.0; - break; - case BLOCK_END_GATEWAY: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_END_ROD: - lightColor = vec3(0.957, 0.929, 0.875); - lightRange = 14.0; - break; - case BLOCK_FIRE: - lightColor = vec3(0.864, 0.598, 0.348); - lightRange = 15.0; - mixWeight = 1.0; - break; - case BLOCK_FROGLIGHT_OCHRE: - lightColor = vec3(0.768, 0.648, 0.108); - lightRange = 15.0; - break; - case BLOCK_FROGLIGHT_PEARLESCENT: - lightColor = vec3(0.737, 0.435, 0.658); - lightRange = 15.0; - break; - case BLOCK_FROGLIGHT_VERDANT: - lightColor = vec3(0.463, 0.763, 0.409); - lightRange = 15.0; - break; - case BLOCK_FURNACE_LIT: - lightColor = vec3(0.8, 0.7, 0.1); - lightRange = 13.0; - break; - case BLOCK_GLOW_LICHEN: - lightColor = vec3(0.092, 0.217, 0.126); - lightRange = 7.0; - break; - case BLOCK_GLOWSTONE: - lightColor = vec3(0.747, 0.594, 0.326); - lightRange = 15.0; - break; - case BLOCK_JACK_O_LANTERN: - lightColor = vec3(0.864, 0.598, 0.348); - lightRange = 15.0; - break; - case BLOCK_LANTERN: - lightColor = vec3(0.839, 0.541, 0.2); - lightRange = 15.0; - mixWeight = 0.8; - break; - case BLOCK_LAVA: - lightColor = vec3(0.659, 0.302, 0.106); - lightRange = 15.0; - break; + #ifdef LPV_REDSTONE_LIGHTS + case BLOCK_COMPARATOR_LIT: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + #endif - case BLOCK_LIGHT_1: - lightColor = LightColor_LightBlock; - lightRange = 1; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_2: - lightColor = LightColor_LightBlock; - lightRange = 2; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_3: - lightColor = LightColor_LightBlock; - lightRange = 3; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_4: - lightColor = LightColor_LightBlock; - lightRange = 4; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_5: - lightColor = LightColor_LightBlock; - lightRange = 5; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_6: - lightColor = LightColor_LightBlock; - lightRange = 6; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_7: - lightColor = LightColor_LightBlock; - lightRange = 7; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_8: - lightColor = LightColor_LightBlock; - lightRange = 8; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_9: - lightColor = LightColor_LightBlock; - lightRange = 9; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_10: - lightColor = LightColor_LightBlock; - lightRange = 10; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_11: - lightColor = LightColor_LightBlock; - lightRange = 11; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_12: - lightColor = LightColor_LightBlock; - lightRange = 12; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_13: - lightColor = LightColor_LightBlock; - lightRange = 13; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_14: - lightColor = LightColor_LightBlock; - lightRange = 14; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_15: - lightColor = LightColor_LightBlock; - lightRange = 15; - mixWeight = 1.0; - break; + case BLOCK_COPPER_BULB_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 15.0; + break; + case BLOCK_COPPER_BULB_EXPOSED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 12.0; + break; + case BLOCK_COPPER_BULB_OXIDIZED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 4.0; + break; + case BLOCK_COPPER_BULB_WEATHERED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 8.0; + break; + case BLOCK_CONDUIT: + lightColor = vec3(1.0); + lightRange = 15.0; + break; + case BLOCK_CRYING_OBSIDIAN: + lightColor = vec3(0.390, 0.065, 0.646); + lightRange = 10.0; + break; + case BLOCK_END_GATEWAY: + lightColor = vec3(1.0); + lightRange = 15.0; + break; + case BLOCK_END_ROD: + lightColor = vec3(0.957, 0.929, 0.875); + lightRange = 14.0; + break; + case BLOCK_FIRE: + lightColor = vec3(0.864, 0.598, 0.348); + lightRange = 15.0; + mixWeight = 1.0; + break; + case BLOCK_FROGLIGHT_OCHRE: + lightColor = vec3(0.768, 0.648, 0.108); + lightRange = 15.0; + break; + case BLOCK_FROGLIGHT_PEARLESCENT: + lightColor = vec3(0.737, 0.435, 0.658); + lightRange = 15.0; + break; + case BLOCK_FROGLIGHT_VERDANT: + lightColor = vec3(0.463, 0.763, 0.409); + lightRange = 15.0; + break; + case BLOCK_FURNACE_LIT: + lightColor = vec3(0.8, 0.7, 0.1); + lightRange = 13.0; + break; + case BLOCK_GLOW_LICHEN: + lightColor = vec3(0.092, 0.217, 0.126); + lightRange = 7.0; + break; + case BLOCK_GLOWSTONE: + lightColor = vec3(0.747, 0.594, 0.326); + lightRange = 15.0; + break; + case BLOCK_JACK_O_LANTERN: + lightColor = vec3(0.864, 0.598, 0.348); + lightRange = 15.0; + break; + case BLOCK_LANTERN: + lightColor = vec3(0.839, 0.541, 0.2); + lightRange = 15.0; + mixWeight = 0.8; + break; + case BLOCK_LAVA: + lightColor = vec3(0.659, 0.302, 0.106); + lightRange = 15.0; + break; - case BLOCK_MAGMA: - lightColor = vec3(0.747, 0.323, 0.110); - lightRange = 3.0; - break; - case BLOCK_REDSTONE_LAMP_LIT: - lightColor = vec3(0.953, 0.796, 0.496); - lightRange = 15.0; - break; - case BLOCK_REDSTONE_TORCH_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.0; - break; + case BLOCK_LIGHT_1: + lightColor = LightColor_LightBlock; + lightRange = 1; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_2: + lightColor = LightColor_LightBlock; + lightRange = 2; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_3: + lightColor = LightColor_LightBlock; + lightRange = 3; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_4: + lightColor = LightColor_LightBlock; + lightRange = 4; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_5: + lightColor = LightColor_LightBlock; + lightRange = 5; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_6: + lightColor = LightColor_LightBlock; + lightRange = 6; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_7: + lightColor = LightColor_LightBlock; + lightRange = 7; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_8: + lightColor = LightColor_LightBlock; + lightRange = 8; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_9: + lightColor = LightColor_LightBlock; + lightRange = 9; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_10: + lightColor = LightColor_LightBlock; + lightRange = 10; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_11: + lightColor = LightColor_LightBlock; + lightRange = 11; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_12: + lightColor = LightColor_LightBlock; + lightRange = 12; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_13: + lightColor = LightColor_LightBlock; + lightRange = 13; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_14: + lightColor = LightColor_LightBlock; + lightRange = 14; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_15: + lightColor = LightColor_LightBlock; + lightRange = 15; + mixWeight = 1.0; + break; - #ifdef LPV_REDSTONE_LIGHTS - case BLOCK_REDSTONE_WIRE_1: - lightColor = LightColor_RedstoneTorch; - lightRange = 0.5; - break; - case BLOCK_REDSTONE_WIRE_2: - lightColor = LightColor_RedstoneTorch; - lightRange = 1.0; - break; - case BLOCK_REDSTONE_WIRE_3: - lightColor = LightColor_RedstoneTorch; - lightRange = 1.5; - break; - case BLOCK_REDSTONE_WIRE_4: - lightColor = LightColor_RedstoneTorch; - lightRange = 2.0; - break; - case BLOCK_REDSTONE_WIRE_5: - lightColor = LightColor_RedstoneTorch; - lightRange = 2.5; - break; - case BLOCK_REDSTONE_WIRE_6: - lightColor = LightColor_RedstoneTorch; - lightRange = 3.0; - break; - case BLOCK_REDSTONE_WIRE_7: - lightColor = LightColor_RedstoneTorch; - lightRange = 3.5; - break; - case BLOCK_REDSTONE_WIRE_8: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - case BLOCK_REDSTONE_WIRE_9: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.5; - break; - case BLOCK_REDSTONE_WIRE_10: - lightColor = LightColor_RedstoneTorch; - lightRange = 5.0; - break; - case BLOCK_REDSTONE_WIRE_11: - lightColor = LightColor_RedstoneTorch; - lightRange = 5.5; - break; - case BLOCK_REDSTONE_WIRE_12: - lightColor = LightColor_RedstoneTorch; - lightRange = 6.0; - break; - case BLOCK_REDSTONE_WIRE_13: - lightColor = LightColor_RedstoneTorch; - lightRange = 6.5; - break; - case BLOCK_REDSTONE_WIRE_14: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.0; - break; - case BLOCK_REDSTONE_WIRE_15: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.5; - break; + case BLOCK_MAGMA: + lightColor = vec3(0.747, 0.323, 0.110); + lightRange = 3.0; + break; + case BLOCK_REDSTONE_LAMP_LIT: + lightColor = vec3(0.953, 0.796, 0.496); + lightRange = 15.0; + break; + case BLOCK_REDSTONE_TORCH_LIT: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.0; + break; - case BLOCK_REPEATER_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - #endif + #ifdef LPV_REDSTONE_LIGHTS + case BLOCK_REDSTONE_WIRE_1: + lightColor = LightColor_RedstoneTorch; + lightRange = 0.5; + break; + case BLOCK_REDSTONE_WIRE_2: + lightColor = LightColor_RedstoneTorch; + lightRange = 1.0; + break; + case BLOCK_REDSTONE_WIRE_3: + lightColor = LightColor_RedstoneTorch; + lightRange = 1.5; + break; + case BLOCK_REDSTONE_WIRE_4: + lightColor = LightColor_RedstoneTorch; + lightRange = 2.0; + break; + case BLOCK_REDSTONE_WIRE_5: + lightColor = LightColor_RedstoneTorch; + lightRange = 2.5; + break; + case BLOCK_REDSTONE_WIRE_6: + lightColor = LightColor_RedstoneTorch; + lightRange = 3.0; + break; + case BLOCK_REDSTONE_WIRE_7: + lightColor = LightColor_RedstoneTorch; + lightRange = 3.5; + break; + case BLOCK_REDSTONE_WIRE_8: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + case BLOCK_REDSTONE_WIRE_9: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.5; + break; + case BLOCK_REDSTONE_WIRE_10: + lightColor = LightColor_RedstoneTorch; + lightRange = 5.0; + break; + case BLOCK_REDSTONE_WIRE_11: + lightColor = LightColor_RedstoneTorch; + lightRange = 5.5; + break; + case BLOCK_REDSTONE_WIRE_12: + lightColor = LightColor_RedstoneTorch; + lightRange = 6.0; + break; + case BLOCK_REDSTONE_WIRE_13: + lightColor = LightColor_RedstoneTorch; + lightRange = 6.5; + break; + case BLOCK_REDSTONE_WIRE_14: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.0; + break; + case BLOCK_REDSTONE_WIRE_15: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.5; + break; - case BLOCK_RESPAWN_ANCHOR_4: - lightColor = vec3(1.0, 0.2, 1.0); - lightRange = 15.0; - break; - case BLOCK_SCULK_SENSOR_ACTIVE: - lightColor = vec3(0.1, 0.4, 1.0); - lightRange = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_1: - lightColor = LightColor_SeaPickle; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_2: - lightColor = LightColor_SeaPickle; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_3: - lightColor = LightColor_SeaPickle; - lightRange = 12.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_4: - lightColor = LightColor_SeaPickle; - lightRange = 15.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_LANTERN: - lightColor = vec3(0.553, 0.748, 0.859); - lightRange = 15.0; - break; - case BLOCK_SHROOMLIGHT: - lightColor = vec3(0.848, 0.469, 0.205); - lightRange = 15.0; - break; - case BLOCK_SOUL_FIRE: - lightColor = vec3(0.1, 0.6, 1.0); - lightRange = 10.0; - mixWeight = 1.0; - break; - case BLOCK_SOUL_LANTERN: - case BLOCK_SOUL_TORCH: - lightColor = vec3(0.1, 0.6, 1.0); - lightRange = 10.0; - mixWeight = 0.8; - break; - case BLOCK_TORCH: - lightColor = vec3(1.0, 0.6, 0.1); - lightRange = 14.0; - mixWeight = 0.8; - break; + case BLOCK_REPEATER_LIT: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + #endif - // reflective translucents / glass + case BLOCK_RESPAWN_ANCHOR_4: + lightColor = vec3(1.0, 0.2, 1.0); + lightRange = 15.0; + break; + case BLOCK_SCULK_SENSOR_ACTIVE: + lightColor = vec3(0.1, 0.4, 1.0); + lightRange = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_1: + lightColor = LightColor_SeaPickle; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_2: + lightColor = LightColor_SeaPickle; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_3: + lightColor = LightColor_SeaPickle; + lightRange = 12.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_4: + lightColor = LightColor_SeaPickle; + lightRange = 15.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_LANTERN: + lightColor = vec3(0.553, 0.748, 0.859); + lightRange = 15.0; + break; + case BLOCK_SHROOMLIGHT: + lightColor = vec3(0.848, 0.469, 0.205); + lightRange = 15.0; + break; + case BLOCK_SOUL_FIRE: + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 1.0; + break; + case BLOCK_SOUL_LANTERN: + case BLOCK_SOUL_TORCH: + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 0.8; + break; + case BLOCK_TORCH: + lightColor = vec3(1.0, 0.6, 0.1); + lightRange = 14.0; + mixWeight = 0.8; + break; - case BLOCK_HONEY: - tintColor = vec3(0.984, 0.733, 0.251); - mixWeight = 1.0; - break; - case BLOCK_NETHER_PORTAL: - lightColor = vec3(0.502, 0.165, 0.831); - tintColor = vec3(0.502, 0.165, 0.831); - lightRange = 11.0; - mixWeight = 1.0; - break; - case BLOCK_SLIME: - tintColor = vec3(0.408, 0.725, 0.329); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BLACK: - tintColor = vec3(0.3); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BLUE: - tintColor = vec3(0.1, 0.1, 0.98); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BROWN: - tintColor = vec3(0.566, 0.388, 0.148); - mixWeight = 1.0; - break; - case BLOCK_GLASS_CYAN: - tintColor = vec3(0.082, 0.533, 0.763); - mixWeight = 1.0; - break; - case BLOCK_GLASS_GRAY: - tintColor = vec3(0.4, 0.4, 0.4); - mixWeight = 1.0; - break; - case BLOCK_GLASS_GREEN: - tintColor = vec3(0.125, 0.808, 0.081); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIGHT_BLUE: - tintColor = vec3(0.320, 0.685, 0.955); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIGHT_GRAY: - tintColor = vec3(0.7); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIME: - tintColor = vec3(0.633, 0.924, 0.124); - mixWeight = 1.0; - break; - case BLOCK_GLASS_MAGENTA: - tintColor = vec3(0.698, 0.298, 0.847); - mixWeight = 1.0; - break; - case BLOCK_GLASS_ORANGE: - tintColor = vec3(0.919, 0.586, 0.185); - mixWeight = 1.0; - break; - case BLOCK_GLASS_PINK: - tintColor = vec3(0.949, 0.274, 0.497); - mixWeight = 1.0; - break; - case BLOCK_GLASS_PURPLE: - tintColor = vec3(0.578, 0.170, 0.904); - mixWeight = 1.0; - break; - case BLOCK_GLASS_RED: - tintColor = vec3(0.999, 0.188, 0.188); - mixWeight = 1.0; - break; - case BLOCK_GLASS_WHITE: - tintColor = vec3(0.96, 0.96, 0.96); - mixWeight = 1.0; - break; - case BLOCK_GLASS_YELLOW: - tintColor = vec3(0.965, 0.965, 0.123); - mixWeight = 1.0; - break; + // reflective translucents / glass - // LPV shapes + case BLOCK_HONEY: + tintColor = vec3(0.984, 0.733, 0.251); + mixWeight = 1.0; + break; + case BLOCK_NETHER_PORTAL: + lightColor = vec3(0.502, 0.165, 0.831); + tintColor = vec3(0.502, 0.165, 0.831); + lightRange = 11.0; + mixWeight = 1.0; + break; + case BLOCK_SLIME: + tintColor = vec3(0.408, 0.725, 0.329); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BLACK: + tintColor = vec3(0.3); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BLUE: + tintColor = vec3(0.1, 0.1, 0.98); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BROWN: + tintColor = vec3(0.566, 0.388, 0.148); + mixWeight = 1.0; + break; + case BLOCK_GLASS_CYAN: + tintColor = vec3(0.082, 0.533, 0.763); + mixWeight = 1.0; + break; + case BLOCK_GLASS_GRAY: + tintColor = vec3(0.4, 0.4, 0.4); + mixWeight = 1.0; + break; + case BLOCK_GLASS_GREEN: + tintColor = vec3(0.125, 0.808, 0.081); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIGHT_BLUE: + tintColor = vec3(0.320, 0.685, 0.955); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIGHT_GRAY: + tintColor = vec3(0.7); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIME: + tintColor = vec3(0.633, 0.924, 0.124); + mixWeight = 1.0; + break; + case BLOCK_GLASS_MAGENTA: + tintColor = vec3(0.698, 0.298, 0.847); + mixWeight = 1.0; + break; + case BLOCK_GLASS_ORANGE: + tintColor = vec3(0.919, 0.586, 0.185); + mixWeight = 1.0; + break; + case BLOCK_GLASS_PINK: + tintColor = vec3(0.949, 0.274, 0.497); + mixWeight = 1.0; + break; + case BLOCK_GLASS_PURPLE: + tintColor = vec3(0.578, 0.170, 0.904); + mixWeight = 1.0; + break; + case BLOCK_GLASS_RED: + tintColor = vec3(0.999, 0.188, 0.188); + mixWeight = 1.0; + break; + case BLOCK_GLASS_WHITE: + tintColor = vec3(0.96, 0.96, 0.96); + mixWeight = 1.0; + break; + case BLOCK_GLASS_YELLOW: + tintColor = vec3(0.965, 0.965, 0.123); + mixWeight = 1.0; + break; - case BLOCK_LPV_IGNORE: - mixWeight = 1.0; - break; + // LPV shapes - case BLOCK_CARPET: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.9; - break; + case BLOCK_LPV_IGNORE: + mixWeight = 1.0; + break; - case BLOCK_DOOR_N: - mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_E: - mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_S: - mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_W: - mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); - mixWeight = 0.8; - break; + case BLOCK_CARPET: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.9; + break; - case BLOCK_FENCE: - case BLOCK_FENCE_GATE: - mixWeight = 0.7; - break; - case BLOCK_FLOWER_POT: - mixWeight = 0.7; - break; - case BLOCK_IRON_BARS: - mixWeight = 0.6; - break; - case BLOCK_PRESSURE_PLATE: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.9; - break; + case BLOCK_DOOR_N: + mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_E: + mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_S: + mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_W: + mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); + mixWeight = 0.8; + break; - case BLOCK_SLAB_TOP: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); - mixWeight = 0.5; - break; - case BLOCK_SLAB_BOTTOM: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.5; - break; + case BLOCK_FENCE: + case BLOCK_FENCE_GATE: + mixWeight = 0.7; + break; + case BLOCK_FLOWER_POT: + mixWeight = 0.7; + break; + case BLOCK_IRON_BARS: + mixWeight = 0.6; + break; + case BLOCK_PRESSURE_PLATE: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.9; + break; - case BLOCK_TRAPDOOR_BOTTOM: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_TOP: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_N: - mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_E: - mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_S: - mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_W: - mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); - mixWeight = 0.8; - break; + case BLOCK_SLAB_TOP: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); + mixWeight = 0.5; + break; + case BLOCK_SLAB_BOTTOM: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.5; + break; - // Misc + case BLOCK_TRAPDOOR_BOTTOM: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_TOP: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_N: + mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_E: + mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_S: + mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_W: + mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); + mixWeight = 0.8; + break; - case BLOCK_SIGN: - mixWeight = 0.9; - break; + // Misc + + case BLOCK_SIGN: + mixWeight = 0.9; + break; + } + } + + if (blockId >= 1000) { + // ITEMS + + switch (blockId) { + // TODO + case 1001: // torch + lightColor = vec3(1.0, 0.6, 0.1); + lightRange = 14.0; + mixWeight = 0.8; + break; + case 1002: // soul torch + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 0.8; + break; + } } // hack to increase light (if set) if (lightRange > 0.0) lightRange += 1.0; - LpvBlockData block; - block.ColorRange = packUnorm4x8(vec4(lightColor, lightRange/255.0)); - block.MaskWeight = BuildBlockLpvData(mixMask, mixWeight); - block.Tint = packUnorm4x8(vec4(tintColor, 0.0)); - LpvBlockMap[blockId] = block; + // lazy fix for migrating from mixWeight to tintColor + tintColor *= mixWeight; + + uint lightColorRange = packUnorm4x8(vec4(lightColor, lightRange/255.0)); + uint tintColorMask = packUnorm4x8(vec4(tintColor, 0.0)); + + tintColorMask |= mixMask << 24; + + imageStore(imgBlockData, blockId, uvec4(lightColorRange, tintColorMask, 0u, 0u)); #endif } diff --git a/shaders/dimensions/shadowcomp.csh b/shaders/dimensions/shadowcomp.csh index 043449c..bf4e615 100644 --- a/shaders/dimensions/shadowcomp.csh +++ b/shaders/dimensions/shadowcomp.csh @@ -17,9 +17,6 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; const vec2 LpvBlockSkyFalloff = vec2(0.96, 0.96); const ivec3 lpvFlatten = ivec3(1, 10, 100); - #define EPSILON 1e-6 - - uniform int frameCounter; uniform vec3 cameraPosition; uniform vec3 previousCameraPosition; @@ -61,13 +58,15 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; int shared_index = getSharedIndex(pos + 1); float mixWeight = 1.0; - uint mixMask = 0xFFFF; + uint mask = 0xFFFF; uint blockId = voxelSharedData[shared_index]; - if (blockId > 0 && blockId != BLOCK_EMPTY) - ParseBlockLpvData(LpvBlockMap[blockId].MaskWeight, mixMask, mixWeight); + if (blockId > 0 && blockId != BLOCK_EMPTY) { + uvec2 blockData = imageLoad(imgBlockData, int(blockId)).rg; + mask = (blockData.g >> 24) & 0xFFFF; + } - return lpvSharedData[shared_index] * ((mixMask >> mask_index) & 1u);// * mixWeight; + return lpvSharedData[shared_index] * ((mask >> mask_index) & 1u); } vec4 mixNeighbours(const in ivec3 fragCoord, const in uint mask) { @@ -122,29 +121,30 @@ void main() { uint blockId = voxelSharedData[getSharedIndex(ivec3(gl_LocalInvocationID) + 1)]; vec4 lightValue = vec4(0.0); vec3 tintColor = vec3(1.0); - float mixWeight = 1.0; uint mixMask = 0xFFFF; if (blockId > 0u) { - mixWeight = 0.0; - ParseBlockLpvData(LpvBlockMap[blockId].MaskWeight, mixMask, mixWeight); + tintColor = vec3(0.0); - uint tintData = LpvBlockMap[blockId].Tint; - tintColor = unpackUnorm4x8(tintData).rgb; - vec4 lightColorRange = unpackUnorm4x8(LpvBlockMap[blockId].ColorRange); + uvec2 blockData = imageLoad(imgBlockData, int(blockId)).rg; + vec4 lightColorRange = unpackUnorm4x8(blockData.r); + vec4 tintColorMask = unpackUnorm4x8(blockData.g); + tintColor = srgbToLinear(tintColorMask.rgb); + mixMask = (blockData.g >> 24) & 0xFFFF; + + vec3 lightColor = srgbToLinear(lightColorRange.rgb); float lightRange = lightColorRange.a * 255.0; - if (lightRange > EPSILON) { - vec3 lightColor = srgbToLinear(lightColorRange.rgb); + if (lightRange > 0.0) { lightValue.rgb = Lpv_RgbToHsv(lightColor, lightRange); lightValue.ba = exp2(lightValue.ba * LpvBlockSkyRange) - 1.0; lightValue.rgb = HsvToRgb(lightValue.rgb); } } - if (mixWeight > EPSILON) { + if (any(greaterThan(tintColor, vec3(0.0)))) { vec4 lightMixed = mixNeighbours(ivec3(gl_LocalInvocationID), mixMask); - lightMixed.rgb *= srgbToLinear(tintColor) * mixWeight; + lightMixed.rgb *= tintColor; lightValue += lightMixed; } diff --git a/shaders/item.properties b/shaders/item.properties index 76c1378..994d1fb 100644 --- a/shaders/item.properties +++ b/shaders/item.properties @@ -1 +1,4 @@ -item.1000 = glow_berries soul_lantern soul_torch conduit beacon sea_pickle sea_lantern glowstone torch redstone_torch jack_o_lantern magma_block lantern shroomlight end_rod lava_bucket conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:conquest:iron_candelabrum_1 conquest:conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light +item.1000 = glow_berries soul_lantern conduit beacon sea_pickle sea_lantern glowstone redstone_torch jack_o_lantern magma_block lantern shroomlight end_rod lava_bucket conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:conquest:iron_candelabrum_1 conquest:conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light + +item.1001 = torch +item.1002 = soul_torch diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index 53b9a7a..6e3da92 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -1,15 +1,26 @@ #ifdef IS_LPV_ENABLED - vec3 GetHandLight(const in int itemId) { - if (itemId < 1000) { - // TODO: block lights - } - else { - // TODO: item lights + vec3 GetHandLight(const in int itemId, const in vec3 playerPos) { + vec3 lightFinal = vec3(0.0); + vec3 lightColor = vec3(0.0); + float lightRange = 0.0; + + uvec2 blockData = texelFetch(texBlockData, itemId, 0).rg; + vec4 lightColorRange = unpackUnorm4x8(blockData.r); + lightColor = srgbToLinear(lightColorRange.rgb); + lightRange = lightColorRange.a * 255.0; + + if (lightRange > 0.0) { + float lightDist = length(playerPos); + float falloff = pow(1.0 - lightDist / lightRange, 3.0); + lightFinal = lightColor * max(falloff, 0.0); } + + return lightFinal; } #endif vec3 DoAmbientLightColor( + vec3 playerPos, vec3 lpvPos, vec3 SkyColor, vec3 MinimumColor, @@ -45,10 +56,10 @@ vec3 DoAmbientLightColor( TorchLight = mix(TorchLight,LpvTorchLight/5.0, LpvFadeF); if (heldItemId > 0) - TorchLight += GetHandLight(heldItemId); + TorchLight += GetHandLight(heldItemId, playerPos); if (heldItemId2 > 0) - TorchLight += GetHandLight(heldItemId2); + TorchLight += GetHandLight(heldItemId2, playerPos); #endif return IndirectLight + TorchLight * TorchBrightness_autoAdjust; diff --git a/shaders/lib/lpv_blocks.glsl b/shaders/lib/lpv_blocks.glsl index daa9577..954fd73 100644 --- a/shaders/lib/lpv_blocks.glsl +++ b/shaders/lib/lpv_blocks.glsl @@ -1,28 +1,12 @@ -struct LpvBlockData { // 12 x2000 =? - uint MaskWeight; // 4 - uint ColorRange; // 4 - uint Tint; // 4 -}; +/* + lightColor 3*8=24 + lightRange 8=8 + tintColor 3*8=24 + lightMask 6=8 +*/ #ifdef RENDER_SETUP - layout(binding = 0) writeonly buffer lpvBlockData + layout(rg32ui) uniform writeonly uimage1D imgBlockData; #else - layout(binding = 0) readonly buffer lpvBlockData + layout(rg32ui) uniform readonly uimage1D imgBlockData; #endif -{ - LpvBlockData LpvBlockMap[]; -}; - - -uint BuildBlockLpvData(uint mixMask, float mixWeight) { - uint data = uint(saturate(mixWeight) * 255.0); - - data = data | (mixMask << 8); - - return data; -} - -void ParseBlockLpvData(const in uint data, out uint mixMask, out float mixWeight) { - mixWeight = (data & 0xFF) / 255.0; - mixMask = (data >> 8) & 0xFF; -} diff --git a/shaders/shaders.properties b/shaders/shaders.properties index f43de0f..02b5194 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -8,7 +8,7 @@ separateAo = true rain.depth = false beacon.beam.depth = true -iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES SSBO +iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES #if RESOURCEPACK_SKY == 2 sun=true @@ -554,9 +554,8 @@ uniform.float.shadowMaxProj = 150.0/abs(sunPosY) ####### FLOODFILL STUFF ####### ############################### -# if defined LPV_ENABLED && defined IRIS_FEATURE_CUSTOM_IMAGES #ifdef LPV_ENABLED - bufferObject.0=32000 + image.imgBlockData = texBlockData RG_INTEGER RG32UI UNSIGNED_INT false false 2048 #if LPV_SIZE == 8 image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 256 256 256 From 0c88744e8d3bef41cc3fc0d0565d6f8e073e0983 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Tue, 7 May 2024 10:27:37 -0400 Subject: [PATCH 10/12] item lights --- shaders/dimensions/setup.csh | 1846 +++++++++++++++-------------- shaders/item.properties | 54 +- shaders/lib/diffuse_lighting.glsl | 12 +- shaders/lib/items.glsl | 24 + shaders/template/item.properties | 77 ++ 5 files changed, 1098 insertions(+), 915 deletions(-) create mode 100644 shaders/template/item.properties diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index 4304ea2..4595e25 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -4,6 +4,8 @@ const ivec3 workGroups = ivec3(6, 6, 1); #ifdef IS_LPV_ENABLED #include "/lib/blocks.glsl" + #include "/lib/items.glsl" + // #include "/lib/entities.glsl" #include "/lib/lpv_blocks.glsl" const vec3 LightColor_Amethyst = vec3(0.464, 0.227, 0.788); @@ -49,923 +51,951 @@ void main() { uint mixMask = 0xFFFF; vec3 tintColor = vec3(1.0); - if (blockId < 1000) { - // BLOCKS + switch (blockId) { + case BLOCK_WATER: + mixWeight = 0.8; + break; - switch (blockId) { - case BLOCK_WATER: - mixWeight = 0.8; - break; + case BLOCK_BAMBOO: + mixWeight = 0.8; + break; - case BLOCK_BAMBOO: - mixWeight = 0.8; - break; + case BLOCK_GRASS_SHORT: + case BLOCK_GRASS_TALL_UPPER: + case BLOCK_GRASS_TALL_LOWER: + mixWeight = 0.85; + break; - case BLOCK_GRASS_SHORT: - case BLOCK_GRASS_TALL_UPPER: - case BLOCK_GRASS_TALL_LOWER: - mixWeight = 0.85; - break; + case BLOCK_GROUND_WAVING: + case BLOCK_GROUND_WAVING_VERTICAL: + case BLOCK_AIR_WAVING: + mixWeight = 0.9; + break; - case BLOCK_GROUND_WAVING: - case BLOCK_GROUND_WAVING_VERTICAL: - case BLOCK_AIR_WAVING: - mixWeight = 0.9; - break; - - case BLOCK_SAPLING: - mixWeight = 0.9; - break; - - // lightsources - - case BLOCK_AMETHYST_BUD_LARGE: - lightColor = LightColor_Amethyst; - lightRange = 4.0; - mixWeight = 0.6; - break; - case BLOCK_AMETHYST_BUD_MEDIUM: - lightColor = LightColor_Amethyst; - lightRange = 2.0; - mixWeight = 0.8; - break; - case BLOCK_AMETHYST_CLUSTER: - lightColor = LightColor_Amethyst; - lightRange = 5.0; - mixWeight = 0.4; - break; - case BLOCK_BEACON: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_BREWING_STAND: - lightColor = vec3(0.636, 0.509, 0.179); - lightRange = 1.0; - mixWeight = 0.8; - break; - - #ifdef LPV_COLORED_CANDLES - case BLOCK_CANDLES_PLAIN_LIT_1: - lightColor = LightColor_Candles; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_2: - lightColor = LightColor_Candles; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_3: - lightColor = LightColor_Candles; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_4: - lightColor = LightColor_Candles; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_BLACK_LIT_1: - lightColor = LightColor_Candles_Black; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_2: - lightColor = LightColor_Candles_Black; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_3: - lightColor = LightColor_Candles_Black; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_4: - lightColor = LightColor_Candles_Black; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_BLUE_LIT_1: - lightColor = LightColor_Candles_Blue; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_2: - lightColor = LightColor_Candles_Blue; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_3: - lightColor = LightColor_Candles_Blue; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_4: - lightColor = LightColor_Candles_Blue; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_BROWN_LIT_1: - lightColor = LightColor_Candles_Brown; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_2: - lightColor = LightColor_Candles_Brown; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_3: - lightColor = LightColor_Candles_Brown; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_4: - lightColor = LightColor_Candles_Brown; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_CYAN_LIT_1: - lightColor = LightColor_Candles_Cyan; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_2: - lightColor = LightColor_Candles_Cyan; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_3: - lightColor = LightColor_Candles_Cyan; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_4: - lightColor = LightColor_Candles_Cyan; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_GRAY_LIT_1: - lightColor = LightColor_Candles_Gray; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_2: - lightColor = LightColor_Candles_Gray; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_3: - lightColor = LightColor_Candles_Gray; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_4: - lightColor = LightColor_Candles_Gray; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_GREEN_LIT_1: - lightColor = LightColor_Candles_Green; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_2: - lightColor = LightColor_Candles_Green; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_3: - lightColor = LightColor_Candles_Green; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_4: - lightColor = LightColor_Candles_Green; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_LIGHT_BLUE_LIT_1: - lightColor = LightColor_Candles_LightBlue; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_2: - lightColor = LightColor_Candles_LightBlue; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_3: - lightColor = LightColor_Candles_LightBlue; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_4: - lightColor = LightColor_Candles_LightBlue; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_LIGHT_GRAY_LIT_1: - lightColor = LightColor_Candles_LightGray; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_2: - lightColor = LightColor_Candles_LightGray; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_3: - lightColor = LightColor_Candles_LightGray; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_4: - lightColor = LightColor_Candles_LightGray; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_LIME_LIT_1: - lightColor = LightColor_Candles_Lime; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_2: - lightColor = LightColor_Candles_Lime; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_3: - lightColor = LightColor_Candles_Lime; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_4: - lightColor = LightColor_Candles_Lime; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_MAGENTA_LIT_1: - lightColor = LightColor_Candles_Magenta; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_2: - lightColor = LightColor_Candles_Magenta; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_3: - lightColor = LightColor_Candles_Magenta; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_4: - lightColor = LightColor_Candles_Magenta; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_ORANGE_LIT_1: - lightColor = LightColor_Candles_Orange; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_2: - lightColor = LightColor_Candles_Orange; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_3: - lightColor = LightColor_Candles_Orange; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_4: - lightColor = LightColor_Candles_Orange; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_PINK_LIT_1: - lightColor = LightColor_Candles_Pink; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_2: - lightColor = LightColor_Candles_Pink; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_3: - lightColor = LightColor_Candles_Pink; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_4: - lightColor = LightColor_Candles_Pink; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_PURPLE_LIT_1: - lightColor = LightColor_Candles_Purple; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_2: - lightColor = LightColor_Candles_Purple; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_3: - lightColor = LightColor_Candles_Purple; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_4: - lightColor = LightColor_Candles_Purple; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_RED_LIT_1: - lightColor = LightColor_Candles_Red; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_2: - lightColor = LightColor_Candles_Red; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_3: - lightColor = LightColor_Candles_Red; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_4: - lightColor = LightColor_Candles_Red; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_WHITE_LIT_1: - lightColor = LightColor_Candles_White; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_2: - lightColor = LightColor_Candles_White; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_3: - lightColor = LightColor_Candles_White; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_4: - lightColor = LightColor_Candles_White; - lightRange = 12.0; - mixWeight = 1.0; - break; - - case BLOCK_CANDLES_YELLOW_LIT_1: - lightColor = LightColor_Candles_Yellow; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_2: - lightColor = LightColor_Candles_Yellow; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_3: - lightColor = LightColor_Candles_Yellow; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_4: - lightColor = LightColor_Candles_Yellow; - lightRange = 12.0; - mixWeight = 1.0; - break; - #else - case BLOCK_CANDLES_LIT_1: - lightColor = LightColor_Candles; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_2: - lightColor = LightColor_Candles; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_3: - lightColor = LightColor_Candles; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_4: - lightColor = LightColor_Candles; - lightRange = 12.0; - mixWeight = 1.0; - break; - #endif - - case BLOCK_CAVE_VINE_BERRIES: - lightColor = vec3(0.651, 0.369, 0.157); - lightRange = 14.0; - mixWeight = 1.0; - break; - - #ifdef LPV_REDSTONE_LIGHTS - case BLOCK_COMPARATOR_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - #endif - - case BLOCK_COPPER_BULB_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 15.0; - break; - case BLOCK_COPPER_BULB_EXPOSED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 12.0; - break; - case BLOCK_COPPER_BULB_OXIDIZED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 4.0; - break; - case BLOCK_COPPER_BULB_WEATHERED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 8.0; - break; - case BLOCK_CONDUIT: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_CRYING_OBSIDIAN: - lightColor = vec3(0.390, 0.065, 0.646); - lightRange = 10.0; - break; - case BLOCK_END_GATEWAY: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_END_ROD: - lightColor = vec3(0.957, 0.929, 0.875); - lightRange = 14.0; - break; - case BLOCK_FIRE: - lightColor = vec3(0.864, 0.598, 0.348); - lightRange = 15.0; - mixWeight = 1.0; - break; - case BLOCK_FROGLIGHT_OCHRE: - lightColor = vec3(0.768, 0.648, 0.108); - lightRange = 15.0; - break; - case BLOCK_FROGLIGHT_PEARLESCENT: - lightColor = vec3(0.737, 0.435, 0.658); - lightRange = 15.0; - break; - case BLOCK_FROGLIGHT_VERDANT: - lightColor = vec3(0.463, 0.763, 0.409); - lightRange = 15.0; - break; - case BLOCK_FURNACE_LIT: - lightColor = vec3(0.8, 0.7, 0.1); - lightRange = 13.0; - break; - case BLOCK_GLOW_LICHEN: - lightColor = vec3(0.092, 0.217, 0.126); - lightRange = 7.0; - break; - case BLOCK_GLOWSTONE: - lightColor = vec3(0.747, 0.594, 0.326); - lightRange = 15.0; - break; - case BLOCK_JACK_O_LANTERN: - lightColor = vec3(0.864, 0.598, 0.348); - lightRange = 15.0; - break; - case BLOCK_LANTERN: - lightColor = vec3(0.839, 0.541, 0.2); - lightRange = 15.0; - mixWeight = 0.8; - break; - case BLOCK_LAVA: - lightColor = vec3(0.659, 0.302, 0.106); - lightRange = 15.0; - break; - - case BLOCK_LIGHT_1: - lightColor = LightColor_LightBlock; - lightRange = 1; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_2: - lightColor = LightColor_LightBlock; - lightRange = 2; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_3: - lightColor = LightColor_LightBlock; - lightRange = 3; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_4: - lightColor = LightColor_LightBlock; - lightRange = 4; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_5: - lightColor = LightColor_LightBlock; - lightRange = 5; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_6: - lightColor = LightColor_LightBlock; - lightRange = 6; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_7: - lightColor = LightColor_LightBlock; - lightRange = 7; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_8: - lightColor = LightColor_LightBlock; - lightRange = 8; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_9: - lightColor = LightColor_LightBlock; - lightRange = 9; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_10: - lightColor = LightColor_LightBlock; - lightRange = 10; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_11: - lightColor = LightColor_LightBlock; - lightRange = 11; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_12: - lightColor = LightColor_LightBlock; - lightRange = 12; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_13: - lightColor = LightColor_LightBlock; - lightRange = 13; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_14: - lightColor = LightColor_LightBlock; - lightRange = 14; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_15: - lightColor = LightColor_LightBlock; - lightRange = 15; - mixWeight = 1.0; - break; - - case BLOCK_MAGMA: - lightColor = vec3(0.747, 0.323, 0.110); - lightRange = 3.0; - break; - case BLOCK_REDSTONE_LAMP_LIT: - lightColor = vec3(0.953, 0.796, 0.496); - lightRange = 15.0; - break; - case BLOCK_REDSTONE_TORCH_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.0; - break; - - #ifdef LPV_REDSTONE_LIGHTS - case BLOCK_REDSTONE_WIRE_1: - lightColor = LightColor_RedstoneTorch; - lightRange = 0.5; - break; - case BLOCK_REDSTONE_WIRE_2: - lightColor = LightColor_RedstoneTorch; - lightRange = 1.0; - break; - case BLOCK_REDSTONE_WIRE_3: - lightColor = LightColor_RedstoneTorch; - lightRange = 1.5; - break; - case BLOCK_REDSTONE_WIRE_4: - lightColor = LightColor_RedstoneTorch; - lightRange = 2.0; - break; - case BLOCK_REDSTONE_WIRE_5: - lightColor = LightColor_RedstoneTorch; - lightRange = 2.5; - break; - case BLOCK_REDSTONE_WIRE_6: - lightColor = LightColor_RedstoneTorch; - lightRange = 3.0; - break; - case BLOCK_REDSTONE_WIRE_7: - lightColor = LightColor_RedstoneTorch; - lightRange = 3.5; - break; - case BLOCK_REDSTONE_WIRE_8: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - case BLOCK_REDSTONE_WIRE_9: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.5; - break; - case BLOCK_REDSTONE_WIRE_10: - lightColor = LightColor_RedstoneTorch; - lightRange = 5.0; - break; - case BLOCK_REDSTONE_WIRE_11: - lightColor = LightColor_RedstoneTorch; - lightRange = 5.5; - break; - case BLOCK_REDSTONE_WIRE_12: - lightColor = LightColor_RedstoneTorch; - lightRange = 6.0; - break; - case BLOCK_REDSTONE_WIRE_13: - lightColor = LightColor_RedstoneTorch; - lightRange = 6.5; - break; - case BLOCK_REDSTONE_WIRE_14: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.0; - break; - case BLOCK_REDSTONE_WIRE_15: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.5; - break; - - case BLOCK_REPEATER_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - #endif - - case BLOCK_RESPAWN_ANCHOR_4: - lightColor = vec3(1.0, 0.2, 1.0); - lightRange = 15.0; - break; - case BLOCK_SCULK_SENSOR_ACTIVE: - lightColor = vec3(0.1, 0.4, 1.0); - lightRange = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_1: - lightColor = LightColor_SeaPickle; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_2: - lightColor = LightColor_SeaPickle; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_3: - lightColor = LightColor_SeaPickle; - lightRange = 12.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_4: - lightColor = LightColor_SeaPickle; - lightRange = 15.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_LANTERN: - lightColor = vec3(0.553, 0.748, 0.859); - lightRange = 15.0; - break; - case BLOCK_SHROOMLIGHT: - lightColor = vec3(0.848, 0.469, 0.205); - lightRange = 15.0; - break; - case BLOCK_SOUL_FIRE: - lightColor = vec3(0.1, 0.6, 1.0); - lightRange = 10.0; - mixWeight = 1.0; - break; - case BLOCK_SOUL_LANTERN: - case BLOCK_SOUL_TORCH: - lightColor = vec3(0.1, 0.6, 1.0); - lightRange = 10.0; - mixWeight = 0.8; - break; - case BLOCK_TORCH: - lightColor = vec3(1.0, 0.6, 0.1); - lightRange = 14.0; - mixWeight = 0.8; - break; - - // reflective translucents / glass - - case BLOCK_HONEY: - tintColor = vec3(0.984, 0.733, 0.251); - mixWeight = 1.0; - break; - case BLOCK_NETHER_PORTAL: - lightColor = vec3(0.502, 0.165, 0.831); - tintColor = vec3(0.502, 0.165, 0.831); - lightRange = 11.0; - mixWeight = 1.0; - break; - case BLOCK_SLIME: - tintColor = vec3(0.408, 0.725, 0.329); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BLACK: - tintColor = vec3(0.3); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BLUE: - tintColor = vec3(0.1, 0.1, 0.98); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BROWN: - tintColor = vec3(0.566, 0.388, 0.148); - mixWeight = 1.0; - break; - case BLOCK_GLASS_CYAN: - tintColor = vec3(0.082, 0.533, 0.763); - mixWeight = 1.0; - break; - case BLOCK_GLASS_GRAY: - tintColor = vec3(0.4, 0.4, 0.4); - mixWeight = 1.0; - break; - case BLOCK_GLASS_GREEN: - tintColor = vec3(0.125, 0.808, 0.081); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIGHT_BLUE: - tintColor = vec3(0.320, 0.685, 0.955); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIGHT_GRAY: - tintColor = vec3(0.7); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIME: - tintColor = vec3(0.633, 0.924, 0.124); - mixWeight = 1.0; - break; - case BLOCK_GLASS_MAGENTA: - tintColor = vec3(0.698, 0.298, 0.847); - mixWeight = 1.0; - break; - case BLOCK_GLASS_ORANGE: - tintColor = vec3(0.919, 0.586, 0.185); - mixWeight = 1.0; - break; - case BLOCK_GLASS_PINK: - tintColor = vec3(0.949, 0.274, 0.497); - mixWeight = 1.0; - break; - case BLOCK_GLASS_PURPLE: - tintColor = vec3(0.578, 0.170, 0.904); - mixWeight = 1.0; - break; - case BLOCK_GLASS_RED: - tintColor = vec3(0.999, 0.188, 0.188); - mixWeight = 1.0; - break; - case BLOCK_GLASS_WHITE: - tintColor = vec3(0.96, 0.96, 0.96); - mixWeight = 1.0; - break; - case BLOCK_GLASS_YELLOW: - tintColor = vec3(0.965, 0.965, 0.123); - mixWeight = 1.0; - break; - - // LPV shapes - - case BLOCK_LPV_IGNORE: - mixWeight = 1.0; - break; - - case BLOCK_CARPET: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.9; - break; - - case BLOCK_DOOR_N: - mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_E: - mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_S: - mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_W: - mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); - mixWeight = 0.8; - break; - - case BLOCK_FENCE: - case BLOCK_FENCE_GATE: - mixWeight = 0.7; - break; - case BLOCK_FLOWER_POT: - mixWeight = 0.7; - break; - case BLOCK_IRON_BARS: - mixWeight = 0.6; - break; - case BLOCK_PRESSURE_PLATE: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.9; - break; - - case BLOCK_SLAB_TOP: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); - mixWeight = 0.5; - break; - case BLOCK_SLAB_BOTTOM: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.5; - break; - - case BLOCK_TRAPDOOR_BOTTOM: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_TOP: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_N: - mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_E: - mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_S: - mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_W: - mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); - mixWeight = 0.8; - break; - - // Misc - - case BLOCK_SIGN: - mixWeight = 0.9; - break; - } + case BLOCK_SAPLING: + mixWeight = 0.9; + break; } - if (blockId >= 1000) { - // ITEMS + // lightsources - switch (blockId) { - // TODO - case 1001: // torch - lightColor = vec3(1.0, 0.6, 0.1); - lightRange = 14.0; - mixWeight = 0.8; - break; - case 1002: // soul torch - lightColor = vec3(0.1, 0.6, 1.0); - lightRange = 10.0; - mixWeight = 0.8; - break; - } + if (blockId == BLOCK_AMETHYST_BUD_LARGE || blockId == ITEM_AMETHYST_BUD_LARGE) { + lightColor = LightColor_Amethyst; + lightRange = 4.0; + mixWeight = 0.6; } + if (blockId == BLOCK_AMETHYST_BUD_MEDIUM || blockId == ITEM_AMETHYST_BUD_MEDIUM) { + lightColor = LightColor_Amethyst; + lightRange = 2.0; + mixWeight = 0.8; + } + + if (blockId == BLOCK_AMETHYST_CLUSTER || blockId == ITEM_AMETHYST_CLUSTER) { + lightColor = LightColor_Amethyst; + lightRange = 5.0; + mixWeight = 0.4; + } + + if (blockId == BLOCK_BEACON || blockId == ITEM_BEACON) { + lightColor = vec3(1.0); + lightRange = 15.0; + } + + if (blockId == BLOCK_BREWING_STAND) { + lightColor = vec3(0.636, 0.509, 0.179); + lightRange = 1.0; + mixWeight = 0.8; + } + + switch (blockId) { + #ifdef LPV_COLORED_CANDLES + case BLOCK_CANDLES_PLAIN_LIT_1: + lightColor = LightColor_Candles; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_2: + lightColor = LightColor_Candles; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_3: + lightColor = LightColor_Candles; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_4: + lightColor = LightColor_Candles; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_BLACK_LIT_1: + lightColor = LightColor_Candles_Black; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_2: + lightColor = LightColor_Candles_Black; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_3: + lightColor = LightColor_Candles_Black; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_4: + lightColor = LightColor_Candles_Black; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_BLUE_LIT_1: + lightColor = LightColor_Candles_Blue; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_2: + lightColor = LightColor_Candles_Blue; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_3: + lightColor = LightColor_Candles_Blue; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_4: + lightColor = LightColor_Candles_Blue; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_BROWN_LIT_1: + lightColor = LightColor_Candles_Brown; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_2: + lightColor = LightColor_Candles_Brown; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_3: + lightColor = LightColor_Candles_Brown; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_4: + lightColor = LightColor_Candles_Brown; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_CYAN_LIT_1: + lightColor = LightColor_Candles_Cyan; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_2: + lightColor = LightColor_Candles_Cyan; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_3: + lightColor = LightColor_Candles_Cyan; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_4: + lightColor = LightColor_Candles_Cyan; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_GRAY_LIT_1: + lightColor = LightColor_Candles_Gray; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_2: + lightColor = LightColor_Candles_Gray; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_3: + lightColor = LightColor_Candles_Gray; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_4: + lightColor = LightColor_Candles_Gray; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_GREEN_LIT_1: + lightColor = LightColor_Candles_Green; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_2: + lightColor = LightColor_Candles_Green; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_3: + lightColor = LightColor_Candles_Green; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_4: + lightColor = LightColor_Candles_Green; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_LIGHT_BLUE_LIT_1: + lightColor = LightColor_Candles_LightBlue; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_2: + lightColor = LightColor_Candles_LightBlue; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_3: + lightColor = LightColor_Candles_LightBlue; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_4: + lightColor = LightColor_Candles_LightBlue; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_LIGHT_GRAY_LIT_1: + lightColor = LightColor_Candles_LightGray; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_2: + lightColor = LightColor_Candles_LightGray; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_3: + lightColor = LightColor_Candles_LightGray; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_4: + lightColor = LightColor_Candles_LightGray; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_LIME_LIT_1: + lightColor = LightColor_Candles_Lime; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_2: + lightColor = LightColor_Candles_Lime; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_3: + lightColor = LightColor_Candles_Lime; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_4: + lightColor = LightColor_Candles_Lime; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_MAGENTA_LIT_1: + lightColor = LightColor_Candles_Magenta; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_2: + lightColor = LightColor_Candles_Magenta; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_3: + lightColor = LightColor_Candles_Magenta; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_4: + lightColor = LightColor_Candles_Magenta; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_ORANGE_LIT_1: + lightColor = LightColor_Candles_Orange; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_2: + lightColor = LightColor_Candles_Orange; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_3: + lightColor = LightColor_Candles_Orange; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_4: + lightColor = LightColor_Candles_Orange; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_PINK_LIT_1: + lightColor = LightColor_Candles_Pink; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_2: + lightColor = LightColor_Candles_Pink; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_3: + lightColor = LightColor_Candles_Pink; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_4: + lightColor = LightColor_Candles_Pink; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_PURPLE_LIT_1: + lightColor = LightColor_Candles_Purple; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_2: + lightColor = LightColor_Candles_Purple; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_3: + lightColor = LightColor_Candles_Purple; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_4: + lightColor = LightColor_Candles_Purple; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_RED_LIT_1: + lightColor = LightColor_Candles_Red; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_2: + lightColor = LightColor_Candles_Red; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_3: + lightColor = LightColor_Candles_Red; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_4: + lightColor = LightColor_Candles_Red; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_WHITE_LIT_1: + lightColor = LightColor_Candles_White; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_2: + lightColor = LightColor_Candles_White; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_3: + lightColor = LightColor_Candles_White; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_4: + lightColor = LightColor_Candles_White; + lightRange = 12.0; + mixWeight = 1.0; + break; + + case BLOCK_CANDLES_YELLOW_LIT_1: + lightColor = LightColor_Candles_Yellow; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_2: + lightColor = LightColor_Candles_Yellow; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_3: + lightColor = LightColor_Candles_Yellow; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_4: + lightColor = LightColor_Candles_Yellow; + lightRange = 12.0; + mixWeight = 1.0; + break; + #else + case BLOCK_CANDLES_LIT_1: + lightColor = LightColor_Candles; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_2: + lightColor = LightColor_Candles; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_3: + lightColor = LightColor_Candles; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_4: + lightColor = LightColor_Candles; + lightRange = 12.0; + mixWeight = 1.0; + break; + #endif + } + + if (blockId == ITEM_BLAZE_ROD) { + // TODO + } + + if (blockId == BLOCK_CAVE_VINE_BERRIES || blockId == ITEM_GLOW_BERRIES) { + lightColor = vec3(0.651, 0.369, 0.157); + lightRange = 14.0; + mixWeight = 1.0; + } + + #ifdef LPV_REDSTONE_LIGHTS + if (blockId == BLOCK_COMPARATOR_LIT) { + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + } + #endif + + switch (blockId) { + case BLOCK_COPPER_BULB_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 15.0; + break; + case BLOCK_COPPER_BULB_EXPOSED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 12.0; + break; + case BLOCK_COPPER_BULB_OXIDIZED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 4.0; + break; + case BLOCK_COPPER_BULB_WEATHERED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 8.0; + break; + case BLOCK_CONDUIT: + lightColor = vec3(1.0); + lightRange = 15.0; + break; + } + + if (blockId == BLOCK_CRYING_OBSIDIAN) { + lightColor = vec3(0.390, 0.065, 0.646); + lightRange = 10.0; + } + + if (blockId == BLOCK_END_GATEWAY) { + lightColor = vec3(1.0); + lightRange = 15.0; + } + + if (blockId == BLOCK_END_ROD || blockId == ITEM_END_ROD) { + lightColor = vec3(0.957, 0.929, 0.875); + lightRange = 14.0; + } + + if (blockId == BLOCK_FIRE) { + lightColor = vec3(0.864, 0.598, 0.348); + lightRange = 15.0; + mixWeight = 1.0; + } + + if (blockId == BLOCK_FROGLIGHT_OCHRE || blockId == ITEM_FROGLIGHT_OCHRE) { + lightColor = vec3(0.768, 0.648, 0.108); + lightRange = 15.0; + } + + if (blockId == BLOCK_FROGLIGHT_PEARLESCENT || blockId == ITEM_FROGLIGHT_PEARLESCENT) { + lightColor = vec3(0.737, 0.435, 0.658); + lightRange = 15.0; + } + + if (blockId == BLOCK_FROGLIGHT_VERDANT || blockId == ITEM_FROGLIGHT_VERDANT) { + lightColor = vec3(0.463, 0.763, 0.409); + lightRange = 15.0; + } + + if (blockId == BLOCK_FURNACE_LIT) { + lightColor = vec3(0.8, 0.7, 0.1); + lightRange = 13.0; + } + + if (blockId == BLOCK_GLOW_LICHEN || blockId == ITEM_GLOW_LICHEN) { + lightColor = vec3(0.092, 0.217, 0.126); + lightRange = 7.0; + } + + if (blockId == BLOCK_GLOWSTONE || blockId == ITEM_GLOWSTONE) { + lightColor = vec3(0.747, 0.594, 0.326); + lightRange = 15.0; + } + + if (blockId == ITEM_GLOWSTONE_DUST) { + lightColor = vec3(0.747, 0.594, 0.326); + lightRange = 8.0; + } + + if (blockId == BLOCK_JACK_O_LANTERN || blockId == ITEM_JACK_O_LANTERN) { + lightColor = vec3(0.864, 0.598, 0.348); + lightRange = 15.0; + } + + if (blockId == BLOCK_LANTERN || blockId == ITEM_LANTERN) { + lightColor = vec3(0.839, 0.541, 0.2); + lightRange = 15.0; + mixWeight = 0.8; + } + + if (blockId == BLOCK_LAVA) { + lightColor = vec3(0.659, 0.302, 0.106); + lightRange = 15.0; + } + else if (blockId == ITEM_LAVA_BUCKET) { + lightColor = vec3(0.659, 0.302, 0.106); + lightRange = 8.0; + } + + switch (blockId) { + case BLOCK_LIGHT_1: + lightColor = LightColor_LightBlock; + lightRange = 1; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_2: + lightColor = LightColor_LightBlock; + lightRange = 2; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_3: + lightColor = LightColor_LightBlock; + lightRange = 3; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_4: + lightColor = LightColor_LightBlock; + lightRange = 4; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_5: + lightColor = LightColor_LightBlock; + lightRange = 5; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_6: + lightColor = LightColor_LightBlock; + lightRange = 6; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_7: + lightColor = LightColor_LightBlock; + lightRange = 7; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_8: + lightColor = LightColor_LightBlock; + lightRange = 8; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_9: + lightColor = LightColor_LightBlock; + lightRange = 9; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_10: + lightColor = LightColor_LightBlock; + lightRange = 10; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_11: + lightColor = LightColor_LightBlock; + lightRange = 11; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_12: + lightColor = LightColor_LightBlock; + lightRange = 12; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_13: + lightColor = LightColor_LightBlock; + lightRange = 13; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_14: + lightColor = LightColor_LightBlock; + lightRange = 14; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_15: + lightColor = LightColor_LightBlock; + lightRange = 15; + mixWeight = 1.0; + break; + } + + if (blockId == BLOCK_MAGMA || blockId == ITEM_MAGMA) { + lightColor = vec3(0.747, 0.323, 0.110); + lightRange = 3.0; + } + + if (blockId == BLOCK_REDSTONE_LAMP_LIT) { + lightColor = vec3(0.953, 0.796, 0.496); + lightRange = 15.0; + } + + if (blockId == BLOCK_REDSTONE_TORCH_LIT || blockId == ITEM_REDSTONE_TORCH) { + lightColor = LightColor_RedstoneTorch; + lightRange = 7.0; + } + + switch (blockId) { + #ifdef LPV_REDSTONE_LIGHTS + case BLOCK_REDSTONE_WIRE_1: + lightColor = LightColor_RedstoneTorch; + lightRange = 0.5; + break; + case BLOCK_REDSTONE_WIRE_2: + lightColor = LightColor_RedstoneTorch; + lightRange = 1.0; + break; + case BLOCK_REDSTONE_WIRE_3: + lightColor = LightColor_RedstoneTorch; + lightRange = 1.5; + break; + case BLOCK_REDSTONE_WIRE_4: + lightColor = LightColor_RedstoneTorch; + lightRange = 2.0; + break; + case BLOCK_REDSTONE_WIRE_5: + lightColor = LightColor_RedstoneTorch; + lightRange = 2.5; + break; + case BLOCK_REDSTONE_WIRE_6: + lightColor = LightColor_RedstoneTorch; + lightRange = 3.0; + break; + case BLOCK_REDSTONE_WIRE_7: + lightColor = LightColor_RedstoneTorch; + lightRange = 3.5; + break; + case BLOCK_REDSTONE_WIRE_8: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + case BLOCK_REDSTONE_WIRE_9: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.5; + break; + case BLOCK_REDSTONE_WIRE_10: + lightColor = LightColor_RedstoneTorch; + lightRange = 5.0; + break; + case BLOCK_REDSTONE_WIRE_11: + lightColor = LightColor_RedstoneTorch; + lightRange = 5.5; + break; + case BLOCK_REDSTONE_WIRE_12: + lightColor = LightColor_RedstoneTorch; + lightRange = 6.0; + break; + case BLOCK_REDSTONE_WIRE_13: + lightColor = LightColor_RedstoneTorch; + lightRange = 6.5; + break; + case BLOCK_REDSTONE_WIRE_14: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.0; + break; + case BLOCK_REDSTONE_WIRE_15: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.5; + break; + + case BLOCK_REPEATER_LIT: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + #endif + + case BLOCK_RESPAWN_ANCHOR_4: + lightColor = vec3(1.0, 0.2, 1.0); + lightRange = 15.0; + break; + case BLOCK_SCULK_SENSOR_ACTIVE: + lightColor = vec3(0.1, 0.4, 1.0); + lightRange = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_1: + lightColor = LightColor_SeaPickle; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_2: + lightColor = LightColor_SeaPickle; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_3: + lightColor = LightColor_SeaPickle; + lightRange = 12.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_4: + lightColor = LightColor_SeaPickle; + lightRange = 15.0; + mixWeight = 1.0; + break; + } + + if (blockId == BLOCK_SEA_LANTERN || blockId == ITEM_SEA_LANTERN) { + lightColor = vec3(0.553, 0.748, 0.859); + lightRange = 15.0; + } + + if (blockId == BLOCK_SHROOMLIGHT || blockId == ITEM_SHROOMLIGHT) { + lightColor = vec3(0.848, 0.469, 0.205); + lightRange = 15.0; + } + + if (blockId == BLOCK_SOUL_FIRE) { + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 1.0; + } + + if ( + blockId == BLOCK_SOUL_TORCH || blockId == ITEM_SOUL_TORCH || + blockId == BLOCK_SOUL_LANTERN || blockId == ITEM_SOUL_LANTERN + ) { + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 0.8; + } + + if (blockId == BLOCK_TORCH || blockId == ITEM_TORCH) { + lightColor = vec3(1.0, 0.6, 0.1); + lightRange = 14.0; + mixWeight = 0.8; + } + + // reflective translucents / glass + + switch (blockId) { + case BLOCK_HONEY: + tintColor = vec3(0.984, 0.733, 0.251); + mixWeight = 1.0; + break; + case BLOCK_NETHER_PORTAL: + lightColor = vec3(0.502, 0.165, 0.831); + tintColor = vec3(0.502, 0.165, 0.831); + lightRange = 11.0; + mixWeight = 1.0; + break; + case BLOCK_SLIME: + tintColor = vec3(0.408, 0.725, 0.329); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BLACK: + tintColor = vec3(0.3); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BLUE: + tintColor = vec3(0.1, 0.1, 0.98); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BROWN: + tintColor = vec3(0.566, 0.388, 0.148); + mixWeight = 1.0; + break; + case BLOCK_GLASS_CYAN: + tintColor = vec3(0.082, 0.533, 0.763); + mixWeight = 1.0; + break; + case BLOCK_GLASS_GRAY: + tintColor = vec3(0.4, 0.4, 0.4); + mixWeight = 1.0; + break; + case BLOCK_GLASS_GREEN: + tintColor = vec3(0.125, 0.808, 0.081); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIGHT_BLUE: + tintColor = vec3(0.320, 0.685, 0.955); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIGHT_GRAY: + tintColor = vec3(0.7); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIME: + tintColor = vec3(0.633, 0.924, 0.124); + mixWeight = 1.0; + break; + case BLOCK_GLASS_MAGENTA: + tintColor = vec3(0.698, 0.298, 0.847); + mixWeight = 1.0; + break; + case BLOCK_GLASS_ORANGE: + tintColor = vec3(0.919, 0.586, 0.185); + mixWeight = 1.0; + break; + case BLOCK_GLASS_PINK: + tintColor = vec3(0.949, 0.274, 0.497); + mixWeight = 1.0; + break; + case BLOCK_GLASS_PURPLE: + tintColor = vec3(0.578, 0.170, 0.904); + mixWeight = 1.0; + break; + case BLOCK_GLASS_RED: + tintColor = vec3(0.999, 0.188, 0.188); + mixWeight = 1.0; + break; + case BLOCK_GLASS_WHITE: + tintColor = vec3(0.96, 0.96, 0.96); + mixWeight = 1.0; + break; + case BLOCK_GLASS_YELLOW: + tintColor = vec3(0.965, 0.965, 0.123); + mixWeight = 1.0; + break; + + // LPV shapes + + case BLOCK_LPV_IGNORE: + mixWeight = 1.0; + break; + + case BLOCK_CARPET: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.9; + break; + + case BLOCK_DOOR_N: + mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_E: + mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_S: + mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_W: + mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); + mixWeight = 0.8; + break; + + case BLOCK_FENCE: + case BLOCK_FENCE_GATE: + mixWeight = 0.7; + break; + case BLOCK_FLOWER_POT: + mixWeight = 0.7; + break; + case BLOCK_IRON_BARS: + mixWeight = 0.6; + break; + case BLOCK_PRESSURE_PLATE: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.9; + break; + + case BLOCK_SLAB_TOP: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); + mixWeight = 0.5; + break; + case BLOCK_SLAB_BOTTOM: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.5; + break; + + case BLOCK_TRAPDOOR_BOTTOM: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_TOP: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_N: + mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_E: + mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_S: + mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_W: + mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); + mixWeight = 0.8; + break; + } + + // Misc + + if (blockId == BLOCK_SIGN) { + mixWeight = 0.9; + } + + // hack to increase light (if set) if (lightRange > 0.0) lightRange += 1.0; diff --git a/shaders/item.properties b/shaders/item.properties index 994d1fb..cd1facf 100644 --- a/shaders/item.properties +++ b/shaders/item.properties @@ -1,4 +1,52 @@ -item.1000 = glow_berries soul_lantern conduit beacon sea_pickle sea_lantern glowstone redstone_torch jack_o_lantern magma_block lantern shroomlight end_rod lava_bucket conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:conquest:iron_candelabrum_1 conquest:conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light +item.1000=soul_lantern conduit beacon sea_pickle sea_lantern glowstone redstone_torch jack_o_lantern magma_block lantern shroomlight end_rod lava_bucket conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:conquest:iron_candelabrum_1 conquest:conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light -item.1001 = torch -item.1002 = soul_torch +item.1001=large_amethyst_bud + +item.1002=medium_amethyst_bud + +item.1003=amethyst_cluster + +item.1004=beacon + +item.1005=blaze_rod + +item.1006=end_rod + +item.1007=ochre_froglight + +item.1008=pearlescent_froglight + +item.1009=verdant_froglight + +item.1010=glow_berries + +item.1011=glow_lichen + +item.1012=glowstone + +item.1013=glowstone_dust + +item.1014=jack_o_lantern + +item.1015=lantern + +item.1016=lava_bucket + +## ITEM_LIGHT +# item.* = light + +item.1017=magma_block + +item.1018=redstone_torch + +item.1019=sculk_catalyst + +item.1020=sea_lantern + +item.1021=shroomlight + +item.1022=soul_lantern + +item.1023=soul_torch + +item.1024=torch diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index 6e3da92..4e3d18c 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -1,5 +1,5 @@ #ifdef IS_LPV_ENABLED - vec3 GetHandLight(const in int itemId, const in vec3 playerPos) { + vec3 GetHandLight(const in int itemId, const in vec3 playerPos, const in vec3 normal) { vec3 lightFinal = vec3(0.0); vec3 lightColor = vec3(0.0); float lightRange = 0.0; @@ -11,8 +11,10 @@ if (lightRange > 0.0) { float lightDist = length(playerPos); + vec3 lightDir = playerPos / lightDist; + float NoL = 1.0;//max(dot(normal, lightDir), 0.0); float falloff = pow(1.0 - lightDist / lightRange, 3.0); - lightFinal = lightColor * max(falloff, 0.0); + lightFinal = lightColor * NoL * max(falloff, 0.0); } return lightFinal; @@ -55,11 +57,13 @@ vec3 DoAmbientLightColor( TorchLight = mix(TorchLight,LpvTorchLight/5.0, LpvFadeF); + const vec3 normal = vec3(0.0); // TODO + if (heldItemId > 0) - TorchLight += GetHandLight(heldItemId, playerPos); + TorchLight += GetHandLight(heldItemId, playerPos, normal); if (heldItemId2 > 0) - TorchLight += GetHandLight(heldItemId2, playerPos); + TorchLight += GetHandLight(heldItemId2, playerPos, normal); #endif return IndirectLight + TorchLight * TorchBrightness_autoAdjust; diff --git a/shaders/lib/items.glsl b/shaders/lib/items.glsl index a9ef32b..46da563 100644 --- a/shaders/lib/items.glsl +++ b/shaders/lib/items.glsl @@ -1 +1,25 @@ #define ITEM_LIGHT_SOURCES 1000 +#define ITEM_AMETHYST_BUD_LARGE 1001 +#define ITEM_AMETHYST_BUD_MEDIUM 1002 +#define ITEM_AMETHYST_CLUSTER 1003 +#define ITEM_BEACON 1004 +#define ITEM_BLAZE_ROD 1005 +#define ITEM_END_ROD 1006 +#define ITEM_FROGLIGHT_OCHRE 1007 +#define ITEM_FROGLIGHT_PEARLESCENT 1008 +#define ITEM_FROGLIGHT_VERDANT 1009 +#define ITEM_GLOW_BERRIES 1010 +#define ITEM_GLOW_LICHEN 1011 +#define ITEM_GLOWSTONE 1012 +#define ITEM_GLOWSTONE_DUST 1013 +#define ITEM_JACK_O_LANTERN 1014 +#define ITEM_LANTERN 1015 +#define ITEM_LAVA_BUCKET 1016 +#define ITEM_MAGMA 1017 +#define ITEM_REDSTONE_TORCH 1018 +#define ITEM_SCULK_CATALYST 1019 +#define ITEM_SEA_LANTERN 1020 +#define ITEM_SHROOMLIGHT 1021 +#define ITEM_SOUL_LANTERN 1022 +#define ITEM_SOUL_TORCH 1023 +#define ITEM_TORCH 1024 diff --git a/shaders/template/item.properties b/shaders/template/item.properties new file mode 100644 index 0000000..60c08b5 --- /dev/null +++ b/shaders/template/item.properties @@ -0,0 +1,77 @@ +#= ITEM_LIGHT_SOURCES +item.1000 = soul_lantern conduit beacon sea_pickle sea_lantern glowstone redstone_torch jack_o_lantern magma_block lantern shroomlight end_rod lava_bucket conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:conquest:iron_candelabrum_1 conquest:conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light + +#= ITEM_AMETHYST_BUD_LARGE +item.* = large_amethyst_bud + +#= ITEM_AMETHYST_BUD_MEDIUM +item.* = medium_amethyst_bud + +#= ITEM_AMETHYST_CLUSTER +item.* = amethyst_cluster + +#= ITEM_BEACON +item.* = beacon + +#= ITEM_BLAZE_ROD +item.* = blaze_rod + +#= ITEM_END_ROD +item.* = end_rod + +#= ITEM_FROGLIGHT_OCHRE +item.* = ochre_froglight + +#= ITEM_FROGLIGHT_PEARLESCENT +item.* = pearlescent_froglight + +#= ITEM_FROGLIGHT_VERDANT +item.* = verdant_froglight + +#= ITEM_GLOW_BERRIES +item.* = glow_berries + +#= ITEM_GLOW_LICHEN +item.* = glow_lichen + +#= ITEM_GLOWSTONE +item.* = glowstone + +#= ITEM_GLOWSTONE_DUST +item.* = glowstone_dust + +#= ITEM_JACK_O_LANTERN +item.* = jack_o_lantern + +#= ITEM_LANTERN +item.* = lantern + +#= ITEM_LAVA_BUCKET +item.* = lava_bucket + +## ITEM_LIGHT +# item.* = light + +#= ITEM_MAGMA +item.* = magma_block + +#= ITEM_REDSTONE_TORCH +item.* = redstone_torch + +#= ITEM_SCULK_CATALYST +item.* = sculk_catalyst + +#= ITEM_SEA_LANTERN +item.* = sea_lantern + +#= ITEM_SHROOMLIGHT +item.* = shroomlight + +#= ITEM_SOUL_LANTERN +item.* = soul_lantern + +#= ITEM_SOUL_TORCH +item.* = soul_torch + +#= ITEM_TORCH +item.* = torch From 8c8531701b5bb82a9c9cb2c1472ba2e279f188c4 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Tue, 7 May 2024 10:53:28 -0400 Subject: [PATCH 11/12] item/entity light fixes --- shaders/block.properties | 2 +- shaders/dimensions/setup.csh | 34 +++++++++++++++++++++++++++--- shaders/entity.properties | 24 +++++++++++---------- shaders/lib/entities.glsl | 23 ++++++++++---------- shaders/lib/settings.glsl | 2 +- shaders/template/block.properties | 2 +- shaders/template/entity.properties | 7 ++++-- shaders/world-1/shadow.vsh | 2 +- shaders/world0/shadow.vsh | 2 +- shaders/world1/shadow.vsh | 2 +- 10 files changed, 67 insertions(+), 33 deletions(-) diff --git a/shaders/block.properties b/shaders/block.properties index 2641257..1079bd6 100644 --- a/shaders/block.properties +++ b/shaders/block.properties @@ -393,7 +393,7 @@ block.321=yellow_stained_glass yellow_stained_glass_pane ####### ----- LPV shapes ----- ####### -block.401=chain ladder lever tripwire_hook snow:layers=1 candle:lit=false black_candle:lit=false blue_candle:lit=false brown_candle:lit=false cyan_candle:lit=false gray_candle:lit=false green_candle:lit=false light_blue_candle:lit=false light_gray_candle:lit=false lime_candle:lit=false magenta_candle:lit=false orange_candle:lit=false pink_candle:lit=false purple_candle:lit=false red_candle:lit=false white_candle:lit=false yellow_candle:lit=false acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button +block.401=chain ladder lever tripwire tripwire_hook snow:layers=1 candle:lit=false black_candle:lit=false blue_candle:lit=false brown_candle:lit=false cyan_candle:lit=false gray_candle:lit=false green_candle:lit=false light_blue_candle:lit=false light_gray_candle:lit=false lime_candle:lit=false magenta_candle:lit=false orange_candle:lit=false pink_candle:lit=false purple_candle:lit=false red_candle:lit=false white_candle:lit=false yellow_candle:lit=false acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button block.402=black_carpet blue_carpet brown_carpet cyan_carpet gray_carpet green_carpet light_blue_carpet light_gray_carpet lime_carpet magenta_carpet moss_carpet orange_carpet pink_carpet purple_carpet red_carpet white_carpet yellow_carpet diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index 4595e25..cd85c89 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -3,9 +3,9 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; const ivec3 workGroups = ivec3(6, 6, 1); #ifdef IS_LPV_ENABLED - #include "/lib/blocks.glsl" #include "/lib/items.glsl" - // #include "/lib/entities.glsl" + #include "/lib/blocks.glsl" + #include "/lib/entities.glsl" #include "/lib/lpv_blocks.glsl" const vec3 LightColor_Amethyst = vec3(0.464, 0.227, 0.788); @@ -42,7 +42,7 @@ const ivec3 workGroups = ivec3(6, 6, 1); void main() { #ifdef IS_LPV_ENABLED - int blockId = int(gl_GlobalInvocationID.x + gl_GlobalInvocationID.y * 32); + int blockId = int(gl_GlobalInvocationID.x + gl_GlobalInvocationID.y * 48); if (blockId >= 2048) return; vec3 lightColor = vec3(0.0); @@ -995,6 +995,34 @@ void main() { mixWeight = 0.9; } + // Entities + + if (blockId == ENTITY_BLAZE) { + lightColor = vec3(1.000, 0.592, 0.000); + lightRange = 8.0; + } + + if (blockId == ENTITY_END_CRYSTAL) { + lightColor = vec3(1.000, 0.000, 1.000); + lightRange = 8.0; + } + + if (blockId == ENTITY_MAGMA_CUBE) { + lightColor = vec3(0.747, 0.323, 0.110); + lightRange = 9.0; + } + + if (blockId == ENTITY_TNT) { + lightColor = vec3(1.0); + lightRange = 8.0; + } + + if (blockId == ENTITY_SPECTRAL_ARROW) { + lightColor = vec3(0.0, 1.0, 0.0); + lightRange = 8.0; + mixWeight = 1.0; + } + // hack to increase light (if set) if (lightRange > 0.0) lightRange += 1.0; diff --git a/shaders/entity.properties b/shaders/entity.properties index 8bb72e9..6587c74 100644 --- a/shaders/entity.properties +++ b/shaders/entity.properties @@ -1,34 +1,36 @@ -entity.1201=player +entity.1601=player -entity.1202=minecraft:lightning_bolt weather2:lightning_bolt +entity.1602=minecraft:lightning_bolt weather2:lightning_bolt ## misc stuff -entity.1203=blaze +entity.1603=blaze -entity.1204=ender_dragon wither +entity.1604=ender_dragon wither -entity.1205=item_frame item_display +entity.1605=end_crystal -entity.1206=magma_cube +entity.1606=item_frame item_display -entity.1207=tnt firework_rocket +entity.1607=magma_cube -entity.1208=spectral_arrow bigglobe:torch_arrow +entity.1608=tnt firework_rocket + +entity.1609=spectral_arrow bigglobe:torch_arrow ################################################ ###### SUB-SURFACE SCATTERING ################################################ ## medium sss (same as strong sss for blocks) -entity.1401=giant ghast elder_guardian +entity.1801=giant ghast elder_guardian ## weak sss (same as weak sss for blocks) -entity.1402=furnace_minecart sheep frog chicken iron_golem snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin creeper drowned endermite evoker guardian hoglin husk phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama +entity.1802=furnace_minecart sheep frog chicken iron_golem snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin creeper drowned endermite evoker guardian hoglin husk phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama #removed: player blaze magma_cube ################################################ ###### REFLECTIVE TRANSLUCENTS ################################################ -entity.1403=slime +entity.1803=slime diff --git a/shaders/lib/entities.glsl b/shaders/lib/entities.glsl index de0bc1b..0300ffb 100644 --- a/shaders/lib/entities.glsl +++ b/shaders/lib/entities.glsl @@ -1,11 +1,12 @@ -#define ENTITY_PLAYER 1201 -#define ENTITY_LIGHTNING 1202 -#define ENTITY_BLAZE 1203 -#define ENTITY_DRAGON_WITHER 1204 -#define ENTITY_ITEM_FRAME 1205 -#define ENTITY_MAGMA_CUBE 1206 -#define ENTITY_TNT 1207 -#define ENTITY_SPECTRAL_ARROW 1208 -#define ENTITY_SSS_MEDIUM 1401 -#define ENTITY_SSS_WEAK 1402 -#define ENTITY_SLIME 1403 +#define ENTITY_PLAYER 1601 +#define ENTITY_LIGHTNING 1602 +#define ENTITY_BLAZE 1603 +#define ENTITY_DRAGON_WITHER 1604 +#define ENTITY_END_CRYSTAL 1605 +#define ENTITY_ITEM_FRAME 1606 +#define ENTITY_MAGMA_CUBE 1607 +#define ENTITY_TNT 1608 +#define ENTITY_SPECTRAL_ARROW 1609 +#define ENTITY_SSS_MEDIUM 1801 +#define ENTITY_SSS_WEAK 1802 +#define ENTITY_SLIME 1803 diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 575bf24..1922735 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -687,7 +687,7 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) #define LPV_REDSTONE_LIGHTS //#define LPV_COLORED_CANDLES -#define LPV_NOSHADOW_HACK +// #define LPV_NOSHADOW_HACK #ifdef LPV_ENABLED #ifdef IRIS_FEATURE_CUSTOM_IMAGES diff --git a/shaders/template/block.properties b/shaders/template/block.properties index b50a3fa..3ca7bda 100644 --- a/shaders/template/block.properties +++ b/shaders/template/block.properties @@ -577,7 +577,7 @@ block.*= vine ####### ----- LPV shapes ----- ####### #= BLOCK_LPV_IGNORE - block.401= chain ladder lever tripwire_hook \ + block.401= chain ladder lever tripwire tripwire_hook \ snow:layers=1 \ [candle]:lit=false \ acacia_button bamboo_button birch_button cherry_button crimson_button dark_oak_button jungle_button mangrove_button oak_button polished_blackstone_button spruce_button stone_button warped_button diff --git a/shaders/template/entity.properties b/shaders/template/entity.properties index 12a87f3..42c3f70 100644 --- a/shaders/template/entity.properties +++ b/shaders/template/entity.properties @@ -1,5 +1,5 @@ #= ENTITY_PLAYER -entity.1201= player +entity.1601= player #= ENTITY_LIGHTNING entity.*= minecraft:lightning_bolt weather2:lightning_bolt @@ -12,6 +12,9 @@ entity.*= blaze #= ENTITY_DRAGON_WITHER entity.*= ender_dragon wither +#= ENTITY_END_CRYSTAL +entity.*= end_crystal + #= ENTITY_ITEM_FRAME entity.*= item_frame item_display @@ -30,7 +33,7 @@ entity.*= spectral_arrow bigglobe:torch_arrow ## medium sss (same as strong sss for blocks) #= ENTITY_SSS_MEDIUM -entity.1401 = giant ghast elder_guardian +entity.1801 = giant ghast elder_guardian ## weak sss (same as weak sss for blocks) #= ENTITY_SSS_WEAK diff --git a/shaders/world-1/shadow.vsh b/shaders/world-1/shadow.vsh index 79049b3..b5ccc56 100644 --- a/shaders/world-1/shadow.vsh +++ b/shaders/world-1/shadow.vsh @@ -72,7 +72,7 @@ void main() { case ENTITY_BLAZE: case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: - voxelId = uint(BLOCK_TORCH); + voxelId = uint(entityId); break; } } diff --git a/shaders/world0/shadow.vsh b/shaders/world0/shadow.vsh index 27d23af..94b6844 100644 --- a/shaders/world0/shadow.vsh +++ b/shaders/world0/shadow.vsh @@ -221,7 +221,7 @@ void main() { case ENTITY_BLAZE: case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: - voxelId = uint(BLOCK_TORCH); + voxelId = uint(entityId); break; } } diff --git a/shaders/world1/shadow.vsh b/shaders/world1/shadow.vsh index 79049b3..b5ccc56 100644 --- a/shaders/world1/shadow.vsh +++ b/shaders/world1/shadow.vsh @@ -72,7 +72,7 @@ void main() { case ENTITY_BLAZE: case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: - voxelId = uint(BLOCK_TORCH); + voxelId = uint(entityId); break; } } From dc8a331f55a61ff420ba427ad005c609a4f986a4 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Wed, 8 May 2024 12:26:37 -0400 Subject: [PATCH 12/12] misc floodfill fixes --- shaders/dimensions/composite1.fsh | 1 - shaders/dimensions/setup.csh | 6 +++++- shaders/entity.properties | 4 +++- shaders/lib/entities.glsl | 3 ++- shaders/lib/settings.glsl | 3 ++- shaders/template/entity.properties | 3 +++ shaders/world-1/shadow.vsh | 3 +++ shaders/world0/shadow.vsh | 3 +++ shaders/world1/shadow.vsh | 3 +++ 9 files changed, 24 insertions(+), 5 deletions(-) diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index a38a627..554770e 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -173,7 +173,6 @@ vec3 toScreenSpace(vec3 p) { #ifdef IS_LPV_ENABLED #include "/lib/hsv.glsl" #include "/lib/lpv_common.glsl" - // #include "/lib/lpv_blocks.glsl" #include "/lib/lpv_render.glsl" #endif diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index cd85c89..1fb6e8e 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -1007,6 +1007,11 @@ void main() { lightRange = 8.0; } + if (blockId == ENTITY_FIREBALL_SMALL) { + lightColor = vec3(0.000, 1.000, 0.000); + lightRange = 8.0; + } + if (blockId == ENTITY_MAGMA_CUBE) { lightColor = vec3(0.747, 0.323, 0.110); lightRange = 9.0; @@ -1032,7 +1037,6 @@ void main() { uint lightColorRange = packUnorm4x8(vec4(lightColor, lightRange/255.0)); uint tintColorMask = packUnorm4x8(vec4(tintColor, 0.0)); - tintColorMask |= mixMask << 24; imageStore(imgBlockData, blockId, uvec4(lightColorRange, tintColorMask, 0u, 0u)); diff --git a/shaders/entity.properties b/shaders/entity.properties index 6587c74..1f43d40 100644 --- a/shaders/entity.properties +++ b/shaders/entity.properties @@ -16,7 +16,9 @@ entity.1607=magma_cube entity.1608=tnt firework_rocket -entity.1609=spectral_arrow bigglobe:torch_arrow +entity.1609=small_fireball + +entity.1610=spectral_arrow bigglobe:torch_arrow ################################################ ###### SUB-SURFACE SCATTERING diff --git a/shaders/lib/entities.glsl b/shaders/lib/entities.glsl index 0300ffb..c2e407d 100644 --- a/shaders/lib/entities.glsl +++ b/shaders/lib/entities.glsl @@ -6,7 +6,8 @@ #define ENTITY_ITEM_FRAME 1606 #define ENTITY_MAGMA_CUBE 1607 #define ENTITY_TNT 1608 -#define ENTITY_SPECTRAL_ARROW 1609 +#define ENTITY_FIREBALL_SMALL 1609 +#define ENTITY_SPECTRAL_ARROW 1610 #define ENTITY_SSS_MEDIUM 1801 #define ENTITY_SSS_WEAK 1802 #define ENTITY_SLIME 1803 diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 1922735..2c62a7e 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -687,7 +687,8 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) #define LPV_REDSTONE_LIGHTS //#define LPV_COLORED_CANDLES -// #define LPV_NOSHADOW_HACK +// Fix for making nether/end work until next Iris release to fix shadow matrices +#define LPV_NOSHADOW_HACK #ifdef LPV_ENABLED #ifdef IRIS_FEATURE_CUSTOM_IMAGES diff --git a/shaders/template/entity.properties b/shaders/template/entity.properties index 42c3f70..9af3ec1 100644 --- a/shaders/template/entity.properties +++ b/shaders/template/entity.properties @@ -24,6 +24,9 @@ entity.*= magma_cube #= ENTITY_TNT entity.*= tnt firework_rocket +#= ENTITY_FIREBALL_SMALL +entity.*= small_fireball + #= ENTITY_SPECTRAL_ARROW entity.*= spectral_arrow bigglobe:torch_arrow diff --git a/shaders/world-1/shadow.vsh b/shaders/world-1/shadow.vsh index b5ccc56..951c796 100644 --- a/shaders/world-1/shadow.vsh +++ b/shaders/world-1/shadow.vsh @@ -70,8 +70,11 @@ void main() { else { switch (entityId) { case ENTITY_BLAZE: + case ENTITY_END_CRYSTAL: + // case ENTITY_FIREBALL_SMALL: case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: + case ENTITY_TNT: voxelId = uint(entityId); break; } diff --git a/shaders/world0/shadow.vsh b/shaders/world0/shadow.vsh index 94b6844..8f30f3e 100644 --- a/shaders/world0/shadow.vsh +++ b/shaders/world0/shadow.vsh @@ -219,8 +219,11 @@ void main() { else { switch (entityId) { case ENTITY_BLAZE: + case ENTITY_END_CRYSTAL: + // case ENTITY_FIREBALL_SMALL: case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: + case ENTITY_TNT: voxelId = uint(entityId); break; } diff --git a/shaders/world1/shadow.vsh b/shaders/world1/shadow.vsh index b5ccc56..951c796 100644 --- a/shaders/world1/shadow.vsh +++ b/shaders/world1/shadow.vsh @@ -70,8 +70,11 @@ void main() { else { switch (entityId) { case ENTITY_BLAZE: + case ENTITY_END_CRYSTAL: + // case ENTITY_FIREBALL_SMALL: case ENTITY_MAGMA_CUBE: case ENTITY_SPECTRAL_ARROW: + case ENTITY_TNT: voxelId = uint(entityId); break; }