From 97b81716d401814bf47f91c997be912dd0a8d737 Mon Sep 17 00:00:00 2001 From: Merlin1809 Date: Tue, 7 Oct 2025 23:04:14 +0200 Subject: [PATCH] Add colorwheel support, update create block support --- shaders/block.properties | 61 ++-- shaders/colorwheel.properties | 25 ++ shaders/dimensions/all_particles.fsh | 33 +- shaders/dimensions/all_solid.fsh | 106 ++++--- shaders/dimensions/all_solid.gsh | 6 +- shaders/dimensions/all_translucent.fsh | 42 ++- shaders/dimensions/all_vanilla_emissives.fsh | 66 ++-- shaders/lang/en_us.lang | 2 +- shaders/lib/specular.glsl | 7 +- shaders/lib/volumetricClouds.glsl | 8 +- shaders/lib/voxel_write.glsl | 23 +- shaders/shaders.properties | 2 +- shaders/world-1/clrwl_gbuffers.fsh | 11 + shaders/world-1/clrwl_gbuffers.gsh | 11 + shaders/world-1/clrwl_gbuffers.vsh | 12 + .../world-1/clrwl_gbuffers_damagedblock.fsh | 9 + .../world-1/clrwl_gbuffers_damagedblock.vsh | 9 + shaders/world-1/clrwl_gbuffers_glint.fsh | 9 + shaders/world-1/clrwl_gbuffers_glint.vsh | 9 + .../world-1/clrwl_gbuffers_translucent.fsh | 12 + .../world-1/clrwl_gbuffers_translucent.vsh | 11 + shaders/world-1/clrwl_shadow.fsh | 12 + shaders/world-1/clrwl_shadow.vsh | 60 ++++ shaders/world0/clrwl_gbuffers.fsh | 11 + shaders/world0/clrwl_gbuffers.gsh | 11 + shaders/world0/clrwl_gbuffers.vsh | 12 + .../world0/clrwl_gbuffers_damagedblock.fsh | 9 + .../world0/clrwl_gbuffers_damagedblock.vsh | 9 + shaders/world0/clrwl_gbuffers_glint.fsh | 9 + shaders/world0/clrwl_gbuffers_glint.vsh | 9 + shaders/world0/clrwl_gbuffers_translucent.fsh | 12 + shaders/world0/clrwl_gbuffers_translucent.vsh | 11 + shaders/world0/clrwl_shadow.fsh | 37 +++ shaders/world0/clrwl_shadow.vsh | 296 ++++++++++++++++++ shaders/world0/shadow.fsh | 12 +- shaders/world1/clrwl_gbuffers.fsh | 11 + shaders/world1/clrwl_gbuffers.gsh | 11 + shaders/world1/clrwl_gbuffers.vsh | 12 + .../world1/clrwl_gbuffers_damagedblock.fsh | 9 + .../world1/clrwl_gbuffers_damagedblock.vsh | 9 + shaders/world1/clrwl_gbuffers_glint.fsh | 9 + shaders/world1/clrwl_gbuffers_glint.vsh | 9 + shaders/world1/clrwl_gbuffers_translucent.fsh | 12 + shaders/world1/clrwl_gbuffers_translucent.vsh | 11 + shaders/world1/clrwl_shadow.fsh | 54 ++++ shaders/world1/clrwl_shadow.vsh | 93 ++++++ 46 files changed, 1077 insertions(+), 147 deletions(-) create mode 100644 shaders/colorwheel.properties create mode 100644 shaders/world-1/clrwl_gbuffers.fsh create mode 100644 shaders/world-1/clrwl_gbuffers.gsh create mode 100644 shaders/world-1/clrwl_gbuffers.vsh create mode 100644 shaders/world-1/clrwl_gbuffers_damagedblock.fsh create mode 100644 shaders/world-1/clrwl_gbuffers_damagedblock.vsh create mode 100644 shaders/world-1/clrwl_gbuffers_glint.fsh create mode 100644 shaders/world-1/clrwl_gbuffers_glint.vsh create mode 100644 shaders/world-1/clrwl_gbuffers_translucent.fsh create mode 100644 shaders/world-1/clrwl_gbuffers_translucent.vsh create mode 100644 shaders/world-1/clrwl_shadow.fsh create mode 100644 shaders/world-1/clrwl_shadow.vsh create mode 100644 shaders/world0/clrwl_gbuffers.fsh create mode 100644 shaders/world0/clrwl_gbuffers.gsh create mode 100644 shaders/world0/clrwl_gbuffers.vsh create mode 100644 shaders/world0/clrwl_gbuffers_damagedblock.fsh create mode 100644 shaders/world0/clrwl_gbuffers_damagedblock.vsh create mode 100644 shaders/world0/clrwl_gbuffers_glint.fsh create mode 100644 shaders/world0/clrwl_gbuffers_glint.vsh create mode 100644 shaders/world0/clrwl_gbuffers_translucent.fsh create mode 100644 shaders/world0/clrwl_gbuffers_translucent.vsh create mode 100644 shaders/world0/clrwl_shadow.fsh create mode 100644 shaders/world0/clrwl_shadow.vsh create mode 100644 shaders/world1/clrwl_gbuffers.fsh create mode 100644 shaders/world1/clrwl_gbuffers.gsh create mode 100644 shaders/world1/clrwl_gbuffers.vsh create mode 100644 shaders/world1/clrwl_gbuffers_damagedblock.fsh create mode 100644 shaders/world1/clrwl_gbuffers_damagedblock.vsh create mode 100644 shaders/world1/clrwl_gbuffers_glint.fsh create mode 100644 shaders/world1/clrwl_gbuffers_glint.vsh create mode 100644 shaders/world1/clrwl_gbuffers_translucent.fsh create mode 100644 shaders/world1/clrwl_gbuffers_translucent.vsh create mode 100644 shaders/world1/clrwl_shadow.fsh create mode 100644 shaders/world1/clrwl_shadow.vsh diff --git a/shaders/block.properties b/shaders/block.properties index 916a875..b441c4d 100644 --- a/shaders/block.properties +++ b/shaders/block.properties @@ -49,29 +49,37 @@ block.50=chain ladder lever lightning_rod scaffolding tripwire tripwire_hook can gravestones:gravestone gravestones:gravestone_chipped gravestones:gravestone_damaged \ humility-afm:candlestick_copper_candle:lit=false humility-afm:candlestick_exposed_copper_candle:lit=false humility-afm:candlestick_gold_candle:lit=false humility-afm:candlestick_oxidized_copper_candle:lit=false humility-afm:candlestick_waxed_copper_candle:lit=false humility-afm:candlestick_waxed_exposed_copper_candle:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle:lit=false humility-afm:candlestick_waxed_weathered_copper_candle:lit=false humility-afm:candlestick_weathered_copper_candle:lit=false humility-afm:candlestick_copper_candle_black:lit=false humility-afm:candlestick_copper_candle_blue:lit=false humility-afm:candlestick_copper_candle_brown:lit=false humility-afm:candlestick_copper_candle_cyan:lit=false humility-afm:candlestick_copper_candle_gray:lit=false humility-afm:candlestick_copper_candle_green:lit=false humility-afm:candlestick_copper_candle_light_blue:lit=false humility-afm:candlestick_copper_candle_light_gray:lit=false humility-afm:candlestick_copper_candle_lime:lit=false humility-afm:candlestick_copper_candle_magenta:lit=false humility-afm:candlestick_copper_candle_orange:lit=false humility-afm:candlestick_copper_candle_pink:lit=false humility-afm:candlestick_copper_candle_purple:lit=false humility-afm:candlestick_copper_candle_red:lit=false humility-afm:candlestick_copper_candle_white:lit=false humility-afm:candlestick_copper_candle_yellow:lit=false humility-afm:candlestick_exposed_copper_candle_black:lit=false humility-afm:candlestick_exposed_copper_candle_blue:lit=false humility-afm:candlestick_exposed_copper_candle_brown:lit=false humility-afm:candlestick_exposed_copper_candle_cyan:lit=false humility-afm:candlestick_exposed_copper_candle_gray:lit=false humility-afm:candlestick_exposed_copper_candle_green:lit=false humility-afm:candlestick_exposed_copper_candle_light_blue:lit=false humility-afm:candlestick_exposed_copper_candle_light_gray:lit=false humility-afm:candlestick_exposed_copper_candle_lime:lit=false humility-afm:candlestick_exposed_copper_candle_magenta:lit=false humility-afm:candlestick_exposed_copper_candle_orange:lit=false humility-afm:candlestick_exposed_copper_candle_pink:lit=false humility-afm:candlestick_exposed_copper_candle_purple:lit=false humility-afm:candlestick_exposed_copper_candle_red:lit=false humility-afm:candlestick_exposed_copper_candle_white:lit=false humility-afm:candlestick_exposed_copper_candle_yellow:lit=false humility-afm:candlestick_gold_candle_black:lit=false humility-afm:candlestick_gold_candle_blue:lit=false humility-afm:candlestick_gold_candle_brown:lit=false humility-afm:candlestick_gold_candle_cyan:lit=false humility-afm:candlestick_gold_candle_gray:lit=false humility-afm:candlestick_gold_candle_green:lit=false humility-afm:candlestick_gold_candle_light_blue:lit=false humility-afm:candlestick_gold_candle_light_gray:lit=false humility-afm:candlestick_gold_candle_lime:lit=false humility-afm:candlestick_gold_candle_magenta:lit=false humility-afm:candlestick_gold_candle_orange:lit=false humility-afm:candlestick_gold_candle_pink:lit=false humility-afm:candlestick_gold_candle_purple:lit=false humility-afm:candlestick_gold_candle_red:lit=false humility-afm:candlestick_gold_candle_white:lit=false humility-afm:candlestick_gold_candle_yellow:lit=false humility-afm:candlestick_oxidized_copper_candle_black:lit=false humility-afm:candlestick_oxidized_copper_candle_blue:lit=false humility-afm:candlestick_oxidized_copper_candle_brown:lit=false humility-afm:candlestick_oxidized_copper_candle_cyan:lit=false humility-afm:candlestick_oxidized_copper_candle_gray:lit=false humility-afm:candlestick_oxidized_copper_candle_green:lit=false humility-afm:candlestick_oxidized_copper_candle_light_blue:lit=false humility-afm:candlestick_oxidized_copper_candle_light_gray:lit=false humility-afm:candlestick_oxidized_copper_candle_lime:lit=false humility-afm:candlestick_oxidized_copper_candle_magenta:lit=false humility-afm:candlestick_oxidized_copper_candle_orange:lit=false humility-afm:candlestick_oxidized_copper_candle_pink:lit=false humility-afm:candlestick_oxidized_copper_candle_purple:lit=false humility-afm:candlestick_oxidized_copper_candle_red:lit=false humility-afm:candlestick_oxidized_copper_candle_white:lit=false humility-afm:candlestick_oxidized_copper_candle_yellow:lit=false humility-afm:candlestick_waxed_copper_candle_black:lit=false humility-afm:candlestick_waxed_copper_candle_blue:lit=false humility-afm:candlestick_waxed_copper_candle_brown:lit=false humility-afm:candlestick_waxed_copper_candle_cyan:lit=false humility-afm:candlestick_waxed_copper_candle_gray:lit=false humility-afm:candlestick_waxed_copper_candle_green:lit=false humility-afm:candlestick_waxed_copper_candle_light_blue:lit=false humility-afm:candlestick_waxed_copper_candle_light_gray:lit=false humility-afm:candlestick_waxed_copper_candle_lime:lit=false humility-afm:candlestick_waxed_copper_candle_magenta:lit=false humility-afm:candlestick_waxed_copper_candle_orange:lit=false humility-afm:candlestick_waxed_copper_candle_pink:lit=false humility-afm:candlestick_waxed_copper_candle_purple:lit=false humility-afm:candlestick_waxed_copper_candle_red:lit=false humility-afm:candlestick_waxed_copper_candle_white:lit=false humility-afm:candlestick_waxed_copper_candle_yellow:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_black:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_blue:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_brown:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_cyan:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_gray:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_green:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_light_blue:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_light_gray:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_lime:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_magenta:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_orange:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_pink:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_purple:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_red:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_white:lit=false humility-afm:candlestick_waxed_exposed_copper_candle_yellow:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_black:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_blue:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_brown:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_cyan:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_gray:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_green:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_light_blue:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_light_gray:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_lime:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_magenta:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_orange:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_pink:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_purple:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_red:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_white:lit=false humility-afm:candlestick_waxed_oxidized_copper_candle_yellow:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_black:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_blue:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_brown:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_cyan:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_gray:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_green:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_light_blue:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_light_gray:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_lime:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_magenta:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_orange:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_pink:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_purple:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_red:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_white:lit=false humility-afm:candlestick_waxed_weathered_copper_candle_yellow:lit=false humility-afm:candlestick_weathered_copper_candle_black:lit=false humility-afm:candlestick_weathered_copper_candle_blue:lit=false humility-afm:candlestick_weathered_copper_candle_brown:lit=false humility-afm:candlestick_weathered_copper_candle_cyan:lit=false humility-afm:candlestick_weathered_copper_candle_gray:lit=false humility-afm:candlestick_weathered_copper_candle_green:lit=false humility-afm:candlestick_weathered_copper_candle_light_blue:lit=false humility-afm:candlestick_weathered_copper_candle_light_gray:lit=false humility-afm:candlestick_weathered_copper_candle_lime:lit=false humility-afm:candlestick_weathered_copper_candle_magenta:lit=false humility-afm:candlestick_weathered_copper_candle_orange:lit=false humility-afm:candlestick_weathered_copper_candle_pink:lit=false humility-afm:candlestick_weathered_copper_candle_purple:lit=false humility-afm:candlestick_weathered_copper_candle_red:lit=false humility-afm:candlestick_weathered_copper_candle_white:lit=false humility-afm:candlestick_weathered_copper_candle_yellow:lit=false \ refurbished_furniture:plate \ - supplementaries:candle_holder:lit=false supplementaries:candle_holder_black:lit=false supplementaries:candle_holder_blue:lit=false supplementaries:candle_holder_brown:lit=false supplementaries:candle_holder_cyan:lit=false supplementaries:candle_holder_gray:lit=false supplementaries:candle_holder_green:lit=false supplementaries:candle_holder_light_blue:lit=false supplementaries:candle_holder_light_gray:lit=false supplementaries:candle_holder_lime:lit=false supplementaries:candle_holder_magenta:lit=false supplementaries:candle_holder_orange:lit=false supplementaries:candle_holder_pink:lit=false supplementaries:candle_holder_purple:lit=false supplementaries:candle_holder_red:lit=false supplementaries:candle_holder_white:lit=false supplementaries:candle_holder_yellow:lit=false + create:factory_gauge create:controller_rail:power=0 create:brass_table_cloth create:andesite_table_cloth create:copper_table_cloth create:white_table_cloth create:orange_table_cloth create:magenta_table_cloth create:light_blue_table_cloth create:yellow_table_cloth create:lime_table_cloth create:pink_table_cloth create:gray_table_cloth create:light_gray_table_cloth create:cyan_table_cloth create:purple_table_cloth create:blue_table_cloth create:brown_table_cloth create:green_table_cloth create:red_table_cloth create:black_table_cloth \ + supplementaries:way_sign_wall supplementaries:way_sign supplementaries:jar supplementaries:candle_holder:lit=false supplementaries:candle_holder_black:lit=false supplementaries:candle_holder_blue:lit=false supplementaries:candle_holder_brown:lit=false supplementaries:candle_holder_cyan:lit=false supplementaries:candle_holder_gray:lit=false supplementaries:candle_holder_green:lit=false supplementaries:candle_holder_light_blue:lit=false supplementaries:candle_holder_light_gray:lit=false supplementaries:candle_holder_lime:lit=false supplementaries:candle_holder_magenta:lit=false supplementaries:candle_holder_orange:lit=false supplementaries:candle_holder_pink:lit=false supplementaries:candle_holder_purple:lit=false supplementaries:candle_holder_red:lit=false supplementaries:candle_holder_white:lit=false supplementaries:candle_holder_yellow:lit=false # Blocks that occlude 25% of light block.51=acacia_fence bamboo_fence birch_fence cherry_fence crimson_fence dark_oak_fence jungle_fence mangrove_fence oak_fence pale_oak_fence spruce_fence warped_fence nether_brick_fence 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 pale_oak_fence_gate spruce_fence_gate warped_fence_gate 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 \ diagonalfences:minecraft/acacia_fence diagonalfences:minecraft/bamboo_fence diagonalfences:minecraft/birch_fence diagonalfences:minecraft/cherry_fence diagonalfences:minecraft/crimson_fence diagonalfences:minecraft/dark_oak_fence diagonalfences:minecraft/jungle_fence diagonalfences:minecraft/mangrove_fence diagonalfences:minecraft/nether_brick_fence diagonalfences:minecraft/oak_fence diagonalfences:minecraft/spruce_fence diagonalfences:minecraft/warped_fence \ gravestones:gravestone gravestones:gravestone_chipped gravestones:gravestone_damaged \ + create:stock_link create:sail_frame create:track create:shaft create:cogwheel create:piston_extension_pole create:placard create:redstone_link create:analog_lever create:powered_toggle_latch create:powered_latch create:pulse_timer create:pulse_extender create:pulse_repeater \ + dndesires:cog_crank \ + supplementaries:goblet \ humility-afm:cabinet_block_acacia_black humility-afm:cabinet_block_acacia_blue humility-afm:cabinet_block_acacia_brown humility-afm:cabinet_block_acacia_cyan humility-afm:cabinet_block_acacia_gray humility-afm:cabinet_block_acacia_green humility-afm:cabinet_block_acacia_light_blue humility-afm:cabinet_block_acacia_light_gray humility-afm:cabinet_block_acacia_lime humility-afm:cabinet_block_acacia_magenta humility-afm:cabinet_block_acacia_orange humility-afm:cabinet_block_acacia_pink humility-afm:cabinet_block_acacia_purple humility-afm:cabinet_block_acacia_red humility-afm:cabinet_block_acacia_white humility-afm:cabinet_block_acacia_yellow humility-afm:cabinet_block_bamboo_black humility-afm:cabinet_block_bamboo_blue humility-afm:cabinet_block_bamboo_brown humility-afm:cabinet_block_bamboo_cyan humility-afm:cabinet_block_bamboo_gray humility-afm:cabinet_block_bamboo_green humility-afm:cabinet_block_bamboo_light_blue humility-afm:cabinet_block_bamboo_light_gray humility-afm:cabinet_block_bamboo_lime humility-afm:cabinet_block_bamboo_magenta humility-afm:cabinet_block_bamboo_orange humility-afm:cabinet_block_bamboo_pink humility-afm:cabinet_block_bamboo_purple humility-afm:cabinet_block_bamboo_red humility-afm:cabinet_block_bamboo_white humility-afm:cabinet_block_bamboo_yellow humility-afm:cabinet_block_birch_black humility-afm:cabinet_block_birch_blue humility-afm:cabinet_block_birch_brown humility-afm:cabinet_block_birch_cyan humility-afm:cabinet_block_birch_gray humility-afm:cabinet_block_birch_green humility-afm:cabinet_block_birch_light_blue humility-afm:cabinet_block_birch_light_gray humility-afm:cabinet_block_birch_lime humility-afm:cabinet_block_birch_magenta humility-afm:cabinet_block_birch_orange humility-afm:cabinet_block_birch_pink humility-afm:cabinet_block_birch_purple humility-afm:cabinet_block_birch_red humility-afm:cabinet_block_birch_white humility-afm:cabinet_block_birch_yellow humility-afm:cabinet_block_cherry_black humility-afm:cabinet_block_cherry_blue humility-afm:cabinet_block_cherry_brown humility-afm:cabinet_block_cherry_cyan humility-afm:cabinet_block_cherry_gray humility-afm:cabinet_block_cherry_green humility-afm:cabinet_block_cherry_light_blue humility-afm:cabinet_block_cherry_light_gray humility-afm:cabinet_block_cherry_lime humility-afm:cabinet_block_cherry_magenta humility-afm:cabinet_block_cherry_orange humility-afm:cabinet_block_cherry_pink humility-afm:cabinet_block_cherry_purple humility-afm:cabinet_block_cherry_red humility-afm:cabinet_block_cherry_white humility-afm:cabinet_block_cherry_yellow humility-afm:cabinet_block_crimson_black humility-afm:cabinet_block_crimson_blue humility-afm:cabinet_block_crimson_brown humility-afm:cabinet_block_crimson_cyan humility-afm:cabinet_block_crimson_gray humility-afm:cabinet_block_crimson_green humility-afm:cabinet_block_crimson_light_blue humility-afm:cabinet_block_crimson_light_gray humility-afm:cabinet_block_crimson_lime humility-afm:cabinet_block_crimson_magenta humility-afm:cabinet_block_crimson_orange humility-afm:cabinet_block_crimson_pink humility-afm:cabinet_block_crimson_purple humility-afm:cabinet_block_crimson_red humility-afm:cabinet_block_crimson_white humility-afm:cabinet_block_crimson_yellow humility-afm:cabinet_block_dark_oak_black humility-afm:cabinet_block_dark_oak_blue humility-afm:cabinet_block_dark_oak_brown humility-afm:cabinet_block_dark_oak_cyan humility-afm:cabinet_block_dark_oak_gray humility-afm:cabinet_block_dark_oak_green humility-afm:cabinet_block_dark_oak_light_blue humility-afm:cabinet_block_dark_oak_light_gray humility-afm:cabinet_block_dark_oak_lime humility-afm:cabinet_block_dark_oak_magenta humility-afm:cabinet_block_dark_oak_orange humility-afm:cabinet_block_dark_oak_pink humility-afm:cabinet_block_dark_oak_purple humility-afm:cabinet_block_dark_oak_red humility-afm:cabinet_block_dark_oak_white humility-afm:cabinet_block_dark_oak_yellow humility-afm:cabinet_block_jungle_black humility-afm:cabinet_block_jungle_blue humility-afm:cabinet_block_jungle_brown humility-afm:cabinet_block_jungle_cyan humility-afm:cabinet_block_jungle_gray humility-afm:cabinet_block_jungle_green humility-afm:cabinet_block_jungle_light_blue humility-afm:cabinet_block_jungle_light_gray humility-afm:cabinet_block_jungle_lime humility-afm:cabinet_block_jungle_magenta humility-afm:cabinet_block_jungle_orange humility-afm:cabinet_block_jungle_pink humility-afm:cabinet_block_jungle_purple humility-afm:cabinet_block_jungle_red humility-afm:cabinet_block_jungle_white humility-afm:cabinet_block_jungle_yellow humility-afm:cabinet_block_mangrove_black humility-afm:cabinet_block_mangrove_blue humility-afm:cabinet_block_mangrove_brown humility-afm:cabinet_block_mangrove_cyan humility-afm:cabinet_block_mangrove_gray humility-afm:cabinet_block_mangrove_green humility-afm:cabinet_block_mangrove_light_blue humility-afm:cabinet_block_mangrove_light_gray humility-afm:cabinet_block_mangrove_lime humility-afm:cabinet_block_mangrove_magenta humility-afm:cabinet_block_mangrove_orange humility-afm:cabinet_block_mangrove_pink humility-afm:cabinet_block_mangrove_purple humility-afm:cabinet_block_mangrove_red humility-afm:cabinet_block_mangrove_white humility-afm:cabinet_block_mangrove_yellow humility-afm:cabinet_block_oak_black humility-afm:cabinet_block_oak_blue humility-afm:cabinet_block_oak_brown humility-afm:cabinet_block_oak_cyan humility-afm:cabinet_block_oak_gray humility-afm:cabinet_block_oak_green humility-afm:cabinet_block_oak_light_blue humility-afm:cabinet_block_oak_light_gray humility-afm:cabinet_block_oak_lime humility-afm:cabinet_block_oak_magenta humility-afm:cabinet_block_oak_orange humility-afm:cabinet_block_oak_pink humility-afm:cabinet_block_oak_purple humility-afm:cabinet_block_oak_red humility-afm:cabinet_block_oak_white humility-afm:cabinet_block_oak_yellow humility-afm:cabinet_block_pale_oak_black humility-afm:cabinet_block_pale_oak_blue humility-afm:cabinet_block_pale_oak_brown humility-afm:cabinet_block_pale_oak_cyan humility-afm:cabinet_block_pale_oak_gray humility-afm:cabinet_block_pale_oak_green humility-afm:cabinet_block_pale_oak_light_blue humility-afm:cabinet_block_pale_oak_light_gray humility-afm:cabinet_block_pale_oak_lime humility-afm:cabinet_block_pale_oak_magenta humility-afm:cabinet_block_pale_oak_orange humility-afm:cabinet_block_pale_oak_pink humility-afm:cabinet_block_pale_oak_purple humility-afm:cabinet_block_pale_oak_red humility-afm:cabinet_block_pale_oak_white humility-afm:cabinet_block_pale_oak_yellow humility-afm:cabinet_block_spruce_black humility-afm:cabinet_block_spruce_blue humility-afm:cabinet_block_spruce_brown humility-afm:cabinet_block_spruce_cyan humility-afm:cabinet_block_spruce_gray humility-afm:cabinet_block_spruce_green humility-afm:cabinet_block_spruce_light_blue humility-afm:cabinet_block_spruce_light_gray humility-afm:cabinet_block_spruce_lime humility-afm:cabinet_block_spruce_magenta humility-afm:cabinet_block_spruce_orange humility-afm:cabinet_block_spruce_pink humility-afm:cabinet_block_spruce_purple humility-afm:cabinet_block_spruce_red humility-afm:cabinet_block_spruce_white humility-afm:cabinet_block_spruce_yellow humility-afm:cabinet_block_warped_black humility-afm:cabinet_block_warped_blue humility-afm:cabinet_block_warped_brown humility-afm:cabinet_block_warped_cyan humility-afm:cabinet_block_warped_gray humility-afm:cabinet_block_warped_green humility-afm:cabinet_block_warped_light_blue humility-afm:cabinet_block_warped_light_gray humility-afm:cabinet_block_warped_lime humility-afm:cabinet_block_warped_magenta humility-afm:cabinet_block_warped_orange humility-afm:cabinet_block_warped_pink humility-afm:cabinet_block_warped_purple humility-afm:cabinet_block_warped_red humility-afm:cabinet_block_warped_white humility-afm:cabinet_block_warped_yellow humility-afm:cabinet_block_anchor_tree_black humility-afm:cabinet_block_anchor_tree_blue humility-afm:cabinet_block_anchor_tree_brown humility-afm:cabinet_block_anchor_tree_cyan humility-afm:cabinet_block_anchor_tree_gray humility-afm:cabinet_block_anchor_tree_green humility-afm:cabinet_block_anchor_tree_light_blue humility-afm:cabinet_block_anchor_tree_light_gray humility-afm:cabinet_block_anchor_tree_lime humility-afm:cabinet_block_anchor_tree_magenta humility-afm:cabinet_block_anchor_tree_orange humility-afm:cabinet_block_anchor_tree_pink humility-afm:cabinet_block_anchor_tree_purple humility-afm:cabinet_block_anchor_tree_red humility-afm:cabinet_block_anchor_tree_white humility-afm:cabinet_block_anchor_tree_yellow humility-afm:cabinet_block_mushroom_black humility-afm:cabinet_block_mushroom_blue humility-afm:cabinet_block_mushroom_brown humility-afm:cabinet_block_mushroom_cyan humility-afm:cabinet_block_mushroom_gray humility-afm:cabinet_block_mushroom_green humility-afm:cabinet_block_mushroom_light_blue humility-afm:cabinet_block_mushroom_light_gray humility-afm:cabinet_block_mushroom_lime humility-afm:cabinet_block_mushroom_magenta humility-afm:cabinet_block_mushroom_orange humility-afm:cabinet_block_mushroom_pink humility-afm:cabinet_block_mushroom_purple humility-afm:cabinet_block_mushroom_red humility-afm:cabinet_block_mushroom_white humility-afm:cabinet_block_mushroom_yellow humility-afm:cabinet_block_mushroom_fir_black humility-afm:cabinet_block_mushroom_fir_blue humility-afm:cabinet_block_mushroom_fir_brown humility-afm:cabinet_block_mushroom_fir_cyan humility-afm:cabinet_block_mushroom_fir_gray humility-afm:cabinet_block_mushroom_fir_green humility-afm:cabinet_block_mushroom_fir_light_blue humility-afm:cabinet_block_mushroom_fir_light_gray humility-afm:cabinet_block_mushroom_fir_lime humility-afm:cabinet_block_mushroom_fir_magenta humility-afm:cabinet_block_mushroom_fir_orange humility-afm:cabinet_block_mushroom_fir_pink humility-afm:cabinet_block_mushroom_fir_purple humility-afm:cabinet_block_mushroom_fir_red humility-afm:cabinet_block_mushroom_fir_white humility-afm:cabinet_block_mushroom_fir_yellow humility-afm:cabinet_block_nether_sakura_black humility-afm:cabinet_block_nether_sakura_blue humility-afm:cabinet_block_nether_sakura_brown humility-afm:cabinet_block_nether_sakura_cyan humility-afm:cabinet_block_nether_sakura_gray humility-afm:cabinet_block_nether_sakura_green humility-afm:cabinet_block_nether_sakura_light_blue humility-afm:cabinet_block_nether_sakura_light_gray humility-afm:cabinet_block_nether_sakura_lime humility-afm:cabinet_block_nether_sakura_magenta humility-afm:cabinet_block_nether_sakura_orange humility-afm:cabinet_block_nether_sakura_pink humility-afm:cabinet_block_nether_sakura_purple humility-afm:cabinet_block_nether_sakura_red humility-afm:cabinet_block_nether_sakura_white humility-afm:cabinet_block_nether_sakura_yellow humility-afm:cabinet_block_stalagnate_black humility-afm:cabinet_block_stalagnate_blue humility-afm:cabinet_block_stalagnate_brown humility-afm:cabinet_block_stalagnate_cyan humility-afm:cabinet_block_stalagnate_gray humility-afm:cabinet_block_stalagnate_green humility-afm:cabinet_block_stalagnate_light_blue humility-afm:cabinet_block_stalagnate_light_gray humility-afm:cabinet_block_stalagnate_lime humility-afm:cabinet_block_stalagnate_magenta humility-afm:cabinet_block_stalagnate_orange humility-afm:cabinet_block_stalagnate_pink humility-afm:cabinet_block_stalagnate_purple humility-afm:cabinet_block_stalagnate_red humility-afm:cabinet_block_stalagnate_white humility-afm:cabinet_block_stalagnate_yellow humility-afm:cabinet_block_wart_black humility-afm:cabinet_block_wart_blue humility-afm:cabinet_block_wart_brown humility-afm:cabinet_block_wart_cyan humility-afm:cabinet_block_wart_gray humility-afm:cabinet_block_wart_green humility-afm:cabinet_block_wart_light_blue humility-afm:cabinet_block_wart_light_gray humility-afm:cabinet_block_wart_lime humility-afm:cabinet_block_wart_magenta humility-afm:cabinet_block_wart_orange humility-afm:cabinet_block_wart_pink humility-afm:cabinet_block_wart_purple humility-afm:cabinet_block_wart_red humility-afm:cabinet_block_wart_white humility-afm:cabinet_block_wart_yellow humility-afm:cabinet_block_willow_black humility-afm:cabinet_block_willow_blue humility-afm:cabinet_block_willow_brown humility-afm:cabinet_block_willow_cyan humility-afm:cabinet_block_willow_gray humility-afm:cabinet_block_willow_green humility-afm:cabinet_block_willow_light_blue humility-afm:cabinet_block_willow_light_gray humility-afm:cabinet_block_willow_lime humility-afm:cabinet_block_willow_magenta humility-afm:cabinet_block_willow_orange humility-afm:cabinet_block_willow_pink humility-afm:cabinet_block_willow_purple humility-afm:cabinet_block_willow_red humility-afm:cabinet_block_willow_white humility-afm:cabinet_block_willow_yellow humility-afm:illuminated_cabinet_block_acacia_black humility-afm:illuminated_cabinet_block_acacia_blue humility-afm:illuminated_cabinet_block_acacia_brown humility-afm:illuminated_cabinet_block_acacia_cyan humility-afm:illuminated_cabinet_block_acacia_gray humility-afm:illuminated_cabinet_block_acacia_green humility-afm:illuminated_cabinet_block_acacia_light_blue humility-afm:illuminated_cabinet_block_acacia_light_gray humility-afm:illuminated_cabinet_block_acacia_lime humility-afm:illuminated_cabinet_block_acacia_magenta humility-afm:illuminated_cabinet_block_acacia_orange humility-afm:illuminated_cabinet_block_acacia_pink humility-afm:illuminated_cabinet_block_acacia_purple humility-afm:illuminated_cabinet_block_acacia_red humility-afm:illuminated_cabinet_block_acacia_white humility-afm:illuminated_cabinet_block_acacia_yellow humility-afm:illuminated_cabinet_block_bamboo_black humility-afm:illuminated_cabinet_block_bamboo_blue humility-afm:illuminated_cabinet_block_bamboo_brown humility-afm:illuminated_cabinet_block_bamboo_cyan humility-afm:illuminated_cabinet_block_bamboo_gray humility-afm:illuminated_cabinet_block_bamboo_green humility-afm:illuminated_cabinet_block_bamboo_light_blue humility-afm:illuminated_cabinet_block_bamboo_light_gray humility-afm:illuminated_cabinet_block_bamboo_lime humility-afm:illuminated_cabinet_block_bamboo_magenta humility-afm:illuminated_cabinet_block_bamboo_orange humility-afm:illuminated_cabinet_block_bamboo_pink humility-afm:illuminated_cabinet_block_bamboo_purple humility-afm:illuminated_cabinet_block_bamboo_red humility-afm:illuminated_cabinet_block_bamboo_white humility-afm:illuminated_cabinet_block_bamboo_yellow humility-afm:illuminated_cabinet_block_birch_black humility-afm:illuminated_cabinet_block_birch_blue humility-afm:illuminated_cabinet_block_birch_brown humility-afm:illuminated_cabinet_block_birch_cyan humility-afm:illuminated_cabinet_block_birch_gray humility-afm:illuminated_cabinet_block_birch_green humility-afm:illuminated_cabinet_block_birch_light_blue humility-afm:illuminated_cabinet_block_birch_light_gray humility-afm:illuminated_cabinet_block_birch_lime humility-afm:illuminated_cabinet_block_birch_magenta humility-afm:illuminated_cabinet_block_birch_orange humility-afm:illuminated_cabinet_block_birch_pink humility-afm:illuminated_cabinet_block_birch_purple humility-afm:illuminated_cabinet_block_birch_red humility-afm:illuminated_cabinet_block_birch_white humility-afm:illuminated_cabinet_block_birch_yellow humility-afm:illuminated_cabinet_block_cherry_black humility-afm:illuminated_cabinet_block_cherry_blue humility-afm:illuminated_cabinet_block_cherry_brown humility-afm:illuminated_cabinet_block_cherry_cyan humility-afm:illuminated_cabinet_block_cherry_gray humility-afm:illuminated_cabinet_block_cherry_green humility-afm:illuminated_cabinet_block_cherry_light_blue humility-afm:illuminated_cabinet_block_cherry_light_gray humility-afm:illuminated_cabinet_block_cherry_lime humility-afm:illuminated_cabinet_block_cherry_magenta humility-afm:illuminated_cabinet_block_cherry_orange humility-afm:illuminated_cabinet_block_cherry_pink humility-afm:illuminated_cabinet_block_cherry_purple humility-afm:illuminated_cabinet_block_cherry_red humility-afm:illuminated_cabinet_block_cherry_white humility-afm:illuminated_cabinet_block_cherry_yellow humility-afm:illuminated_cabinet_block_crimson_black humility-afm:illuminated_cabinet_block_crimson_blue humility-afm:illuminated_cabinet_block_crimson_brown humility-afm:illuminated_cabinet_block_crimson_cyan humility-afm:illuminated_cabinet_block_crimson_gray humility-afm:illuminated_cabinet_block_crimson_green humility-afm:illuminated_cabinet_block_crimson_light_blue humility-afm:illuminated_cabinet_block_crimson_light_gray humility-afm:illuminated_cabinet_block_crimson_lime humility-afm:illuminated_cabinet_block_crimson_magenta humility-afm:illuminated_cabinet_block_crimson_orange humility-afm:illuminated_cabinet_block_crimson_pink humility-afm:illuminated_cabinet_block_crimson_purple humility-afm:illuminated_cabinet_block_crimson_red humility-afm:illuminated_cabinet_block_crimson_white humility-afm:illuminated_cabinet_block_crimson_yellow humility-afm:illuminated_cabinet_block_dark_oak_black humility-afm:illuminated_cabinet_block_dark_oak_blue humility-afm:illuminated_cabinet_block_dark_oak_brown humility-afm:illuminated_cabinet_block_dark_oak_cyan humility-afm:illuminated_cabinet_block_dark_oak_gray humility-afm:illuminated_cabinet_block_dark_oak_green humility-afm:illuminated_cabinet_block_dark_oak_light_blue humility-afm:illuminated_cabinet_block_dark_oak_light_gray humility-afm:illuminated_cabinet_block_dark_oak_lime humility-afm:illuminated_cabinet_block_dark_oak_magenta humility-afm:illuminated_cabinet_block_dark_oak_orange humility-afm:illuminated_cabinet_block_dark_oak_pink humility-afm:illuminated_cabinet_block_dark_oak_purple humility-afm:illuminated_cabinet_block_dark_oak_red humility-afm:illuminated_cabinet_block_dark_oak_white humility-afm:illuminated_cabinet_block_dark_oak_yellow humility-afm:illuminated_cabinet_block_jungle_black humility-afm:illuminated_cabinet_block_jungle_blue humility-afm:illuminated_cabinet_block_jungle_brown humility-afm:illuminated_cabinet_block_jungle_cyan humility-afm:illuminated_cabinet_block_jungle_gray humility-afm:illuminated_cabinet_block_jungle_green humility-afm:illuminated_cabinet_block_jungle_light_blue humility-afm:illuminated_cabinet_block_jungle_light_gray humility-afm:illuminated_cabinet_block_jungle_lime humility-afm:illuminated_cabinet_block_jungle_magenta humility-afm:illuminated_cabinet_block_jungle_orange humility-afm:illuminated_cabinet_block_jungle_pink humility-afm:illuminated_cabinet_block_jungle_purple humility-afm:illuminated_cabinet_block_jungle_red humility-afm:illuminated_cabinet_block_jungle_white humility-afm:illuminated_cabinet_block_jungle_yellow humility-afm:illuminated_cabinet_block_mangrove_black humility-afm:illuminated_cabinet_block_mangrove_blue humility-afm:illuminated_cabinet_block_mangrove_brown humility-afm:illuminated_cabinet_block_mangrove_cyan humility-afm:illuminated_cabinet_block_mangrove_gray humility-afm:illuminated_cabinet_block_mangrove_green humility-afm:illuminated_cabinet_block_mangrove_light_blue humility-afm:illuminated_cabinet_block_mangrove_light_gray humility-afm:illuminated_cabinet_block_mangrove_lime humility-afm:illuminated_cabinet_block_mangrove_magenta humility-afm:illuminated_cabinet_block_mangrove_orange humility-afm:illuminated_cabinet_block_mangrove_pink humility-afm:illuminated_cabinet_block_mangrove_purple humility-afm:illuminated_cabinet_block_mangrove_red humility-afm:illuminated_cabinet_block_mangrove_white humility-afm:illuminated_cabinet_block_mangrove_yellow humility-afm:illuminated_cabinet_block_oak_black humility-afm:illuminated_cabinet_block_oak_blue humility-afm:illuminated_cabinet_block_oak_brown humility-afm:illuminated_cabinet_block_oak_cyan humility-afm:illuminated_cabinet_block_oak_gray humility-afm:illuminated_cabinet_block_oak_green humility-afm:illuminated_cabinet_block_oak_light_blue humility-afm:illuminated_cabinet_block_oak_light_gray humility-afm:illuminated_cabinet_block_oak_lime humility-afm:illuminated_cabinet_block_oak_magenta humility-afm:illuminated_cabinet_block_oak_orange humility-afm:illuminated_cabinet_block_oak_pink humility-afm:illuminated_cabinet_block_oak_purple humility-afm:illuminated_cabinet_block_oak_red humility-afm:illuminated_cabinet_block_oak_white humility-afm:illuminated_cabinet_block_oak_yellow humility-afm:illuminated_cabinet_block_pale_oak_black humility-afm:illuminated_cabinet_block_pale_oak_blue humility-afm:illuminated_cabinet_block_pale_oak_brown humility-afm:illuminated_cabinet_block_pale_oak_cyan humility-afm:illuminated_cabinet_block_pale_oak_gray humility-afm:illuminated_cabinet_block_pale_oak_green humility-afm:illuminated_cabinet_block_pale_oak_light_blue humility-afm:illuminated_cabinet_block_pale_oak_light_gray humility-afm:illuminated_cabinet_block_pale_oak_lime humility-afm:illuminated_cabinet_block_pale_oak_magenta humility-afm:illuminated_cabinet_block_pale_oak_orange humility-afm:illuminated_cabinet_block_pale_oak_pink humility-afm:illuminated_cabinet_block_pale_oak_purple humility-afm:illuminated_cabinet_block_pale_oak_red humility-afm:illuminated_cabinet_block_pale_oak_white humility-afm:illuminated_cabinet_block_pale_oak_yellow humility-afm:illuminated_cabinet_block_spruce_black humility-afm:illuminated_cabinet_block_spruce_blue humility-afm:illuminated_cabinet_block_spruce_brown humility-afm:illuminated_cabinet_block_spruce_cyan humility-afm:illuminated_cabinet_block_spruce_gray humility-afm:illuminated_cabinet_block_spruce_green humility-afm:illuminated_cabinet_block_spruce_light_blue humility-afm:illuminated_cabinet_block_spruce_light_gray humility-afm:illuminated_cabinet_block_spruce_lime humility-afm:illuminated_cabinet_block_spruce_magenta humility-afm:illuminated_cabinet_block_spruce_orange humility-afm:illuminated_cabinet_block_spruce_pink humility-afm:illuminated_cabinet_block_spruce_purple humility-afm:illuminated_cabinet_block_spruce_red humility-afm:illuminated_cabinet_block_spruce_white humility-afm:illuminated_cabinet_block_spruce_yellow humility-afm:illuminated_cabinet_block_warped_black humility-afm:illuminated_cabinet_block_warped_blue humility-afm:illuminated_cabinet_block_warped_brown humility-afm:illuminated_cabinet_block_warped_cyan humility-afm:illuminated_cabinet_block_warped_gray humility-afm:illuminated_cabinet_block_warped_green humility-afm:illuminated_cabinet_block_warped_light_blue humility-afm:illuminated_cabinet_block_warped_light_gray humility-afm:illuminated_cabinet_block_warped_lime humility-afm:illuminated_cabinet_block_warped_magenta humility-afm:illuminated_cabinet_block_warped_orange humility-afm:illuminated_cabinet_block_warped_pink humility-afm:illuminated_cabinet_block_warped_purple humility-afm:illuminated_cabinet_block_warped_red humility-afm:illuminated_cabinet_block_warped_white humility-afm:illuminated_cabinet_block_warped_yellow humility-afm:illuminated_cabinet_block_anchor_tree_black humility-afm:illuminated_cabinet_block_anchor_tree_blue humility-afm:illuminated_cabinet_block_anchor_tree_brown humility-afm:illuminated_cabinet_block_anchor_tree_cyan humility-afm:illuminated_cabinet_block_anchor_tree_gray humility-afm:illuminated_cabinet_block_anchor_tree_green humility-afm:illuminated_cabinet_block_anchor_tree_light_blue humility-afm:illuminated_cabinet_block_anchor_tree_light_gray humility-afm:illuminated_cabinet_block_anchor_tree_lime humility-afm:illuminated_cabinet_block_anchor_tree_magenta humility-afm:illuminated_cabinet_block_anchor_tree_orange humility-afm:illuminated_cabinet_block_anchor_tree_pink humility-afm:illuminated_cabinet_block_anchor_tree_purple humility-afm:illuminated_cabinet_block_anchor_tree_red humility-afm:illuminated_cabinet_block_anchor_tree_white humility-afm:illuminated_cabinet_block_anchor_tree_yellow humility-afm:illuminated_cabinet_block_mushroom_black humility-afm:illuminated_cabinet_block_mushroom_blue humility-afm:illuminated_cabinet_block_mushroom_brown humility-afm:illuminated_cabinet_block_mushroom_cyan humility-afm:illuminated_cabinet_block_mushroom_gray humility-afm:illuminated_cabinet_block_mushroom_green humility-afm:illuminated_cabinet_block_mushroom_light_blue humility-afm:illuminated_cabinet_block_mushroom_light_gray humility-afm:illuminated_cabinet_block_mushroom_lime humility-afm:illuminated_cabinet_block_mushroom_magenta humility-afm:illuminated_cabinet_block_mushroom_orange humility-afm:illuminated_cabinet_block_mushroom_pink humility-afm:illuminated_cabinet_block_mushroom_purple humility-afm:illuminated_cabinet_block_mushroom_red humility-afm:illuminated_cabinet_block_mushroom_white humility-afm:illuminated_cabinet_block_mushroom_yellow humility-afm:illuminated_cabinet_block_mushroom_fir_black humility-afm:illuminated_cabinet_block_mushroom_fir_blue humility-afm:illuminated_cabinet_block_mushroom_fir_brown humility-afm:illuminated_cabinet_block_mushroom_fir_cyan humility-afm:illuminated_cabinet_block_mushroom_fir_gray humility-afm:illuminated_cabinet_block_mushroom_fir_green humility-afm:illuminated_cabinet_block_mushroom_fir_light_blue humility-afm:illuminated_cabinet_block_mushroom_fir_light_gray humility-afm:illuminated_cabinet_block_mushroom_fir_lime humility-afm:illuminated_cabinet_block_mushroom_fir_magenta humility-afm:illuminated_cabinet_block_mushroom_fir_orange humility-afm:illuminated_cabinet_block_mushroom_fir_pink humility-afm:illuminated_cabinet_block_mushroom_fir_purple humility-afm:illuminated_cabinet_block_mushroom_fir_red humility-afm:illuminated_cabinet_block_mushroom_fir_white humility-afm:illuminated_cabinet_block_mushroom_fir_yellow humility-afm:illuminated_cabinet_block_nether_sakura_black humility-afm:illuminated_cabinet_block_nether_sakura_blue humility-afm:illuminated_cabinet_block_nether_sakura_brown humility-afm:illuminated_cabinet_block_nether_sakura_cyan humility-afm:illuminated_cabinet_block_nether_sakura_gray humility-afm:illuminated_cabinet_block_nether_sakura_green humility-afm:illuminated_cabinet_block_nether_sakura_light_blue humility-afm:illuminated_cabinet_block_nether_sakura_light_gray humility-afm:illuminated_cabinet_block_nether_sakura_lime humility-afm:illuminated_cabinet_block_nether_sakura_magenta humility-afm:illuminated_cabinet_block_nether_sakura_orange humility-afm:illuminated_cabinet_block_nether_sakura_pink humility-afm:illuminated_cabinet_block_nether_sakura_purple humility-afm:illuminated_cabinet_block_nether_sakura_red humility-afm:illuminated_cabinet_block_nether_sakura_white humility-afm:illuminated_cabinet_block_nether_sakura_yellow humility-afm:illuminated_cabinet_block_stalagnate_black humility-afm:illuminated_cabinet_block_stalagnate_blue humility-afm:illuminated_cabinet_block_stalagnate_brown humility-afm:illuminated_cabinet_block_stalagnate_cyan humility-afm:illuminated_cabinet_block_stalagnate_gray humility-afm:illuminated_cabinet_block_stalagnate_green humility-afm:illuminated_cabinet_block_stalagnate_light_blue humility-afm:illuminated_cabinet_block_stalagnate_light_gray humility-afm:illuminated_cabinet_block_stalagnate_lime humility-afm:illuminated_cabinet_block_stalagnate_magenta humility-afm:illuminated_cabinet_block_stalagnate_orange humility-afm:illuminated_cabinet_block_stalagnate_pink humility-afm:illuminated_cabinet_block_stalagnate_purple humility-afm:illuminated_cabinet_block_stalagnate_red humility-afm:illuminated_cabinet_block_stalagnate_white humility-afm:illuminated_cabinet_block_stalagnate_yellow humility-afm:illuminated_cabinet_block_wart_black humility-afm:illuminated_cabinet_block_wart_blue humility-afm:illuminated_cabinet_block_wart_brown humility-afm:illuminated_cabinet_block_wart_cyan humility-afm:illuminated_cabinet_block_wart_gray humility-afm:illuminated_cabinet_block_wart_green humility-afm:illuminated_cabinet_block_wart_light_blue humility-afm:illuminated_cabinet_block_wart_light_gray humility-afm:illuminated_cabinet_block_wart_lime humility-afm:illuminated_cabinet_block_wart_magenta humility-afm:illuminated_cabinet_block_wart_orange humility-afm:illuminated_cabinet_block_wart_pink humility-afm:illuminated_cabinet_block_wart_purple humility-afm:illuminated_cabinet_block_wart_red humility-afm:illuminated_cabinet_block_wart_white humility-afm:illuminated_cabinet_block_wart_yellow humility-afm:illuminated_cabinet_block_willow_black humility-afm:illuminated_cabinet_block_willow_blue humility-afm:illuminated_cabinet_block_willow_brown humility-afm:illuminated_cabinet_block_willow_cyan humility-afm:illuminated_cabinet_block_willow_gray humility-afm:illuminated_cabinet_block_willow_green humility-afm:illuminated_cabinet_block_willow_light_blue humility-afm:illuminated_cabinet_block_willow_light_gray humility-afm:illuminated_cabinet_block_willow_lime humility-afm:illuminated_cabinet_block_willow_magenta humility-afm:illuminated_cabinet_block_willow_orange humility-afm:illuminated_cabinet_block_willow_pink humility-afm:illuminated_cabinet_block_willow_purple humility-afm:illuminated_cabinet_block_willow_red humility-afm:illuminated_cabinet_block_willow_white humility-afm:illuminated_cabinet_block_willow_yellow # Blocks that occlude 50% of light block.52=iron_bars pointed_dripstone \ another_furniture:oak_table another_furniture:spruce_table another_furniture:birch_table another_furniture:jungle_table another_furniture:acacia_table another_furniture:dark_oak_table another_furniture:mangrove_table another_furniture:cherry_table another_furniture:bamboo_table another_furniture:crimson_table another_furniture:warped_table \ - create:schematic_table \ + create:andesite_funnel create:brass_funnel create:packager create:repackager create:cart_assembler create:stressometer create:speedometer create:turntable create:belt create:mechanical_harvester create:mechanical_plough create:schematic_table create:item_hatch create:large_cogwheel dndesires:large_cog_crank create:fluid_pipe create:mechanical_pump create:smart_fluid_pipe create:copper_valve_handle create:fluid_valve create:gantry_shaft \ diagonalwalls:minecraft/cobblestone_wall:north_east=true diagonalwalls:minecraft/andesite_wall:north_east=true diagonalwalls:minecraft/blackstone_wall:north_east=true diagonalwalls:minecraft/brick_wall:north_east=true diagonalwalls:minecraft/cobbled_deepslate_wall:north_east=true diagonalwalls:minecraft/deepslate_brick_wall:north_east=true diagonalwalls:minecraft/deepslate_tile_wall:north_east=true diagonalwalls:minecraft/diorite_wall:north_east=true diagonalwalls:minecraft/end_stone_brick_wall:north_east=true diagonalwalls:minecraft/granite_wall:north_east=true diagonalwalls:minecraft/mossy_cobblestone_wall:north_east=true diagonalwalls:minecraft/mossy_stone_brick_wall:north_east=true diagonalwalls:minecraft/mud_brick_wall:north_east=true diagonalwalls:minecraft/nether_brick_wall:north_east=true diagonalwalls:minecraft/polished_blackstone_brick_wall:north_east=true diagonalwalls:minecraft/polished_blackstone_wall:north_east=true diagonalwalls:minecraft/polished_deepslate_wall:north_east=true diagonalwalls:minecraft/prismarine_wall:north_east=true diagonalwalls:minecraft/red_nether_brick_wall:north_east=true diagonalwalls:minecraft/red_sandstone_wall:north_east=true diagonalwalls:minecraft/sandstone_wall:north_east=true diagonalwalls:minecraft/stone_brick_wall:north_east=true diagonalwalls:create/cut_andesite_wall:north_east=true diagonalwalls:create/polished_cut_andesite_wall:north_east=true diagonalwalls:create/cut_andesite_brick_wall:north_east=true diagonalwalls:create/small_andesite_brick_wall:north_east=true diagonalwalls:create/cut_asurine_wall:north_east=true diagonalwalls:create/polished_cut_asurine_wall:north_east=true diagonalwalls:create/cut_asurine_brick_wall:north_east=true diagonalwalls:create/small_asurine_brick_wall:north_east=true diagonalwalls:create/cut_calcite_wall:north_east=true diagonalwalls:create/polished_cut_calcite_wall:north_east=true diagonalwalls:create/cut_calcite_brick_wall:north_east=true diagonalwalls:create/small_calcite_brick_wall:north_east=true diagonalwalls:create/cut_crimsite_wall:north_east=true diagonalwalls:create/polished_cut_crimsite_wall:north_east=true diagonalwalls:create/cut_crimsite_brick_wall:north_east=true diagonalwalls:create/small_crimsite_brick_wall:north_east=true diagonalwalls:create/cut_deepslate_wall:north_east=true diagonalwalls:create/polished_cut_deepslate_wall:north_east=true diagonalwalls:create/cut_deepslate_brick_wall:north_east=true diagonalwalls:create/small_deepslate_brick_wall:north_east=true diagonalwalls:create/cut_diorite_wall:north_east=true diagonalwalls:create/polished_cut_diorite_wall:north_east=true diagonalwalls:create/cut_diorite_brick_wall:north_east=true diagonalwalls:create/small_diorite_brick_wall:north_east=true diagonalwalls:create/cut_dripstone_wall:north_east=true diagonalwalls:create/polished_cut_dripstone_wall:north_east=true diagonalwalls:create/cut_dripstone_brick_wall:north_east=true diagonalwalls:create/small_dripstone_brick_wall:north_east=true diagonalwalls:create/cut_granite_wall:north_east=true diagonalwalls:create/polished_cut_granite_wall:north_east=true diagonalwalls:create/cut_granite_brick_wall:north_east=true diagonalwalls:create/small_granite_brick_wall:north_east=true diagonalwalls:create/cut_limestone_wall:north_east=true diagonalwalls:create/polished_cut_limestone_wall:north_east=true diagonalwalls:create/cut_limestone_brick_wall:north_east=true diagonalwalls:create/small_limestone_brick_wall:north_east=true diagonalwalls:create/cut_ochrum_wall:north_east=true diagonalwalls:create/polished_cut_ochrum_wall:north_east=true diagonalwalls:create/cut_ochrum_brick_wall:north_east=true diagonalwalls:create/small_ochrum_brick_wall:north_east=true diagonalwalls:create/cut_scorchia_wall:north_east=true diagonalwalls:create/polished_cut_scorchia_wall:north_east=true diagonalwalls:create/cut_scorchia_brick_wall:north_east=true diagonalwalls:create/small_scorchia_brick_wall:north_east=true diagonalwalls:create/cut_scoria_wall:north_east=true diagonalwalls:create/polished_cut_scoria_wall:north_east=true diagonalwalls:create/cut_scoria_brick_wall:north_east=true diagonalwalls:create/small_scoria_brick_wall:north_east=true diagonalwalls:create/cut_tuff_wall:north_east=true diagonalwalls:create/polished_cut_tuff_wall:north_east=true diagonalwalls:create/cut_tuff_brick_wall:north_east=true diagonalwalls:create/small_tuff_brick_wall:north_east=true diagonalwalls:create/cut_veridium_wall:north_east=true diagonalwalls:create/polished_cut_veridium_wall:north_east=true diagonalwalls:create/cut_veridium_brick_wall:north_east=true diagonalwalls:create/small_veridium_brick_wall:north_east=true diagonalwalls:minecraft/cobblestone_wall:north_east=false:north_west=true diagonalwalls:minecraft/andesite_wall:north_east=false:north_west=true diagonalwalls:minecraft/blackstone_wall:north_east=false:north_west=true diagonalwalls:minecraft/brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/cobbled_deepslate_wall:north_east=false:north_west=true diagonalwalls:minecraft/deepslate_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/deepslate_tile_wall:north_east=false:north_west=true diagonalwalls:minecraft/diorite_wall:north_east=false:north_west=true diagonalwalls:minecraft/end_stone_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/granite_wall:north_east=false:north_west=true diagonalwalls:minecraft/mossy_cobblestone_wall:north_east=false:north_west=true diagonalwalls:minecraft/mossy_stone_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/mud_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/nether_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/polished_blackstone_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/polished_blackstone_wall:north_east=false:north_west=true diagonalwalls:minecraft/polished_deepslate_wall:north_east=false:north_west=true diagonalwalls:minecraft/prismarine_wall:north_east=false:north_west=true diagonalwalls:minecraft/red_nether_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/red_sandstone_wall:north_east=false:north_west=true diagonalwalls:minecraft/sandstone_wall:north_east=false:north_west=true diagonalwalls:minecraft/stone_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_andesite_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_andesite_wall:north_east=false:north_west=true diagonalwalls:create/cut_andesite_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_andesite_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_asurine_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_asurine_wall:north_east=false:north_west=true diagonalwalls:create/cut_asurine_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_asurine_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_calcite_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_calcite_wall:north_east=false:north_west=true diagonalwalls:create/cut_calcite_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_calcite_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_crimsite_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_crimsite_wall:north_east=false:north_west=true diagonalwalls:create/cut_crimsite_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_crimsite_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_deepslate_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_deepslate_wall:north_east=false:north_west=true diagonalwalls:create/cut_deepslate_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_deepslate_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_diorite_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_diorite_wall:north_east=false:north_west=true diagonalwalls:create/cut_diorite_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_diorite_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_dripstone_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_dripstone_wall:north_east=false:north_west=true diagonalwalls:create/cut_dripstone_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_dripstone_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_granite_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_granite_wall:north_east=false:north_west=true diagonalwalls:create/cut_granite_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_granite_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_limestone_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_limestone_wall:north_east=false:north_west=true diagonalwalls:create/cut_limestone_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_limestone_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_ochrum_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_ochrum_wall:north_east=false:north_west=true diagonalwalls:create/cut_ochrum_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_ochrum_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_scorchia_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_scorchia_wall:north_east=false:north_west=true diagonalwalls:create/cut_scorchia_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_scorchia_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_scoria_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_scoria_wall:north_east=false:north_west=true diagonalwalls:create/cut_scoria_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_scoria_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_tuff_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_tuff_wall:north_east=false:north_west=true diagonalwalls:create/cut_tuff_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_tuff_brick_wall:north_east=false:north_west=true diagonalwalls:create/cut_veridium_wall:north_east=false:north_west=true diagonalwalls:create/polished_cut_veridium_wall:north_east=false:north_west=true diagonalwalls:create/cut_veridium_brick_wall:north_east=false:north_west=true diagonalwalls:create/small_veridium_brick_wall:north_east=false:north_west=true diagonalwalls:minecraft/cobblestone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/andesite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/blackstone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/cobbled_deepslate_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/deepslate_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/deepslate_tile_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/diorite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/end_stone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/granite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/mossy_cobblestone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/mossy_stone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/mud_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/nether_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/polished_blackstone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/polished_blackstone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/polished_deepslate_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/prismarine_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/red_nether_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/red_sandstone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/sandstone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/stone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_andesite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_andesite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_andesite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_andesite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_asurine_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_asurine_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_asurine_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_asurine_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_calcite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_calcite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_calcite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_calcite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_crimsite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_crimsite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_crimsite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_crimsite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_deepslate_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_deepslate_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_deepslate_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_deepslate_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_diorite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_diorite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_diorite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_diorite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_dripstone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_dripstone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_dripstone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_dripstone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_granite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_granite_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_granite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_granite_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_limestone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_limestone_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_limestone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_limestone_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_ochrum_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_ochrum_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_ochrum_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_ochrum_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_scorchia_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_scorchia_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_scorchia_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_scorchia_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_scoria_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_scoria_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_scoria_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_scoria_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_tuff_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_tuff_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_tuff_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_tuff_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_veridium_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/polished_cut_veridium_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/cut_veridium_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:create/small_veridium_brick_wall:north_east=false:north_west=false:south_east=true diagonalwalls:minecraft/cobblestone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/andesite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/blackstone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/cobbled_deepslate_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/deepslate_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/deepslate_tile_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/diorite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/end_stone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/granite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/mossy_cobblestone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/mossy_stone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/mud_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/nether_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/polished_blackstone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/polished_blackstone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/polished_deepslate_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/prismarine_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/red_nether_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/red_sandstone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/sandstone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:minecraft/stone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_andesite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_andesite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_andesite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_andesite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_asurine_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_asurine_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_asurine_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_asurine_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_calcite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_calcite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_calcite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_calcite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_crimsite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_crimsite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_crimsite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_crimsite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_deepslate_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_deepslate_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_deepslate_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_deepslate_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_diorite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_diorite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_diorite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_diorite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_dripstone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_dripstone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_dripstone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_dripstone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_granite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_granite_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_granite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_granite_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_limestone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_limestone_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_limestone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_limestone_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_ochrum_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_ochrum_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_ochrum_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_ochrum_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_scorchia_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_scorchia_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_scorchia_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_scorchia_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_scoria_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_scoria_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_scoria_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_scoria_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_tuff_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_tuff_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_tuff_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_tuff_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_veridium_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/polished_cut_veridium_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/cut_veridium_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true diagonalwalls:create/small_veridium_brick_wall:north_east=false:north_west=false:south_east=false:south_west=true \ diagonalwindows:minecraft/iron_bars \ meadow:table meadow:stone_table \ + supplementaries:urn \ refurbished_furniture:acacia_table refurbished_furniture:bamboo_table refurbished_furniture:birch_table refurbished_furniture:cherry_table refurbished_furniture:crimson_table refurbished_furniture:dark_oak_table refurbished_furniture:jungle_table refurbished_furniture:mangrove_table refurbished_furniture:oak_table refurbished_furniture:pale_oak_table refurbished_furniture:spruce_table refurbished_furniture:warped_table \ valhelsia_furniture:acacia_table valhelsia_furniture:bamboo_table valhelsia_furniture:birch_table valhelsia_furniture:cherry_table valhelsia_furniture:crimson_table valhelsia_furniture:dark_oak_table valhelsia_furniture:jungle_table valhelsia_furniture:mangrove_table valhelsia_furniture:oak_table valhelsia_furniture:pale_oak_table valhelsia_furniture:spruce_table valhelsia_furniture:warped_table valhelsia_furniture:black_acacia_table valhelsia_furniture:black_bamboo_table valhelsia_furniture:black_birch_table valhelsia_furniture:black_cherry_table valhelsia_furniture:black_crimson_table valhelsia_furniture:black_dark_oak_table valhelsia_furniture:black_jungle_table valhelsia_furniture:black_mangrove_table valhelsia_furniture:black_oak_table valhelsia_furniture:black_pale_oak_table valhelsia_furniture:black_spruce_table valhelsia_furniture:black_warped_table valhelsia_furniture:blue_acacia_table valhelsia_furniture:blue_bamboo_table valhelsia_furniture:blue_birch_table valhelsia_furniture:blue_cherry_table valhelsia_furniture:blue_crimson_table valhelsia_furniture:blue_dark_oak_table valhelsia_furniture:blue_jungle_table valhelsia_furniture:blue_mangrove_table valhelsia_furniture:blue_oak_table valhelsia_furniture:blue_pale_oak_table valhelsia_furniture:blue_spruce_table valhelsia_furniture:blue_warped_table valhelsia_furniture:brown_acacia_table valhelsia_furniture:brown_bamboo_table valhelsia_furniture:brown_birch_table valhelsia_furniture:brown_cherry_table valhelsia_furniture:brown_crimson_table valhelsia_furniture:brown_dark_oak_table valhelsia_furniture:brown_jungle_table valhelsia_furniture:brown_mangrove_table valhelsia_furniture:brown_oak_table valhelsia_furniture:brown_pale_oak_table valhelsia_furniture:brown_spruce_table valhelsia_furniture:brown_warped_table valhelsia_furniture:cyan_acacia_table valhelsia_furniture:cyan_bamboo_table valhelsia_furniture:cyan_birch_table valhelsia_furniture:cyan_cherry_table valhelsia_furniture:cyan_crimson_table valhelsia_furniture:cyan_dark_oak_table valhelsia_furniture:cyan_jungle_table valhelsia_furniture:cyan_mangrove_table valhelsia_furniture:cyan_oak_table valhelsia_furniture:cyan_pale_oak_table valhelsia_furniture:cyan_spruce_table valhelsia_furniture:cyan_warped_table valhelsia_furniture:gray_acacia_table valhelsia_furniture:gray_bamboo_table valhelsia_furniture:gray_birch_table valhelsia_furniture:gray_cherry_table valhelsia_furniture:gray_crimson_table valhelsia_furniture:gray_dark_oak_table valhelsia_furniture:gray_jungle_table valhelsia_furniture:gray_mangrove_table valhelsia_furniture:gray_oak_table valhelsia_furniture:gray_pale_oak_table valhelsia_furniture:gray_spruce_table valhelsia_furniture:gray_warped_table valhelsia_furniture:green_acacia_table valhelsia_furniture:green_bamboo_table valhelsia_furniture:green_birch_table valhelsia_furniture:green_cherry_table valhelsia_furniture:green_crimson_table valhelsia_furniture:green_dark_oak_table valhelsia_furniture:green_jungle_table valhelsia_furniture:green_mangrove_table valhelsia_furniture:green_oak_table valhelsia_furniture:green_pale_oak_table valhelsia_furniture:green_spruce_table valhelsia_furniture:green_warped_table valhelsia_furniture:light_blue_acacia_table valhelsia_furniture:light_blue_bamboo_table valhelsia_furniture:light_blue_birch_table valhelsia_furniture:light_blue_cherry_table valhelsia_furniture:light_blue_crimson_table valhelsia_furniture:light_blue_dark_oak_table valhelsia_furniture:light_blue_jungle_table valhelsia_furniture:light_blue_mangrove_table valhelsia_furniture:light_blue_oak_table valhelsia_furniture:light_blue_pale_oak_table valhelsia_furniture:light_blue_spruce_table valhelsia_furniture:light_blue_warped_table valhelsia_furniture:light_gray_acacia_table valhelsia_furniture:light_gray_bamboo_table valhelsia_furniture:light_gray_birch_table valhelsia_furniture:light_gray_cherry_table valhelsia_furniture:light_gray_crimson_table valhelsia_furniture:light_gray_dark_oak_table valhelsia_furniture:light_gray_jungle_table valhelsia_furniture:light_gray_mangrove_table valhelsia_furniture:light_gray_oak_table valhelsia_furniture:light_gray_pale_oak_table valhelsia_furniture:light_gray_spruce_table valhelsia_furniture:light_gray_warped_table valhelsia_furniture:lime_acacia_table valhelsia_furniture:lime_bamboo_table valhelsia_furniture:lime_birch_table valhelsia_furniture:lime_cherry_table valhelsia_furniture:lime_crimson_table valhelsia_furniture:lime_dark_oak_table valhelsia_furniture:lime_jungle_table valhelsia_furniture:lime_mangrove_table valhelsia_furniture:lime_oak_table valhelsia_furniture:lime_pale_oak_table valhelsia_furniture:lime_spruce_table valhelsia_furniture:lime_warped_table valhelsia_furniture:magenta_acacia_table valhelsia_furniture:magenta_bamboo_table valhelsia_furniture:magenta_birch_table valhelsia_furniture:magenta_cherry_table valhelsia_furniture:magenta_crimson_table valhelsia_furniture:magenta_dark_oak_table valhelsia_furniture:magenta_jungle_table valhelsia_furniture:magenta_mangrove_table valhelsia_furniture:magenta_oak_table valhelsia_furniture:magenta_pale_oak_table valhelsia_furniture:magenta_spruce_table valhelsia_furniture:magenta_warped_table valhelsia_furniture:orange_acacia_table valhelsia_furniture:orange_bamboo_table valhelsia_furniture:orange_birch_table valhelsia_furniture:orange_cherry_table valhelsia_furniture:orange_crimson_table valhelsia_furniture:orange_dark_oak_table valhelsia_furniture:orange_jungle_table valhelsia_furniture:orange_mangrove_table valhelsia_furniture:orange_oak_table valhelsia_furniture:orange_pale_oak_table valhelsia_furniture:orange_spruce_table valhelsia_furniture:orange_warped_table valhelsia_furniture:pink_acacia_table valhelsia_furniture:pink_bamboo_table valhelsia_furniture:pink_birch_table valhelsia_furniture:pink_cherry_table valhelsia_furniture:pink_crimson_table valhelsia_furniture:pink_dark_oak_table valhelsia_furniture:pink_jungle_table valhelsia_furniture:pink_mangrove_table valhelsia_furniture:pink_oak_table valhelsia_furniture:pink_pale_oak_table valhelsia_furniture:pink_spruce_table valhelsia_furniture:pink_warped_table valhelsia_furniture:purple_acacia_table valhelsia_furniture:purple_bamboo_table valhelsia_furniture:purple_birch_table valhelsia_furniture:purple_cherry_table valhelsia_furniture:purple_crimson_table valhelsia_furniture:purple_dark_oak_table valhelsia_furniture:purple_jungle_table valhelsia_furniture:purple_mangrove_table valhelsia_furniture:purple_oak_table valhelsia_furniture:purple_pale_oak_table valhelsia_furniture:purple_spruce_table valhelsia_furniture:purple_warped_table valhelsia_furniture:red_acacia_table valhelsia_furniture:red_bamboo_table valhelsia_furniture:red_birch_table valhelsia_furniture:red_cherry_table valhelsia_furniture:red_crimson_table valhelsia_furniture:red_dark_oak_table valhelsia_furniture:red_jungle_table valhelsia_furniture:red_mangrove_table valhelsia_furniture:red_oak_table valhelsia_furniture:red_pale_oak_table valhelsia_furniture:red_spruce_table valhelsia_furniture:red_warped_table valhelsia_furniture:white_acacia_table valhelsia_furniture:white_bamboo_table valhelsia_furniture:white_birch_table valhelsia_furniture:white_cherry_table valhelsia_furniture:white_crimson_table valhelsia_furniture:white_dark_oak_table valhelsia_furniture:white_jungle_table valhelsia_furniture:white_mangrove_table valhelsia_furniture:white_oak_table valhelsia_furniture:white_pale_oak_table valhelsia_furniture:white_spruce_table valhelsia_furniture:white_warped_table valhelsia_furniture:yellow_acacia_table valhelsia_furniture:yellow_bamboo_table valhelsia_furniture:yellow_birch_table valhelsia_furniture:yellow_cherry_table valhelsia_furniture:yellow_crimson_table valhelsia_furniture:yellow_dark_oak_table valhelsia_furniture:yellow_jungle_table valhelsia_furniture:yellow_mangrove_table valhelsia_furniture:yellow_oak_table valhelsia_furniture:yellow_pale_oak_table valhelsia_furniture:yellow_spruce_table valhelsia_furniture:yellow_warped_table \ vinery:dark_cherry_table # Blocks that occlude 75% of light -block.53=bell mangrove_roots copper_grate exposed_copper_grate weathered_copper_grate oxidized_copper_grate waxed_copper_grate waxed_exposed_copper_grate waxed_weathered_copper_grate waxed_oxidized_copper_grate \ - vinery:dark_cherry_big_table +block.53=hopper bell mangrove_roots copper_grate exposed_copper_grate weathered_copper_grate oxidized_copper_grate waxed_copper_grate waxed_exposed_copper_grate waxed_weathered_copper_grate waxed_oxidized_copper_grate \ + vinery:dark_cherry_big_table \ + create:creative_motor create:display_board create:contraption_controls create:sticker create:andesite_tunnel create:brass_tunnel create:controls create:rope_pulley create:elevator_pulley create:cuckoo_clock create:encased_fan create:nozzle create:fluid_tank create:peculiar_bell create:haunted_bell create:desk_bell create:weighted_ejector create:hose_pulley create:chute \ + bellsandwhistles:station_platform \ + dndesires:industrial_fan ####### ----- waving blocks with SSS ----- ####### @@ -535,35 +543,50 @@ block.218=redstone_ore:lit=true block.219=redstone_torch:lit=true redstone_wall_torch:lit=true -block.220=redstone_wire:power=1 +block.220=redstone_wire:power=1 \ + create:controller_rail:power=1 -block.221=redstone_wire:power=2 +block.221=redstone_wire:power=2 \ + create:controller_rail:power=2 -block.222=redstone_wire:power=3 +block.222=redstone_wire:power=3 \ + create:controller_rail:power=3 -block.223=redstone_wire:power=4 +block.223=redstone_wire:power=4 \ + create:controller_rail:power=4 -block.224=redstone_wire:power=5 +block.224=redstone_wire:power=5 \ + create:controller_rail:power=5 -block.225=redstone_wire:power=6 +block.225=redstone_wire:power=6 \ + create:controller_rail:power=6 -block.226=redstone_wire:power=7 +block.226=redstone_wire:power=7 \ + create:controller_rail:power=7 -block.227=redstone_wire:power=8 +block.227=redstone_wire:power=8 \ + create:controller_rail:power=8 -block.228=redstone_wire:power=9 +block.228=redstone_wire:power=9 \ + create:controller_rail:power=9 -block.229=redstone_wire:power=10 +block.229=redstone_wire:power=10 \ + create:controller_rail:power=10 -block.230=redstone_wire:power=11 +block.230=redstone_wire:power=11 \ + create:controller_rail:power=11 -block.231=redstone_wire:power=12 +block.231=redstone_wire:power=12 \ + create:controller_rail:power=12 -block.232=redstone_wire:power=13 +block.232=redstone_wire:power=13 \ + create:controller_rail:power=13 -block.233=redstone_wire:power=14 +block.233=redstone_wire:power=14 \ + create:controller_rail:power=14 -block.234=redstone_wire:power=15 +block.234=redstone_wire:power=15 \ + create:controller_rail:power=15 block.235=repeater:powered=true diff --git a/shaders/colorwheel.properties b/shaders/colorwheel.properties new file mode 100644 index 0000000..24a21c8 --- /dev/null +++ b/shaders/colorwheel.properties @@ -0,0 +1,25 @@ +blend.clrwl_gbuffers_translucent = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE +blend.clrwl_gbuffers_translucent.colortex11 = off +blend.clrwl_gbuffers_glint = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE +blend.clrwl_gbuffers_damagedblock = off +blend.clrwl_shadow = SRC_COLOR ZERO ONE ZERO + +oit = true + +oit.gbuffers.coefficientRanks = 3,3 + +oit.gbuffers.colortex2 = 0 +oit.gbuffers.colortex2.format = RGBA16F + +oit.gbuffers.colortex7 = 1 +oit.gbuffers.colortex7.format = RGBA16F + +oit.gbuffers.colortex11 = frontmost +oit.gbuffers.colortex11.format = RGBA16 + +oit.gbuffers.colortex14 = frontmost +oit.gbuffers.colortex14.format = RGBA16 + +#ifndef RENDER_ENTITY_SHADOWS + shadow.enabled = false +#endif \ No newline at end of file diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 7baedbe..8c7787f 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -1,3 +1,18 @@ +#ifdef IS_LPV_ENABLED + #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable +#endif + +#if defined DAMAGE_BLOCK_EFFECT && defined POM + #extension GL_ARB_shader_texture_lod : enable +#endif + +#if defined CUMULONIMBUS_LIGHTNING && CUMULONIMBUS > 0 && defined OVERWORLD_SHADER && defined COLORWHEEL + #extension GL_NV_gpu_shader5 : enable + #extension GL_ARB_shader_image_load_store : enable + #extension GL_EXT_shader_image_load_store : enable +#endif + #include "/lib/settings.glsl" #if defined CUSTOM_MOON_ROTATION || defined END_ISLAND_LIGHT @@ -8,11 +23,6 @@ // #undef IS_LPV_ENABLED // #endif -#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" varying vec4 lmtexcoord; @@ -210,9 +220,7 @@ float ComputeShadowMap(inout vec3 directLightColor, vec3 playerPos, float maxDis } #endif -#if defined DAMAGE_BLOCK_EFFECT && defined POM - #extension GL_ARB_shader_texture_lod : enable - +#if defined DAMAGE_BLOCK_EFFECT && defined POM mat3 inverseMatrix(mat3 m) { float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2]; float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2]; @@ -362,6 +370,15 @@ void main() { #else vec4 Albedo = texture2D(texture, adjustedTexCoord.xy); #endif + + #ifdef COLORWHEEL + float ao; + vec4 overlayColor; + vec2 lmcoord = lmtexcoord.zw; + + clrwl_computeFragment(Albedo, Albedo, lmcoord, ao, overlayColor); + Albedo.rgb = mix(Albedo.rgb, overlayColor.rgb, clamp(overlayColor.a*1.5,0,1)); + #endif Albedo.rgb = toLinear(Albedo.rgb); diff --git a/shaders/dimensions/all_solid.fsh b/shaders/dimensions/all_solid.fsh index f5deda2..532bb12 100644 --- a/shaders/dimensions/all_solid.fsh +++ b/shaders/dimensions/all_solid.fsh @@ -22,8 +22,9 @@ flat in int NameTags; #define MC_NORMAL_MAP #endif - -in float VanillaAO; +#ifndef COLORWHEEL + in float VanillaAO; +#endif const float mincoord = 1.0/4096.0; const float maxcoord = 1.0-mincoord; @@ -361,44 +362,9 @@ void main() { vec3 playerpos = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; vec3 worldpos = playerpos + cameraPosition; - float torchlightmap = lmtexcoord.z; - - #if defined Hand_Held_lights && !defined LPV_ENABLED - #ifdef IS_IRIS - vec3 playerCamPos = cameraPosition - relativeEyePosition; - #else - vec3 playerCamPos = cameraPosition; - #endif - - #ifdef VIVECRAFT - if (vivecraftIsVR) { - playerCamPos = cameraPosition - vivecraftRelativeMainHandPos; - } - #endif - - float HELD_ITEM_BRIGHTNESS = 0.0; - if(heldItemId > 999 || heldItemId2 > 999 ) HELD_ITEM_BRIGHTNESS = 0.9; - - // if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(worldpos-playerCamPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); - if(HELD_ITEM_BRIGHTNESS > 0.0){ - - float pointLight = clamp(1.0-(length(worldpos-playerCamPos)-1.)/HANDHELD_LIGHT_RANGE,0.0,1.0); - - if (torchlightmap < 0.99) { - torchlightmap = mix(torchlightmap, HELD_ITEM_BRIGHTNESS, pointLight); - } - } - - #ifdef HAND - torchlightmap *= 0.9; - #endif - #endif - - float lightmap = clamp( (lmtexcoord.w-0.9) * 10.0,0.,1.); - vec2 adjustedTexCoord = lmtexcoord.xy; -#if defined POM && defined WORLD && !defined ENTITIES && !defined HAND +#if defined POM && (defined WORLD && !defined ENTITIES && !defined HAND || defined COLORWHEEL) // vec2 tempOffset=offsets[framemod8]; adjustedTexCoord = fract(texcoord.st)*texcoordam.pq+texcoordam.st; // vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); @@ -463,9 +429,20 @@ void main() { float textureLOD = bias(); - vec4 Albedo = color; - - if (ISSHADERGRASS < 1) Albedo *= texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM, textureLOD); + vec2 lmcoord = lmtexcoord.zw; + + #ifndef COLORWHEEL + vec4 Albedo = color; + if (ISSHADERGRASS < 1) Albedo *= texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM, textureLOD); + #else + vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM, textureLOD); + vec4 overlayColor; + float VanillaAO; + + clrwl_computeFragment(Albedo, Albedo, lmcoord, VanillaAO, overlayColor); + lmcoord = clamp((lmcoord - 1.0 / 32.0) * 32.0 / 30.0, 0.0, 1.0); + VanillaAO = 1.0 - clamp(VanillaAO, 0,1); + #endif #if REPLACE_SHORT_GRASS < 2 && defined SHADER_GRASS // darken the top of grass blocks a bit @@ -485,6 +462,41 @@ void main() { if(LIGHTNING > 0) Albedo = vec4(1); + float torchlightmap = lmcoord.x; + + #if defined Hand_Held_lights && !defined LPV_ENABLED + #ifdef IS_IRIS + vec3 playerCamPos = cameraPosition - relativeEyePosition; + #else + vec3 playerCamPos = cameraPosition; + #endif + + #ifdef VIVECRAFT + if (vivecraftIsVR) { + playerCamPos = cameraPosition - vivecraftRelativeMainHandPos; + } + #endif + + float HELD_ITEM_BRIGHTNESS = 0.0; + if(heldItemId > 999 || heldItemId2 > 999 ) HELD_ITEM_BRIGHTNESS = 0.9; + + // if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(worldpos-playerCamPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); + if(HELD_ITEM_BRIGHTNESS > 0.0){ + + float pointLight = clamp(1.0-(length(worldpos-playerCamPos)-1.)/HANDHELD_LIGHT_RANGE,0.0,1.0); + + if (torchlightmap < 0.99) { + torchlightmap = mix(torchlightmap, HELD_ITEM_BRIGHTNESS, pointLight); + } + } + + #ifdef HAND + torchlightmap *= 0.9; + #endif + #endif + + float lightmap = clamp( (lmcoord.y-0.9) * 10.0,0.,1.); + #if defined WORLD && !defined ENTITIES && !defined HAND float endPortalEmission = 0.0; if(PORTAL > 0) { @@ -593,6 +605,10 @@ void main() { gl_FragData[3] = vec4(0.0); #endif + #ifdef COLORWHEEL + Albedo.a = 0.4; + #endif + //////////////////////////////// //////////////////////////////// //////////////////////////////// NORMAL //////////////////////////////// @@ -672,17 +688,21 @@ void main() { #endif // hit glow effect... - #ifdef ENTITIES + #if defined ENTITIES && !defined COLORWHEEL Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, clamp(entityColor.a*1.5,0,1)); #endif + #ifdef COLORWHEEL + Albedo.rgb = mix(Albedo.rgb, overlayColor.rgb, clamp(overlayColor.a*1.5,0,1)); + #endif + //////////////////////////////// //////////////////////////////// //////////////////////////////// FINALIZE //////////////////////////////// //////////////////////////////// //////////////////////////////// #ifdef WORLD // apply noise to lightmaps to reduce banding. - vec2 PackLightmaps = vec2(torchlightmap, lmtexcoord.w); + vec2 PackLightmaps = vec2(torchlightmap, lmcoord.y); normal = viewToWorld(normal); diff --git a/shaders/dimensions/all_solid.gsh b/shaders/dimensions/all_solid.gsh index 725a21e..044c0a3 100644 --- a/shaders/dimensions/all_solid.gsh +++ b/shaders/dimensions/all_solid.gsh @@ -187,11 +187,15 @@ void main() { PORTAL = vPORTAL[i]; SIGN = vSIGN[i]; + #ifdef COLORWHEEL + clrwl_setVertexOut(i); + #endif + EmitVertex(); } EndPrimitive(); - #if !defined ENTITIES && !defined HAND && defined SHADER_GRASS + #if !defined ENTITIES && !defined HAND && defined SHADER_GRASS && !defined COLORWHEEL int j; diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index 514f612..4eee921 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -1,3 +1,14 @@ +#ifdef IS_LPV_ENABLED + #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable +#endif + +#if defined CUMULONIMBUS_LIGHTNING && CUMULONIMBUS > 0 && defined OVERWORLD_SHADER && defined COLORWHEEL + #extension GL_NV_gpu_shader5 : enable + #extension GL_ARB_shader_image_load_store : enable + #extension GL_EXT_shader_image_load_store : enable +#endif + #include "/lib/settings.glsl" #if defined CUSTOM_MOON_ROTATION || defined END_ISLAND_LIGHT || WATER_INTERACTION == 2 @@ -10,11 +21,6 @@ // #undef IS_LPV_ENABLED // #endif -#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" varying vec4 lmtexcoord; @@ -508,8 +514,21 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////// ALBEDO ///////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// + + vec2 lightmap = lmtexcoord.zw; - gl_FragData[0] = texture2D(texture, lmtexcoord.xy, Texture_MipMap_Bias) * color; + #ifndef COLORWHEEL + gl_FragData[0] = texture2D(texture, lmtexcoord.xy, Texture_MipMap_Bias) * color; + #else + vec4 _color = texture2D(texture, lmtexcoord.xy, Texture_MipMap_Bias); + float ao; + vec4 overlayColor; + + clrwl_computeFragment(_color, _color, lightmap, ao, overlayColor); + lightmap = clamp((lightmap - 1.0 / 32.0) * 32.0 / 30.0, 0.0, 1.0); + + gl_FragData[0] = _color; + #endif float UnchangedAlpha = gl_FragData[0].a; @@ -551,10 +570,14 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) } #endif - #ifdef ENTITIES + #if defined ENTITIES && !defined COLORWHEEL Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, clamp(entityColor.a*1.5,0,1)); #endif + #ifdef COLORWHEEL + Albedo.rgb = mix(Albedo.rgb, overlayColor.rgb, clamp(overlayColor.a*1.5,0,1)); + #endif + vec4 GLASS_TINT_COLORS = vec4(Albedo, UnchangedAlpha); #ifdef BIOME_TINT_WATER @@ -609,7 +632,6 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) vec3 rippleBump = vec3(0.0); - vec2 lightmap = lmtexcoord.zw; #if !defined HAND && !defined Vanilla_like_water if (isWater){ vec3 playerPos = shadowPlayerPos; @@ -960,7 +982,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) gl_FragData[0].rgb = FinalColor*0.1; #endif - #if defined ENTITIES + #if defined ENTITIES && !defined COLORWHEEL // do not allow specular to be very visible in these regions on entities // this helps with specular on slimes, and entities with skin overlays like piglins/players if (!gl_FrontFacing) { @@ -1001,7 +1023,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) gl_FragData[3] = vec4(encodeVec2(lightmap.x, lightmap.y), 1, 1, 1); - #if defined ENTITIES && defined IS_IRIS + #if defined ENTITIES && defined IS_IRIS && !defined COLORWHEEL if(NAMETAG > 0) { // WHY DO THEY HAVE TO AHVE LIGHTING AAAAAAUGHAUHGUAHG #ifndef OVERWORLD_SHADER diff --git a/shaders/dimensions/all_vanilla_emissives.fsh b/shaders/dimensions/all_vanilla_emissives.fsh index 5ef230b..9b4c7c7 100644 --- a/shaders/dimensions/all_vanilla_emissives.fsh +++ b/shaders/dimensions/all_vanilla_emissives.fsh @@ -4,45 +4,12 @@ varying vec4 color; varying vec2 texcoord; uniform sampler2D texture; -uniform sampler2D normals; -uniform sampler2D noisetex; - -varying vec4 tangent; -varying vec4 normalMat; -uniform float frameTimeCounter; //faster and actually more precise than pow 2.2 vec3 toLinear(vec3 sRGB){ return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); } -vec4 encode (vec3 n, vec2 lightmaps){ - n.xy = n.xy / dot(abs(n), vec3(1.0)); - n.xy = n.z <= 0.0 ? (1.0 - abs(n.yx)) * sign(n.xy) : n.xy; - vec2 encn = clamp(n.xy * 0.5 + 0.5,-1.0,1.0); - - return vec4(encn,vec2(lightmaps.x,lightmaps.y)); -} - -//encoding by jodie -float encodeVec2(vec2 a){ - const vec2 constant1 = vec2( 1., 256.) / 65535.; - vec2 temp = floor( a * 255. ); - return temp.x*constant1.x+temp.y*constant1.y; -} -float encodeVec2(float x,float y){ - return encodeVec2(vec2(x,y)); -} - -uniform mat4 gbufferModelViewInverse; - -vec3 viewToWorld(vec3 viewPos) { - vec4 pos; - pos.xyz = viewPos; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -55,26 +22,37 @@ vec3 viewToWorld(vec3 viewPos) { void main() { vec4 Albedo = texture2D(texture, texcoord); - Albedo.rgb = toLinear(Albedo.rgb * color.rgb); - #if defined SPIDER_EYES || defined BEACON_BEAM || defined GLOWING + #ifndef COLORWHEEL + Albedo.rgb = toLinear(Albedo.rgb * color.rgb); + #else + vec2 lmcoord; + float ao; + vec4 overlayColor; - if(Albedo.a < 0.102 || dot(Albedo.rgb, vec3(0.33333)) < 1.0/255.0) { discard; return; } + clrwl_computeFragment(Albedo, Albedo, lmcoord, ao, overlayColor); - float minimumBrightness = 0.5; + Albedo.rgb = mix(Albedo.rgb, overlayColor.rgb, overlayColor.a); - #ifdef BEACON_BEAM - minimumBrightness = 10.0; - #endif + Albedo.rgb = toLinear(Albedo.rgb); + #endif + + #if defined BEACON_BEAM + gl_FragData[0] = vec4(Albedo.rgb*Albedo.rgb * 0.1 * 5.0 * Emissive_Brightness, Albedo.a*color.a); + #endif + + #if defined SPIDER_EYES || defined GLOWING + + if(Albedo.a < 1.0/255.0 || dot(Albedo.rgb, vec3(0.33333)) < 1.0/255.0) { discard; return; } #ifdef DISABLE_VANILLA_EMISSIVES vec3 emissiveColor = vec3(0.0); Albedo.a = 0.0; #else - vec3 emissiveColor = Albedo.rgb * color.a ;//* autoBrightnessAdjust; + vec3 emissiveColor = Albedo.rgb * Albedo.a * Emissive_Brightness; #endif - gl_FragData[0] = vec4(emissiveColor*0.1, Albedo.a * sqrt(color.a)); + gl_FragData[0] = vec4(emissiveColor*0.1, 0.000001); #endif #ifdef ENCHANT_GLINT @@ -85,9 +63,9 @@ void main() { vec3 GlintColor = vec3(0.0); Albedo.a = 0.0; #else - vec3 GlintColor = Albedo.rgb * Emissive_Brightness; + vec3 GlintColor = Albedo.rgb * 0.2 * Emissive_Brightness; #endif - gl_FragData[0] = vec4(GlintColor*0.1, dot(Albedo.rgb,vec3(0.333)) * Albedo.a ); + gl_FragData[0] = vec4(GlintColor*0.1, 0.000001); #endif } \ No newline at end of file diff --git a/shaders/lang/en_us.lang b/shaders/lang/en_us.lang index d83e9d4..9e10a3a 100644 --- a/shaders/lang/en_us.lang +++ b/shaders/lang/en_us.lang @@ -1,6 +1,6 @@ option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit prefix.SHADER_VERSION_LABEL = V - value.SHADER_VERSION_LABEL.482 = 4.0.3 + value.SHADER_VERSION_LABEL.482 = 4.1.0 # if you're here to translate, this is not a joke, these do what they say profile.POTATO=§4Potato diff --git a/shaders/lib/specular.glsl b/shaders/lib/specular.glsl index 639ee50..72bec4b 100644 --- a/shaders/lib/specular.glsl +++ b/shaders/lib/specular.glsl @@ -35,7 +35,7 @@ vec2 R2_Sample(int n){ return fract(alpha * n); } -float fma(float a,float b,float c){ +float fma2(float a,float b,float c){ return a * b + c; } @@ -52,7 +52,7 @@ vec3 SampleVNDFGGX( const float tau = 6.2831853; // 2 * pi float phi = tau * xy.x; - float cosTheta = fma(1.0 - xy.y, 1.0 + viewerDirection.z, -viewerDirection.z); + float cosTheta = fma2(1.0 - xy.y, 1.0 + viewerDirection.z, -viewerDirection.z); float sinTheta = sqrt(clamp(1.0 - cosTheta * cosTheta, 0.0, 1.0)); sinTheta = clamp(sinTheta,0.0,1.0); @@ -116,9 +116,6 @@ float shlickFresnelRoughness(float XdotN, float roughness){ // return vec2(clamp(u, 0.0, 1.0), clamp(v, 0.0, 1.0)); //} // -//#extension GL_NV_gpu_shader5 : enable -//#extension GL_ARB_shader_image_load_store : enable -//#extension GL_EXT_shader_image_load_store : enable // //layout (rgba32f) uniform image2D reflectionSphere; // diff --git a/shaders/lib/volumetricClouds.glsl b/shaders/lib/volumetricClouds.glsl index 19ebff5..84faa52 100644 --- a/shaders/lib/volumetricClouds.glsl +++ b/shaders/lib/volumetricClouds.glsl @@ -34,9 +34,11 @@ float lightningFlash = mix(0.1, 2.5, randomSeed); #endif #if defined CUMULONIMBUS_LIGHTNING && CUMULONIMBUS > 0 - #extension GL_NV_gpu_shader5 : enable - #extension GL_ARB_shader_image_load_store : enable - #extension GL_EXT_shader_image_load_store : enable + #ifndef COLORWHEEL + #extension GL_NV_gpu_shader5 : enable + #extension GL_ARB_shader_image_load_store : enable + #extension GL_EXT_shader_image_load_store : enable + #endif layout (rgba16f) uniform image2D cloudDepthTex; diff --git a/shaders/lib/voxel_write.glsl b/shaders/lib/voxel_write.glsl index 1ec7378..c09cecd 100644 --- a/shaders/lib/voxel_write.glsl +++ b/shaders/lib/voxel_write.glsl @@ -18,10 +18,21 @@ void PopulateShadowVoxel(const in vec3 playerPos) { vec3 originPos = playerPos; 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 - ) { - voxelId = uint(mc_Entity.x + 0.5); + #ifdef COLORWHEEL + renderStage == CLRWL_RENDER_STAGE_SOLID || renderStage == CLRWL_RENDER_STAGE_TRANSLUCENT + #else + 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 + #endif + ) + { + float blockID = mc_Entity.x; + + #ifdef COLORWHEEL + if(mc_Entity.x < 0.0) blockID = blockEntityId; + #endif + + voxelId = uint(blockID + 0.5); #ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE if (voxelId == 0u && at_midBlock.w > 0) voxelId = uint(BLOCK_LIGHT_1 + at_midBlock.w - 1); @@ -38,7 +49,7 @@ void PopulateShadowVoxel(const in vec3 playerPos) { ivec3 voxelPos = GetVoxelIndex(originPos); #endif - #ifdef LPV_ENTITY_LIGHTS + #if defined LPV_ENTITY_LIGHTS && !defined COLORWHEEL if ( ((renderStage == MC_RENDER_STAGE_ENTITIES && (currentRenderedItemId > 0 || entityId > 0)) || renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES) ) { @@ -70,7 +81,7 @@ void PopulateShadowVoxel(const in vec3 playerPos) { } #endif - #if WATER_INTERACTION == 2 + #if WATER_INTERACTION == 2 && !defined COLORWHEEL if ( ((renderStage == MC_RENDER_STAGE_ENTITIES && (currentRenderedItemId > 0 || entityId > 0)) || renderStage == MC_RENDER_STAGE_BLOCK_ENTITIES) ) { diff --git a/shaders/shaders.properties b/shaders/shaders.properties index a4379b2..a4f44ef 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -267,7 +267,7 @@ SHADER_VERSION_LABEL \ ### RESOURCE PACK SUPPORT screen.Resource_Pack_Support.columns = 1 - screen.Resource_Pack_Support = [SPECULAR] [Emissives] [Subsurface_Scattering] [POM] [Refraction] MATERIAL_AO RESOURCEPACK_SKY NORMAL_MAP_MULT screen.SPECULAR.columns=1 screen.SPECULAR = \ diff --git a/shaders/world-1/clrwl_gbuffers.fsh b/shaders/world-1/clrwl_gbuffers.fsh new file mode 100644 index 0000000..2915513 --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers.fsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define NETHER_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers.gsh b/shaders/world-1/clrwl_gbuffers.gsh new file mode 100644 index 0000000..75aaa65 --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers.gsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define NETHER_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.gsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers.vsh b/shaders/world-1/clrwl_gbuffers.vsh new file mode 100644 index 0000000..3a1cfc1 --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers.vsh @@ -0,0 +1,12 @@ +#version 430 compatibility + + +#define NETHER_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers_damagedblock.fsh b/shaders/world-1/clrwl_gbuffers_damagedblock.fsh new file mode 100644 index 0000000..590df8d --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers_damagedblock.fsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define NETHER_SHADER + +#define DAMAGE_BLOCK_EFFECT +#define COLORWHEEL + +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers_damagedblock.vsh b/shaders/world-1/clrwl_gbuffers_damagedblock.vsh new file mode 100644 index 0000000..2c1ebf9 --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers_damagedblock.vsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define NETHER_SHADER + +#define DAMAGE_BLOCK_EFFECT +#define COLORWHEEL + +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers_glint.fsh b/shaders/world-1/clrwl_gbuffers_glint.fsh new file mode 100644 index 0000000..26cc987 --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers_glint.fsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define NETHER_SHADER + +#define ENCHANT_GLINT +#define COLORWHEEL + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers_glint.vsh b/shaders/world-1/clrwl_gbuffers_glint.vsh new file mode 100644 index 0000000..2f987a3 --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers_glint.vsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define NETHER_SHADER + +#define ENCHANT_GLINT +#define COLORWHEEL + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers_translucent.fsh b/shaders/world-1/clrwl_gbuffers_translucent.fsh new file mode 100644 index 0000000..7f1384e --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers_translucent.fsh @@ -0,0 +1,12 @@ + +#version 430 compatibility + +#define NETHER_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_gbuffers_translucent.vsh b/shaders/world-1/clrwl_gbuffers_translucent.vsh new file mode 100644 index 0000000..bda39f1 --- /dev/null +++ b/shaders/world-1/clrwl_gbuffers_translucent.vsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define NETHER_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world-1/clrwl_shadow.fsh b/shaders/world-1/clrwl_shadow.fsh new file mode 100644 index 0000000..739bc54 --- /dev/null +++ b/shaders/world-1/clrwl_shadow.fsh @@ -0,0 +1,12 @@ +#version 430 compatibility + + +#include "/lib/settings.glsl" + +#define COLORWHEEL + +//////////////////////////////VOID MAIN////////////////////////////// + +void main() { + gl_FragData[0] = vec4(0.0); +} diff --git a/shaders/world-1/clrwl_shadow.vsh b/shaders/world-1/clrwl_shadow.vsh new file mode 100644 index 0000000..36aff5e --- /dev/null +++ b/shaders/world-1/clrwl_shadow.vsh @@ -0,0 +1,60 @@ +#version 430 compatibility + +#if defined IS_LPV_ENABLED + #extension GL_ARB_explicit_attrib_location: enable + #extension GL_ARB_shader_image_load_store: enable +#endif + +#define COLORWHEEL + +#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 !! +*/ + +#ifdef IS_LPV_ENABLED + attribute vec4 mc_Entity; + #ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE + attribute vec4 at_midBlock; + #else + attribute vec3 at_midBlock; + #endif + attribute vec3 vaPosition; + + uniform mat4 shadowModelViewInverse; + + uniform int renderStage; + uniform vec3 chunkOffset; + uniform vec3 cameraPosition; + uniform int currentRenderedItemId; + uniform int blockEntityId; + uniform int entityId; + + #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 + #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 + + PopulateShadowVoxel(playerpos); + #endif + + gl_Position = vec4(-1.0); +} diff --git a/shaders/world0/clrwl_gbuffers.fsh b/shaders/world0/clrwl_gbuffers.fsh new file mode 100644 index 0000000..a67f9eb --- /dev/null +++ b/shaders/world0/clrwl_gbuffers.fsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers.gsh b/shaders/world0/clrwl_gbuffers.gsh new file mode 100644 index 0000000..36f757a --- /dev/null +++ b/shaders/world0/clrwl_gbuffers.gsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.gsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers.vsh b/shaders/world0/clrwl_gbuffers.vsh new file mode 100644 index 0000000..c3f2a39 --- /dev/null +++ b/shaders/world0/clrwl_gbuffers.vsh @@ -0,0 +1,12 @@ +#version 430 compatibility + + +#define OVERWORLD_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers_damagedblock.fsh b/shaders/world0/clrwl_gbuffers_damagedblock.fsh new file mode 100644 index 0000000..dd45b8a --- /dev/null +++ b/shaders/world0/clrwl_gbuffers_damagedblock.fsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define DAMAGE_BLOCK_EFFECT +#define COLORWHEEL + +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers_damagedblock.vsh b/shaders/world0/clrwl_gbuffers_damagedblock.vsh new file mode 100644 index 0000000..bc0e044 --- /dev/null +++ b/shaders/world0/clrwl_gbuffers_damagedblock.vsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define DAMAGE_BLOCK_EFFECT +#define COLORWHEEL + +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers_glint.fsh b/shaders/world0/clrwl_gbuffers_glint.fsh new file mode 100644 index 0000000..672d20e --- /dev/null +++ b/shaders/world0/clrwl_gbuffers_glint.fsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define ENCHANT_GLINT +#define COLORWHEEL + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers_glint.vsh b/shaders/world0/clrwl_gbuffers_glint.vsh new file mode 100644 index 0000000..7758848 --- /dev/null +++ b/shaders/world0/clrwl_gbuffers_glint.vsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define ENCHANT_GLINT +#define COLORWHEEL + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers_translucent.fsh b/shaders/world0/clrwl_gbuffers_translucent.fsh new file mode 100644 index 0000000..4bf8150 --- /dev/null +++ b/shaders/world0/clrwl_gbuffers_translucent.fsh @@ -0,0 +1,12 @@ + +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_gbuffers_translucent.vsh b/shaders/world0/clrwl_gbuffers_translucent.vsh new file mode 100644 index 0000000..31f1433 --- /dev/null +++ b/shaders/world0/clrwl_gbuffers_translucent.vsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define OVERWORLD_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world0/clrwl_shadow.fsh b/shaders/world0/clrwl_shadow.fsh new file mode 100644 index 0000000..fd365da --- /dev/null +++ b/shaders/world0/clrwl_shadow.fsh @@ -0,0 +1,37 @@ +#version 430 compatibility + +#include "/lib/settings.glsl" + +varying vec4 color; + +varying vec2 texcoord; +uniform sampler2D tex; +uniform sampler2D noisetex; + +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// + +float blueNoise(){ + return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 ); +} + +/* RENDERTARGETS: 0 */ + +void main() { + vec4 color = texture2D(tex,texcoord.xy); + vec2 lmcoord; + float ao; + vec4 overlayColor; + + clrwl_computeFragment(color, color, lmcoord, ao, overlayColor); + color.rgb = mix(color.rgb, overlayColor.rgb, overlayColor.a); + + gl_FragData[0] = color; + + #ifdef Stochastic_Transparent_Shadows + if(gl_FragData[0].a < blueNoise()) { discard; return;} + #endif +} diff --git a/shaders/world0/clrwl_shadow.vsh b/shaders/world0/clrwl_shadow.vsh new file mode 100644 index 0000000..5caaaeb --- /dev/null +++ b/shaders/world0/clrwl_shadow.vsh @@ -0,0 +1,296 @@ +#version 430 compatibility + +#if defined IS_LPV_ENABLED + #extension GL_ARB_explicit_attrib_location: enable + #extension GL_ARB_shader_image_load_store: enable +#endif + +#define RENDER_SHADOW + +#define COLORWHEEL + +#include "/lib/SSBOs.glsl" + +#include "/lib/settings.glsl" + +/* +!! 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 vec3 relativeEyePosition; +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; +varying vec3 vertexPos; + +attribute vec4 mc_Entity; +uniform int blockEntityId; +uniform int entityId; + +#include "/lib/Shadow_Params.glsl" +#include "/lib/bokeh.glsl" +#include "/lib/blocks.glsl" +#include "/lib/entities.glsl" + +#if defined IS_LPV_ENABLED + #ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE + attribute vec4 at_midBlock; + #else + attribute vec3 at_midBlock; + #endif + uniform int currentRenderedItemId; + uniform int renderStage; + + #include "/lib/voxel_common.glsl" + #include "/lib/voxel_write.glsl" +#endif + +const float PI48 = 150.796447372*WAVY_SPEED; +float pi2wt = PI48*frameTimeCounter; + +out float LIGHTNING; + +vec2 calcWave(in vec3 pos) { + + float magnitude = abs(sin(dot(vec4(frameTimeCounter, pos),vec4(1.0,0.005,0.005,0.005)))*0.5+0.72)*0.013; + vec2 ret = (sin(pi2wt*vec2(0.0063,0.0015)*4. - pos.xz + pos.y*0.05)+0.1)*magnitude; + + return ret; +} + +vec3 calcMovePlants(in vec3 pos) { + vec2 move1 = calcWave(pos ); + float move1y = -length(move1); + return vec3(move1.x,move1y,move1.y)*5.*WAVY_STRENGTH/255.0; +} + +vec3 calcWaveLeaves(in vec3 pos, in float fm, in float mm, in float ma, in float f0, in float f1, in float f2, in float f3, in float f4, in float f5) { + + float magnitude = abs(sin(dot(vec4(frameTimeCounter, pos),vec4(1.0,0.005,0.005,0.005)))*0.5+0.72)*0.013; + vec3 ret = (sin(pi2wt*vec3(0.0063,0.0224,0.0015)*1.5 - pos))*magnitude; + + return ret; +} + +vec3 calcMoveLeaves(in vec3 pos, in float f0, in float f1, in float f2, in float f3, in float f4, in float f5, in vec3 amp1, in vec3 amp2) { + vec3 move1 = calcWaveLeaves(pos , 0.0054, 0.0400, 0.0400, 0.0127, 0.0089, 0.0114, 0.0063, 0.0224, 0.0015) * amp1; + return move1*5.*WAVY_STRENGTH/255.; +} +bool intersectCone(float coneHalfAngle, vec3 coneTip , vec3 coneAxis, vec3 rayOrig, vec3 rayDir, float maxZ) +{ + vec3 co = rayOrig - coneTip; + float prod = dot(normalize(co),coneAxis); + if (prod <= -coneHalfAngle) return true; //In view frustrum + + float a = dot(rayDir,coneAxis)*dot(rayDir,coneAxis) - coneHalfAngle*coneHalfAngle; + float b = 2. * (dot(rayDir,coneAxis)*dot(co,coneAxis) - dot(rayDir,co)*coneHalfAngle*coneHalfAngle); + float c = dot(co,coneAxis)*dot(co,coneAxis) - dot(co,co)*coneHalfAngle*coneHalfAngle; + + float det = b*b - 4.*a*c; + if (det < 0.) return false; // No intersection with either forward cone and backward cone + + det = sqrt(det); + float t2 = (-b + det) / (2. * a); + if (t2 <= 0.0 || t2 >= maxZ) return false; //Idk why it works + + return true; +} +#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) +#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) + + + +// uniform float far; +uniform float dhFarPlane; + +#include "/lib/DistantHorizons_projections.glsl" + +vec4 toClipSpace3(vec3 viewSpacePosition) { + + // mat4 projection = DH_shadowProjectionTweak(gl_ProjectionMatrix); + + return vec4(projMAD(gl_ProjectionMatrix, viewSpacePosition),1.0); +} +vec3 viewToWorld(vec3 viewPos) { + vec4 pos; + pos.xyz = viewPos; + pos.w = 0.0; + pos = shadowModelViewInverse * pos; + return pos.xyz; +} + +varying vec3 playerpos; + +// uniform int renderStage; + +// uniform mat4 gbufferModelViewInverse; +void main() { + texcoord.xy = gl_MultiTexCoord0.xy; + color = gl_Color; + + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + + + // playerpos = vec4(0.0); + // playerpos = gbufferModelViewInverse * (gl_ModelViewMatrix * gl_Vertex); + + // mat4 Custom_ViewMatrix = BuildShadowViewMatrix(LightDir); + // mat4 Custom_ProjectionMatrix = BuildShadowProjectionMatrix(); + + // position = gl_Vertex.xyz; + + // if((renderStage == 10 || renderStage == 12) && mc_Entity.x != 3000) { + // position = (shadowModelViewInverse * vec4(gl_Vertex.xyz,1.0)).xyz; + // } + + // position = mat3(Custom_ViewMatrix) * position + Custom_ViewMatrix[3].xyz; + + // HHHHHHHHH ITS THE JITTER DOF HERE TO SAY HELLO + // It turns out 'position' above is just viewPos lmao + // #ifdef DOF_JITTER_SHADOW + // // CLIP SPACE + // vec2 jitter = clamp(jitter_offsets[frameCounter % 64], -1.0, 1.0); + // jitter = rotate(radians(float(frameCounter))) * jitter; + // jitter.y *= aspectRatio; + // jitter.x *= DOF_ANAMORPHIC_RATIO; + + // vec4 clipPos = gbufferProjection * vec4(position, 1.0); + + // // CLIP SPACE -> VIEW SPACE + // vec3 viewPos = (gbufferProjectionInverse * clipPos).xyz; + + // // Focus distance + // #if DOF_JITTER_FOCUS < 0 + // float focusMul = clipPos.z - mix(pow(512.0, screenBrightness), 512.0 * screenBrightness, 0.25); + // #else + // float focusMul = clipPos.z - DOF_JITTER_FOCUS; + // #endif + + // // CLIP SPACE -> SHADOW CLIP SPACE + // vec3 jitterViewPos = (gbufferProjectionInverse * vec4(jitter, 1.0, 1.0)).xyz; + // // vec3 jitterFeetPos = (gbufferModelViewInverse * vec4(jitterViewPos, 1.0)).xyz; + // // vec3 jitterShadowViewPos = (shadowModelView * vec4(jitterFeetPos, 1.0)).xyz; + // // vec4 jitterShadowClipPos = gl_ProjectionMatrix * vec4(jitterShadowViewPos, 1.0); + + // // vec4 totalOffset = jitterShadowClipPos * JITTER_STRENGTH * focusMul * 1e-2; + + // position += jitterViewPos * focusMul * 1e-2; + // if(focusMul < 10.0) { + // gl_Position = vec4(-1.0); + // return; + // } + // #endif + + // #if defined IS_LPV_ENABLED || defined WAVY_PLANTS || !defined PLANET_CURVATURE + playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + // #endif + + #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store + PopulateShadowVoxel(playerpos); + #endif + + // #ifdef WAVY_PLANTS + // bool istopv = gl_MultiTexCoord0.t < mc_midTexCoord.t; + // if ( + // ( + // blockId == BLOCK_GROUND_WAVING || blockId == BLOCK_GROUND_WAVING_VERTICAL || + // blockId == BLOCK_GRASS_SHORT || (blockId == BLOCK_GRASS_TALL_UPPER && istopv) || + // blockId == BLOCK_SAPLING + // ) && length(position.xy) < 24.0 + // ) { + // playerpos += calcMovePlants(playerpos + cameraPosition)*gl_MultiTexCoord1.y; + // position = mat3(shadowModelView) * playerpos + shadowModelView[3].xyz; + // } + + // if (blockId == BLOCK_AIR_WAVING && length(position.xy) < 24.0) { + // playerpos += calcMoveLeaves(playerpos + cameraPosition, 0.0040, 0.0064, 0.0043, 0.0035, 0.0037, 0.0041, vec3(1.0,0.2,1.0), vec3(0.5,0.1,0.5))*gl_MultiTexCoord1.y; + // position = mat3(shadowModelView) * playerpos + shadowModelView[3].xyz; + // } + // #endif + + int blockId = int(mc_Entity.x + 0.5); + + vec3 worldpos = playerpos; + #ifdef WAVY_PLANTS + // also use normal, so up/down facing geometry does not get detatched from its model parts. + bool InterpolateFromBase = gl_MultiTexCoord0.t < max(mc_midTexCoord.t, abs(viewToWorld(normalize(gl_NormalMatrix * gl_Normal)).y)); + + if( + ( + // these wave off of the ground. the area connected to the ground does not wave. + (InterpolateFromBase && (blockId == BLOCK_GRASS_TALL_LOWER || blockId == BLOCK_GROUND_WAVING || blockId == BLOCK_GRASS_SHORT || blockId == BLOCK_SAPLING || blockId == BLOCK_GROUND_WAVING_VERTICAL)) + + // these wave off of the ceiling. the area connected to the ceiling does not wave. + || (!InterpolateFromBase && (blockId == BLOCK_VINE_OTHER)) + + // these wave off of the air. they wave uniformly + || (blockId == BLOCK_GRASS_TALL_UPPER || blockId == BLOCK_AIR_WAVING) + + ) && length(position.xy) < 24.0 + ){ + + // apply displacement for waving plant blocks + worldpos += calcMovePlants(playerpos + cameraPosition) * max(gl_MultiTexCoord1.y,0.5); + + // apply displacement for waving leaf blocks specifically, overwriting the other waving mode. these wave off of the air. they wave uniformly + if(blockId == BLOCK_AIR_WAVING) worldpos = playerpos + calcMoveLeaves(playerpos + cameraPosition, 0.0040, 0.0064, 0.0043, 0.0035, 0.0037, 0.0041, vec3(1.0,0.2,1.0), vec3(0.5,0.1,0.5))*gl_MultiTexCoord1.y; + + } + #endif + + LIGHTNING = 0.0; + if (entityId == ENTITY_LIGHTNING) LIGHTNING = 1.0; + + #ifdef PLANET_CURVATURE + float curvature = length(worldpos) / (16*8); + worldpos.y -= curvature*curvature * CURVATURE_AMOUNT; + #endif + + #ifdef CUSTOM_MOON_ROTATION + position = mat3(customShadowMatrixSSBO) * worldpos + customShadowMatrixSSBO[3].xyz; + #else + position = mat3(shadowModelView) * worldpos + shadowModelView[3].xyz; + #endif + + #ifdef DISTORT_SHADOWMAP + if (entityId == ENTITY_SSS_MEDIUM || entityId == ENTITY_SLIME) + position.xyz = position.xyz - normalize(gl_NormalMatrix * gl_Normal) * 0.25; + + gl_Position = BiasShadowProjection(toClipSpace3(position)); + #else + gl_Position = toClipSpace3(position); + #endif + + + if (blockId == BLOCK_WATER) gl_Position.w = -1.0; + + gl_Position.z /= 6.0; +} \ No newline at end of file diff --git a/shaders/world0/shadow.fsh b/shaders/world0/shadow.fsh index f23d848..310492b 100644 --- a/shaders/world0/shadow.fsh +++ b/shaders/world0/shadow.fsh @@ -21,16 +21,16 @@ uniform sampler2D noisetex; in float LIGHTNING; uniform float frameTimeCounter; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - float blueNoise(){ return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 ); } +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// + void main() { if (LIGHTNING > 0.0) discard; diff --git a/shaders/world1/clrwl_gbuffers.fsh b/shaders/world1/clrwl_gbuffers.fsh new file mode 100644 index 0000000..3a88b23 --- /dev/null +++ b/shaders/world1/clrwl_gbuffers.fsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define END_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers.gsh b/shaders/world1/clrwl_gbuffers.gsh new file mode 100644 index 0000000..dfe7e0a --- /dev/null +++ b/shaders/world1/clrwl_gbuffers.gsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define END_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.gsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers.vsh b/shaders/world1/clrwl_gbuffers.vsh new file mode 100644 index 0000000..c025b5e --- /dev/null +++ b/shaders/world1/clrwl_gbuffers.vsh @@ -0,0 +1,12 @@ +#version 430 compatibility + + +#define END_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers_damagedblock.fsh b/shaders/world1/clrwl_gbuffers_damagedblock.fsh new file mode 100644 index 0000000..56ced27 --- /dev/null +++ b/shaders/world1/clrwl_gbuffers_damagedblock.fsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define END_SHADER + +#define DAMAGE_BLOCK_EFFECT +#define COLORWHEEL + +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers_damagedblock.vsh b/shaders/world1/clrwl_gbuffers_damagedblock.vsh new file mode 100644 index 0000000..d0611be --- /dev/null +++ b/shaders/world1/clrwl_gbuffers_damagedblock.vsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define END_SHADER + +#define DAMAGE_BLOCK_EFFECT +#define COLORWHEEL + +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers_glint.fsh b/shaders/world1/clrwl_gbuffers_glint.fsh new file mode 100644 index 0000000..4d1b036 --- /dev/null +++ b/shaders/world1/clrwl_gbuffers_glint.fsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define END_SHADER + +#define ENCHANT_GLINT +#define COLORWHEEL + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers_glint.vsh b/shaders/world1/clrwl_gbuffers_glint.vsh new file mode 100644 index 0000000..a3dd7d1 --- /dev/null +++ b/shaders/world1/clrwl_gbuffers_glint.vsh @@ -0,0 +1,9 @@ + +#version 430 compatibility + +#define END_SHADER + +#define ENCHANT_GLINT +#define COLORWHEEL + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers_translucent.fsh b/shaders/world1/clrwl_gbuffers_translucent.fsh new file mode 100644 index 0000000..a05a93e --- /dev/null +++ b/shaders/world1/clrwl_gbuffers_translucent.fsh @@ -0,0 +1,12 @@ + +#version 430 compatibility + +#define END_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_gbuffers_translucent.vsh b/shaders/world1/clrwl_gbuffers_translucent.vsh new file mode 100644 index 0000000..e56bf49 --- /dev/null +++ b/shaders/world1/clrwl_gbuffers_translucent.vsh @@ -0,0 +1,11 @@ +#version 430 compatibility + +#define END_SHADER + +#define WORLD + +#define COLORWHEEL +#define ENTITIES +#define BLOCKENTITIES + +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world1/clrwl_shadow.fsh b/shaders/world1/clrwl_shadow.fsh new file mode 100644 index 0000000..e9cd2cb --- /dev/null +++ b/shaders/world1/clrwl_shadow.fsh @@ -0,0 +1,54 @@ +#version 430 compatibility + + +#include "/lib/settings.glsl" + +#define COLORWHEEL + +varying vec4 color; + +varying vec2 texcoord; +uniform sampler2D tex; +uniform sampler2D texture; +uniform sampler2D noisetex; + +#if defined DISTANT_HORIZONS && DH_CHUNK_FADING > 1 + uniform float far; +#endif + +varying float LIGHTNING; +uniform float frameTimeCounter; + + +//////////////////////////////VOID MAIN////////////////////////////// + +float blueNoise(){ + return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 ); +} + + +void main() { + #ifdef END_ISLAND_LIGHT + if (LIGHTNING > 0.0) discard; + + vec4 color = texture2D(tex,texcoord.xy); + + vec2 lmcoord; + float ao; + vec4 overlayColor; + + clrwl_computeFragment(color, color, lmcoord, ao, overlayColor); + color.rgb = mix(color.rgb, overlayColor.rgb, overlayColor.a); + + + gl_FragData[0] = color; + + // gl_FragData[0] = vec4(texture2D(tex,texcoord.xy).rgb * color.rgb, texture2DLod(tex, texcoord.xy, 0).a); + + #ifdef Stochastic_Transparent_Shadows + if(gl_FragData[0].a < blueNoise()) { discard; return;} + #endif + #else + gl_FragData[0] = vec4(0.0); + #endif +} \ No newline at end of file diff --git a/shaders/world1/clrwl_shadow.vsh b/shaders/world1/clrwl_shadow.vsh new file mode 100644 index 0000000..0a0e42c --- /dev/null +++ b/shaders/world1/clrwl_shadow.vsh @@ -0,0 +1,93 @@ +#version 430 compatibility + +#if defined IS_LPV_ENABLED + #extension GL_ARB_explicit_attrib_location: enable + #extension GL_ARB_shader_image_load_store: enable +#endif + +#define COLORWHEEL + +#include "/lib/SSBOs.glsl" + +#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 !! +*/ +#if defined IS_LPV_ENABLED || defined END_ISLAND_LIGHT + uniform int renderStage; + uniform mat4 shadowModelViewInverse; + uniform int entityId; + + #include "/lib/entities.glsl" +#endif + +#if defined IS_LPV_ENABLED + attribute vec4 mc_Entity; + #ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE + attribute vec4 at_midBlock; + #else + attribute vec3 at_midBlock; + #endif + attribute vec3 vaPosition; + + uniform vec3 chunkOffset; + uniform vec3 cameraPosition; + uniform vec3 relativeEyePosition; + uniform int currentRenderedItemId; + uniform int blockEntityId; + + #include "/lib/blocks.glsl" + #include "/lib/voxel_common.glsl" + #include "/lib/voxel_write.glsl" +#endif + +varying float LIGHTNING; +// out float entity; +varying vec4 color; + +varying vec2 texcoord; + + +//#include "/lib/Shadow_Params.glsl" + +// uniform int entityId; + + +void main() { + #if defined END_ISLAND_LIGHT || (defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store) + vec3 shadowViewPos = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + vec3 feetPlayerPos = mat3(shadowModelViewInverse) * shadowViewPos + shadowModelViewInverse[3].xyz; + #endif + + #if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store + #ifdef LPV_NOSHADOW_HACK + vec3 playerpos = gl_Vertex.xyz; + #else + vec3 playerpos = feetPlayerPos; + #endif + + PopulateShadowVoxel(playerpos); + #endif + + #ifdef END_ISLAND_LIGHT + texcoord.xy = gl_MultiTexCoord0.xy; + color = gl_Color; + + // hide lightning and dragon death beams + vec3 normal = normalize(gl_NormalMatrix * gl_Normal); + LIGHTNING = 0.0; + if (renderStage == MC_RENDER_STAGE_ENTITIES && (entityId == ENTITY_LIGHTNING || (entityId == 0 && gl_Color.a < 0.2 && abs(normal.y) < 0.2))) LIGHTNING = 1.0; + + gl_Position = customShadowPerspectiveSSBO * customShadowMatrixSSBO * vec4(feetPlayerPos, 1.0); + + gl_Position.z /= 6.0; + #else + gl_Position = vec4(-1.0); + #endif +}