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