From 6aee822284bd09306b885b9535dfa9d63e9e9670 Mon Sep 17 00:00:00 2001
From: kone <70107937+konekowo@users.noreply.github.com>
Date: Sat, 6 May 2023 14:41:29 -0400
Subject: [PATCH] u18 commit
---
desktopRuntime/eclipseProject/.classpath | 24 +-
desktopRuntime/eclipseProject/.project | 4 +-
.../eaglercraftDebugRuntime.launch | 4 +-
.../resources/assets/eagler/CREDITS.txt | 6 +-
.../assets/eagler/glsl/accel_font.fsh | 4 +-
.../assets/eagler/glsl/accel_font.vsh | 4 +-
.../assets/eagler/glsl/accel_particle.fsh | 4 +-
.../assets/eagler/glsl/accel_particle.vsh | 4 +-
.../resources/assets/eagler/glsl/core.fsh | 13 +-
.../resources/assets/eagler/glsl/core.vsh | 40 +-
.../eagler/glsl/deferred/accel_particle.vsh | 72 +
.../glsl/deferred/accel_particle_forward.fsh | 233 +
.../glsl/deferred/accel_particle_gbuffer.fsh | 42 +
.../glsl/deferred/assets_pbr/readme.txt | 1 +
.../textures/blocks/bed_feet_end_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/bed_feet_side_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/bed_feet_top_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/bed_head_end_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/bed_head_side_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/bed_head_top_s.ebp | Bin 0 -> 129 bytes
.../assets_pbr/textures/blocks/bedrock_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/bookshelf_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/brewing_stand_base_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/brewing_stand_s.ebp | Bin 0 -> 129 bytes
.../assets_pbr/textures/blocks/brick_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/cake_inner_s.ebp | Bin 0 -> 91 bytes
.../textures/blocks/cake_side_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/blocks/cake_top_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/blocks/coal_ore_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/coarse_dirt_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/cobblestone_mossy_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/cobblestone_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/comparator_off_s.ebp | Bin 0 -> 91 bytes
.../textures/blocks/comparator_on_s.ebp | Bin 0 -> 173 bytes
.../blocks/crafting_table_front_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/crafting_table_side_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/crafting_table_top_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/diamond_block_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/diamond_ore_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/dirt_podzol_side_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/dirt_podzol_top_s.ebp | Bin 0 -> 129 bytes
.../assets_pbr/textures/blocks/dirt_s.ebp | Bin 0 -> 129 bytes
.../blocks/dispenser_front_horizontal_s.ebp | Bin 0 -> 129 bytes
.../blocks/dispenser_front_vertical_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/door_acacia_lower_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_acacia_upper_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_birch_lower_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_birch_upper_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_dark_oak_lower_s.ebp | Bin 0 -> 91 bytes
.../textures/blocks/door_dark_oak_upper_s.ebp | Bin 0 -> 91 bytes
.../textures/blocks/door_jungle_lower_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_jungle_upper_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_spruce_lower_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_spruce_upper_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_wood_lower_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/door_wood_upper_s.ebp | Bin 0 -> 88 bytes
.../blocks/dropper_front_horizontal_s.ebp | Bin 0 -> 132 bytes
.../blocks/dropper_front_vertical_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/emerald_block_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/emerald_ore_s.ebp | Bin 0 -> 132 bytes
.../blocks/enchanting_table_bottom_s.ebp | Bin 0 -> 129 bytes
.../blocks/enchanting_table_side_s.ebp | Bin 0 -> 185 bytes
.../blocks/enchanting_table_top_s.ebp | Bin 0 -> 176 bytes
.../textures/blocks/end_stone_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/endframe_side_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/endframe_top_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/farmland_dry_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/farmland_wet_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/furnace_front_off_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/furnace_front_on_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/furnace_side_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/furnace_top_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/gold_block_s.ebp | Bin 0 -> 126 bytes
.../assets_pbr/textures/blocks/gold_ore_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/grass_side_overlay_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/grass_side_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/grass_side_snowed_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/grass_top_s.ebp | Bin 0 -> 129 bytes
.../assets_pbr/textures/blocks/gravel_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/iron_block_s.ebp | Bin 0 -> 129 bytes
.../assets_pbr/textures/blocks/iron_ore_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/lapis_block_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/lapis_ore_s.ebp | Bin 0 -> 132 bytes
.../textures/blocks/log_acacia_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/log_acacia_top_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/log_big_oak_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/log_big_oak_top_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/log_birch_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/log_birch_top_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/log_jungle_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/log_jungle_top_s.ebp | Bin 0 -> 135 bytes
.../assets_pbr/textures/blocks/log_oak_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/log_oak_top_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/log_spruce_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/log_spruce_top_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/netherrack_s.ebp | Bin 0 -> 129 bytes
.../assets_pbr/textures/blocks/obsidian_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/piston_bottom_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/piston_inner_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/piston_side_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/piston_top_normal_s.ebp | Bin 0 -> 182 bytes
.../textures/blocks/piston_top_sticky_s.ebp | Bin 0 -> 357 bytes
.../textures/blocks/planks_acacia_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/planks_big_oak_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/planks_birch_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/planks_jungle_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/planks_oak_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/planks_spruce_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/prismarine_bricks_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/prismarine_dark_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/prismarine_rough_s.ebp | Bin 0 -> 423 bytes
.../textures/blocks/pumpkin_face_off_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/pumpkin_face_on_s.ebp | Bin 0 -> 170 bytes
.../textures/blocks/quartz_block_bottom_s.ebp | Bin 0 -> 129 bytes
.../blocks/quartz_block_chiseled_s.ebp | Bin 0 -> 129 bytes
.../blocks/quartz_block_chiseled_top_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/quartz_block_lines_s.ebp | Bin 0 -> 129 bytes
.../blocks/quartz_block_lines_top_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/quartz_block_side_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/quartz_block_top_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/quartz_ore_s.ebp | Bin 0 -> 135 bytes
.../blocks/rail_activator_powered_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/rail_activator_s.ebp | Bin 0 -> 126 bytes
.../blocks/rail_detector_powered_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/rail_detector_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/rail_golden_powered_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/rail_golden_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/rail_normal_s.ebp | Bin 0 -> 91 bytes
.../textures/blocks/rail_normal_turned_s.ebp | Bin 0 -> 91 bytes
.../textures/blocks/redstone_lamp_off_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/redstone_lamp_on_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/redstone_ore_s.ebp | Bin 0 -> 170 bytes
.../textures/blocks/redstone_torch_off_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/redstone_torch_on_s.ebp | Bin 0 -> 91 bytes
.../textures/blocks/repeater_off_s.ebp | Bin 0 -> 88 bytes
.../textures/blocks/repeater_on_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/blocks/sand_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/sandstone_bottom_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/sandstone_carved_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/sandstone_normal_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/sandstone_smooth_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/sandstone_top_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/soul_sand_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/stone_andesite_s.ebp | Bin 0 -> 129 bytes
.../blocks/stone_andesite_smooth_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/stone_diorite_s.ebp | Bin 0 -> 129 bytes
.../blocks/stone_diorite_smooth_s.ebp | Bin 0 -> 170 bytes
.../textures/blocks/stone_granite_s.ebp | Bin 0 -> 129 bytes
.../blocks/stone_granite_smooth_s.ebp | Bin 0 -> 135 bytes
.../assets_pbr/textures/blocks/stone_s.ebp | Bin 0 -> 126 bytes
.../textures/blocks/stone_slab_side_s.ebp | Bin 0 -> 135 bytes
.../textures/blocks/stone_slab_top_s.ebp | Bin 0 -> 170 bytes
.../textures/blocks/stonebrick_carved_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/stonebrick_cracked_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/stonebrick_mossy_s.ebp | Bin 0 -> 170 bytes
.../textures/blocks/stonebrick_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/tnt_bottom_s.ebp | Bin 0 -> 126 bytes
.../assets_pbr/textures/blocks/tnt_side_s.ebp | Bin 0 -> 129 bytes
.../assets_pbr/textures/blocks/tnt_top_s.ebp | Bin 0 -> 126 bytes
.../assets_pbr/textures/blocks/torch_on_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/blocks/trapdoor_s.ebp | Bin 0 -> 129 bytes
.../textures/blocks/trip_wire_source_s.ebp | Bin 0 -> 232 bytes
.../textures/items/bow_pulling_0_s.ebp | Bin 0 -> 126 bytes
.../textures/items/bow_pulling_1_s.ebp | Bin 0 -> 126 bytes
.../textures/items/bow_pulling_2_s.ebp | Bin 0 -> 126 bytes
.../textures/items/bow_standby_s.ebp | Bin 0 -> 91 bytes
.../textures/items/brewing_stand_s.ebp | Bin 0 -> 126 bytes
.../textures/items/bucket_lava_s.ebp | Bin 0 -> 88 bytes
.../textures/items/bucket_milk_s.ebp | Bin 0 -> 88 bytes
.../textures/items/bucket_water_s.ebp | Bin 0 -> 88 bytes
.../textures/items/carrot_on_a_stick_s.ebp | Bin 0 -> 126 bytes
.../assets_pbr/textures/items/clock_s.ebp | Bin 0 -> 4123 bytes
.../assets_pbr/textures/items/compass_s.ebp | Bin 0 -> 3102 bytes
.../textures/items/diamond_axe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/diamond_hoe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/diamond_pickaxe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/diamond_shovel_s.ebp | Bin 0 -> 88 bytes
.../textures/items/diamond_sword_s.ebp | Bin 0 -> 88 bytes
.../textures/items/fishing_rod_cast_s.ebp | Bin 0 -> 91 bytes
.../textures/items/fishing_rod_uncast_s.ebp | Bin 0 -> 126 bytes
.../textures/items/flint_and_steel_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/items/gold_axe_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/items/gold_hoe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/gold_pickaxe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/gold_shovel_s.ebp | Bin 0 -> 88 bytes
.../textures/items/gold_sword_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/items/iron_axe_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/items/iron_hoe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/iron_pickaxe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/iron_shovel_s.ebp | Bin 0 -> 88 bytes
.../textures/items/iron_sword_s.ebp | Bin 0 -> 88 bytes
.../textures/items/minecart_chest_s.ebp | Bin 0 -> 88 bytes
.../items/minecart_command_block_s.ebp | Bin 0 -> 88 bytes
.../textures/items/minecart_furnace_s.ebp | Bin 0 -> 88 bytes
.../textures/items/minecart_tnt_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/items/shears_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/items/stone_axe_s.ebp | Bin 0 -> 88 bytes
.../assets_pbr/textures/items/stone_hoe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/stone_pickaxe_s.ebp | Bin 0 -> 88 bytes
.../textures/items/stone_shovel_s.ebp | Bin 0 -> 88 bytes
.../textures/items/stone_sword_s.ebp | Bin 0 -> 88 bytes
.../assets/eagler/glsl/deferred/brdf_lut.bmp | Bin 0 -> 8192 bytes
.../eagler/glsl/deferred/clouds_noise3d.fsh | 55 +
.../eagler/glsl/deferred/clouds_sample.fsh | 92 +
.../eagler/glsl/deferred/clouds_shapes.bmp | Bin 0 -> 12288 bytes
.../eagler/glsl/deferred/clouds_shapes.fsh | 33 +
.../eagler/glsl/deferred/clouds_shapes.vsh | 30 +
.../glsl/deferred/clouds_sun_occlusion.fsh | 48 +
.../eagler/glsl/deferred/deferred_combine.fsh | 172 +
.../eagler/glsl/deferred/deferred_core.vsh | 114 +
.../glsl/deferred/deferred_core_gbuffer.fsh | 166 +
.../eagler/glsl/deferred/deferred_fog.fsh | 101 +
.../eagler/glsl/deferred/deferred_local.vsh | 28 +
.../eagler/glsl/deferred/deferred_shadow.fsh | 59 +
.../eagler/glsl/deferred/deferred_shadow.vsh | 101 +
.../assets/eagler/glsl/deferred/dither16.bmp | Bin 0 -> 256 bytes
.../eagler/glsl/deferred/eagler_moon.bmp | Bin 0 -> 349570 bytes
.../eagler/glsl/deferred/emissive_items.csv | 9 +
.../eagler/glsl/deferred/forward_core.fsh | 471 +
.../eagler/glsl/deferred/forward_core.vsh | 101 +
.../deferred/forward_glass_highlights.fsh | 306 +
.../deferred/forward_glass_highlights.vsh | 52 +
.../glsl/deferred/gbuffer_debug_view.fsh | 109 +
.../eagler/glsl/deferred/hand_depth_mask.fsh | 27 +
.../eagler/glsl/deferred/lens_ghosts.bmp | Bin 0 -> 21880 bytes
.../eagler/glsl/deferred/lens_streaks.bmp | Bin 0 -> 10951 bytes
.../glsl/deferred/lens_sun_occlusion.fsh | 68 +
.../eagler/glsl/deferred/lib/pbr_env_map.glsl | 120 +
.../glsl/deferred/lib/pbr_lighting.glsl | 86 +
.../glsl/deferred/lib/waving_blocks.glsl | 218 +
.../eagler/glsl/deferred/light_point_mesh.dat | Bin 0 -> 522 bytes
.../glsl/deferred/light_shafts_sample.fsh | 158 +
.../eagler/glsl/deferred/lighting_mesh.vsh | 27 +
.../eagler/glsl/deferred/lighting_point.fsh | 86 +
.../eagler/glsl/deferred/lighting_sun.fsh | 100 +
.../deferred/material_block_constants.csv | 583 +
.../assets/eagler/glsl/deferred/metals.csv | 9 +
.../eagler/glsl/deferred/moon_render.fsh | 50 +
.../eagler/glsl/deferred/moon_render.vsh | 35 +
.../eagler/glsl/deferred/particles_s.png | Bin 0 -> 528 bytes
.../eagler/glsl/deferred/post_bloom_blur.fsh | 48 +
.../glsl/deferred/post_bloom_bright.fsh | 48 +
.../glsl/deferred/post_exposure_avg.fsh | 44 +
.../glsl/deferred/post_exposure_final.fsh | 40 +
.../assets/eagler/glsl/deferred/post_fxaa.fsh | 273 +
.../glsl/deferred/post_lens_distort.fsh | 38 +
.../eagler/glsl/deferred/post_lens_ghosts.fsh | 34 +
.../eagler/glsl/deferred/post_lens_ghosts.vsh | 65 +
.../glsl/deferred/post_lens_streaks.fsh | 34 +
.../glsl/deferred/post_lens_streaks.vsh | 40 +
.../eagler/glsl/deferred/post_tonemap.fsh | 55 +
.../assets/eagler/glsl/deferred/rain.png | Bin 0 -> 2046 bytes
.../glsl/deferred/realistic_water_control.fsh | 194 +
.../glsl/deferred/realistic_water_mask.fsh | 40 +
.../glsl/deferred/realistic_water_mask.vsh | 44 +
.../glsl/deferred/realistic_water_noise.bmp | 1 +
.../glsl/deferred/realistic_water_noise.fsh | 39 +
.../glsl/deferred/realistic_water_normals.fsh | 33 +
.../glsl/deferred/realistic_water_render.fsh | 433 +
.../glsl/deferred/realistic_water_render.vsh | 80 +
.../glsl/deferred/reproject_control.fsh | 236 +
.../eagler/glsl/deferred/reproject_ssr.fsh | 110 +
.../eagler/glsl/deferred/shader_pack_icon.png | Bin 0 -> 4307 bytes
.../glsl/deferred/shader_pack_info.json | 24 +
.../eagler/glsl/deferred/shadows_sun.fsh | 168 +
.../assets/eagler/glsl/deferred/skybox.dat | Bin 0 -> 9204 bytes
.../glsl/deferred/skybox_atmosphere.fsh | 126 +
.../glsl/deferred/skybox_irradiance.fsh | 231 +
.../eagler/glsl/deferred/skybox_render.fsh | 60 +
.../eagler/glsl/deferred/skybox_render.vsh | 49 +
.../glsl/deferred/skybox_render_end.fsh | 45 +
.../glsl/deferred/skybox_render_end.vsh | 33 +
.../eagler/glsl/deferred/ssao_generate.fsh | 96 +
.../eagler/glsl/deferred/ssao_noise.bmp | Bin 0 -> 16384 bytes
.../eagler/glsl/deferred/temperatures.lut | Bin 0 -> 1173 bytes
.../eagler/glsl/deferred/vertex_ids.csv | 120 +
.../resources/assets/eagler/glsl/local.vsh | 6 +-
.../assets/eagler/glsl/post_fxaa.fsh | 81 +-
.../assets/eagler/glsl/texture_blit.fsh | 45 +
.../assets/eagler/glsl/texture_blit.vsh | 32 +
.../assets/eagler/glsl/texture_mix.fsh | 4 +-
.../assets/minecraft/lang/en_US.lang | 111 +
.../minecraft/sounds/ambient/cave/cave1.ogg | Bin 14097 -> 14094 bytes
.../minecraft/sounds/ambient/cave/cave10.ogg | Bin 13176 -> 13163 bytes
.../minecraft/sounds/ambient/cave/cave11.ogg | Bin 19573 -> 19568 bytes
.../minecraft/sounds/ambient/cave/cave12.ogg | Bin 12175 -> 12176 bytes
.../minecraft/sounds/ambient/cave/cave13.ogg | Bin 16623 -> 16622 bytes
.../minecraft/sounds/ambient/cave/cave2.ogg | Bin 19038 -> 19039 bytes
.../minecraft/sounds/ambient/cave/cave3.ogg | Bin 26874 -> 26867 bytes
.../minecraft/sounds/ambient/cave/cave4.ogg | Bin 24523 -> 24532 bytes
.../minecraft/sounds/ambient/cave/cave5.ogg | Bin 28513 -> 28499 bytes
.../minecraft/sounds/ambient/cave/cave6.ogg | Bin 23824 -> 23815 bytes
.../minecraft/sounds/ambient/cave/cave7.ogg | Bin 23074 -> 23080 bytes
.../minecraft/sounds/ambient/cave/cave8.ogg | Bin 20201 -> 20203 bytes
.../minecraft/sounds/ambient/cave/cave9.ogg | Bin 16822 -> 16813 bytes
.../sounds/ambient/weather/rain1.ogg | Bin 11761 -> 11753 bytes
.../sounds/ambient/weather/rain2.ogg | Bin 11684 -> 11663 bytes
.../sounds/ambient/weather/rain3.ogg | Bin 11645 -> 11536 bytes
.../sounds/ambient/weather/rain4.ogg | Bin 11632 -> 11609 bytes
.../sounds/ambient/weather/thunder1.ogg | Bin 25212 -> 25190 bytes
.../sounds/ambient/weather/thunder2.ogg | Bin 26589 -> 26590 bytes
.../sounds/ambient/weather/thunder3.ogg | Bin 28201 -> 28207 bytes
.../minecraft/sounds/damage/fallbig.ogg | Bin 4440 -> 4439 bytes
.../minecraft/sounds/damage/fallsmall.ogg | Bin 4502 -> 4502 bytes
.../assets/minecraft/sounds/damage/hit1.ogg | Bin 4862 -> 4857 bytes
.../assets/minecraft/sounds/damage/hit2.ogg | Bin 4674 -> 4671 bytes
.../assets/minecraft/sounds/damage/hit3.ogg | Bin 5400 -> 5400 bytes
.../assets/minecraft/sounds/dig/cloth1.ogg | Bin 4377 -> 4377 bytes
.../assets/minecraft/sounds/dig/cloth2.ogg | Bin 4375 -> 4371 bytes
.../assets/minecraft/sounds/dig/cloth3.ogg | Bin 4570 -> 4563 bytes
.../assets/minecraft/sounds/dig/cloth4.ogg | Bin 4502 -> 4499 bytes
.../assets/minecraft/sounds/dig/grass1.ogg | Bin 5303 -> 5308 bytes
.../assets/minecraft/sounds/dig/grass2.ogg | Bin 5418 -> 5408 bytes
.../assets/minecraft/sounds/dig/grass3.ogg | Bin 5403 -> 5392 bytes
.../assets/minecraft/sounds/dig/grass4.ogg | Bin 5746 -> 5739 bytes
.../assets/minecraft/sounds/dig/gravel1.ogg | Bin 4943 -> 4940 bytes
.../assets/minecraft/sounds/dig/gravel2.ogg | Bin 5590 -> 5587 bytes
.../assets/minecraft/sounds/dig/gravel3.ogg | Bin 5171 -> 5164 bytes
.../assets/minecraft/sounds/dig/gravel4.ogg | Bin 5079 -> 5064 bytes
.../assets/minecraft/sounds/dig/sand1.ogg | Bin 4883 -> 4887 bytes
.../assets/minecraft/sounds/dig/sand2.ogg | Bin 4860 -> 4852 bytes
.../assets/minecraft/sounds/dig/sand3.ogg | Bin 4848 -> 4842 bytes
.../assets/minecraft/sounds/dig/sand4.ogg | Bin 4860 -> 4847 bytes
.../assets/minecraft/sounds/dig/snow1.ogg | Bin 5051 -> 5051 bytes
.../assets/minecraft/sounds/dig/snow2.ogg | Bin 5168 -> 5161 bytes
.../assets/minecraft/sounds/dig/snow3.ogg | Bin 5200 -> 5183 bytes
.../assets/minecraft/sounds/dig/snow4.ogg | Bin 5246 -> 5246 bytes
.../assets/minecraft/sounds/dig/stone1.ogg | Bin 5010 -> 5015 bytes
.../assets/minecraft/sounds/dig/stone2.ogg | Bin 5000 -> 4985 bytes
.../assets/minecraft/sounds/dig/stone3.ogg | Bin 4873 -> 4869 bytes
.../assets/minecraft/sounds/dig/stone4.ogg | Bin 4910 -> 4924 bytes
.../assets/minecraft/sounds/dig/wood1.ogg | Bin 4872 -> 4875 bytes
.../assets/minecraft/sounds/dig/wood2.ogg | Bin 4670 -> 4670 bytes
.../assets/minecraft/sounds/dig/wood3.ogg | Bin 4938 -> 4939 bytes
.../assets/minecraft/sounds/dig/wood4.ogg | Bin 5127 -> 5122 bytes
.../assets/minecraft/sounds/fire/fire.ogg | Bin 11744 -> 11749 bytes
.../assets/minecraft/sounds/fire/ignite.ogg | Bin 4831 -> 4831 bytes
.../minecraft/sounds/fireworks/blast1.ogg | Bin 6960 -> 6931 bytes
.../minecraft/sounds/fireworks/blast_far1.ogg | Bin 8718 -> 8715 bytes
.../sounds/fireworks/largeBlast1.ogg | Bin 9465 -> 9454 bytes
.../sounds/fireworks/largeBlast_far1.ogg | Bin 11746 -> 11747 bytes
.../minecraft/sounds/fireworks/launch1.ogg | Bin 9286 -> 9282 bytes
.../minecraft/sounds/fireworks/twinkle1.ogg | Bin 9294 -> 9295 bytes
.../sounds/fireworks/twinkle_far1.ogg | Bin 13621 -> 13617 bytes
.../assets/minecraft/sounds/liquid/lava.ogg | Bin 39247 -> 39243 bytes
.../minecraft/sounds/liquid/lavapop.ogg | Bin 4246 -> 4250 bytes
.../assets/minecraft/sounds/liquid/splash.ogg | Bin 9844 -> 9833 bytes
.../minecraft/sounds/liquid/splash2.ogg | Bin 16968 -> 16968 bytes
.../assets/minecraft/sounds/liquid/swim1.ogg | Bin 6395 -> 6395 bytes
.../assets/minecraft/sounds/liquid/swim2.ogg | Bin 6572 -> 6573 bytes
.../assets/minecraft/sounds/liquid/swim3.ogg | Bin 7228 -> 7223 bytes
.../assets/minecraft/sounds/liquid/swim4.ogg | Bin 5704 -> 5703 bytes
.../assets/minecraft/sounds/liquid/water.ogg | Bin 17621 -> 17613 bytes
.../assets/minecraft/sounds/minecart/base.ogg | Bin 11659 -> 11555 bytes
.../minecraft/sounds/minecart/inside.ogg | Bin 36171 -> 36203 bytes
.../assets/minecraft/sounds/mob/bat/death.ogg | Bin 6337 -> 6336 bytes
.../assets/minecraft/sounds/mob/bat/hurt1.ogg | Bin 4412 -> 4411 bytes
.../assets/minecraft/sounds/mob/bat/hurt2.ogg | Bin 4669 -> 4662 bytes
.../assets/minecraft/sounds/mob/bat/hurt3.ogg | Bin 4719 -> 4714 bytes
.../assets/minecraft/sounds/mob/bat/hurt4.ogg | Bin 4502 -> 4500 bytes
.../assets/minecraft/sounds/mob/bat/idle1.ogg | Bin 4607 -> 4615 bytes
.../assets/minecraft/sounds/mob/bat/idle2.ogg | Bin 4145 -> 4144 bytes
.../assets/minecraft/sounds/mob/bat/idle3.ogg | Bin 4217 -> 4180 bytes
.../assets/minecraft/sounds/mob/bat/idle4.ogg | Bin 4317 -> 4317 bytes
.../assets/minecraft/sounds/mob/bat/loop.ogg | Bin 11025 -> 11033 bytes
.../minecraft/sounds/mob/bat/takeoff.ogg | Bin 6556 -> 6542 bytes
.../minecraft/sounds/mob/blaze/breathe1.ogg | Bin 14410 -> 14413 bytes
.../minecraft/sounds/mob/blaze/breathe2.ogg | Bin 14160 -> 14160 bytes
.../minecraft/sounds/mob/blaze/breathe3.ogg | Bin 13676 -> 13680 bytes
.../minecraft/sounds/mob/blaze/breathe4.ogg | Bin 14162 -> 14154 bytes
.../minecraft/sounds/mob/blaze/death.ogg | Bin 17752 -> 17750 bytes
.../minecraft/sounds/mob/blaze/hit1.ogg | Bin 5748 -> 5746 bytes
.../minecraft/sounds/mob/blaze/hit2.ogg | Bin 5617 -> 5611 bytes
.../minecraft/sounds/mob/blaze/hit3.ogg | Bin 5640 -> 5625 bytes
.../minecraft/sounds/mob/blaze/hit4.ogg | Bin 5743 -> 5709 bytes
.../assets/minecraft/sounds/mob/cat/hiss1.ogg | Bin 8698 -> 8690 bytes
.../assets/minecraft/sounds/mob/cat/hiss2.ogg | Bin 8326 -> 8326 bytes
.../assets/minecraft/sounds/mob/cat/hiss3.ogg | Bin 8470 -> 8470 bytes
.../assets/minecraft/sounds/mob/cat/hitt1.ogg | Bin 5708 -> 5702 bytes
.../assets/minecraft/sounds/mob/cat/hitt2.ogg | Bin 6320 -> 6286 bytes
.../assets/minecraft/sounds/mob/cat/hitt3.ogg | Bin 5551 -> 5466 bytes
.../assets/minecraft/sounds/mob/cat/meow1.ogg | Bin 6405 -> 6396 bytes
.../assets/minecraft/sounds/mob/cat/meow2.ogg | Bin 6242 -> 6227 bytes
.../assets/minecraft/sounds/mob/cat/meow3.ogg | Bin 6320 -> 6325 bytes
.../assets/minecraft/sounds/mob/cat/meow4.ogg | Bin 6383 -> 6318 bytes
.../assets/minecraft/sounds/mob/cat/purr1.ogg | Bin 15705 -> 15704 bytes
.../assets/minecraft/sounds/mob/cat/purr2.ogg | Bin 16189 -> 16192 bytes
.../assets/minecraft/sounds/mob/cat/purr3.ogg | Bin 20094 -> 20085 bytes
.../minecraft/sounds/mob/cat/purreow1.ogg | Bin 7354 -> 7357 bytes
.../minecraft/sounds/mob/cat/purreow2.ogg | Bin 7598 -> 7573 bytes
.../minecraft/sounds/mob/chicken/hurt1.ogg | Bin 5867 -> 5850 bytes
.../minecraft/sounds/mob/chicken/hurt2.ogg | Bin 5196 -> 5181 bytes
.../minecraft/sounds/mob/chicken/plop.ogg | Bin 4227 -> 4221 bytes
.../minecraft/sounds/mob/chicken/say1.ogg | Bin 5985 -> 5985 bytes
.../minecraft/sounds/mob/chicken/say2.ogg | Bin 6829 -> 6829 bytes
.../minecraft/sounds/mob/chicken/say3.ogg | Bin 5761 -> 5761 bytes
.../minecraft/sounds/mob/chicken/step1.ogg | Bin 3781 -> 3779 bytes
.../minecraft/sounds/mob/chicken/step2.ogg | Bin 3836 -> 3825 bytes
.../assets/minecraft/sounds/mob/cow/hurt1.ogg | Bin 5776 -> 5778 bytes
.../assets/minecraft/sounds/mob/cow/hurt2.ogg | Bin 6163 -> 6173 bytes
.../assets/minecraft/sounds/mob/cow/hurt3.ogg | Bin 6640 -> 6638 bytes
.../assets/minecraft/sounds/mob/cow/say1.ogg | Bin 6895 -> 6899 bytes
.../assets/minecraft/sounds/mob/cow/say2.ogg | Bin 8796 -> 8795 bytes
.../assets/minecraft/sounds/mob/cow/say3.ogg | Bin 8917 -> 8899 bytes
.../assets/minecraft/sounds/mob/cow/say4.ogg | Bin 8227 -> 8220 bytes
.../assets/minecraft/sounds/mob/cow/step1.ogg | Bin 5903 -> 5914 bytes
.../assets/minecraft/sounds/mob/cow/step2.ogg | Bin 6092 -> 6098 bytes
.../assets/minecraft/sounds/mob/cow/step3.ogg | Bin 5982 -> 5964 bytes
.../assets/minecraft/sounds/mob/cow/step4.ogg | Bin 6032 -> 5972 bytes
.../minecraft/sounds/mob/creeper/death.ogg | Bin 8291 -> 8289 bytes
.../minecraft/sounds/mob/creeper/say1.ogg | Bin 5551 -> 5519 bytes
.../minecraft/sounds/mob/creeper/say2.ogg | Bin 5599 -> 5598 bytes
.../minecraft/sounds/mob/creeper/say3.ogg | Bin 5498 -> 5455 bytes
.../minecraft/sounds/mob/creeper/say4.ogg | Bin 5828 -> 5809 bytes
.../minecraft/sounds/mob/enderdragon/end.ogg | Bin 70485 -> 70484 bytes
.../sounds/mob/enderdragon/growl1.ogg | Bin 15360 -> 15347 bytes
.../sounds/mob/enderdragon/growl2.ogg | Bin 15590 -> 15576 bytes
.../sounds/mob/enderdragon/growl3.ogg | Bin 15832 -> 15781 bytes
.../sounds/mob/enderdragon/growl4.ogg | Bin 15317 -> 15315 bytes
.../minecraft/sounds/mob/enderdragon/hit1.ogg | Bin 7357 -> 7360 bytes
.../minecraft/sounds/mob/enderdragon/hit2.ogg | Bin 7346 -> 7316 bytes
.../minecraft/sounds/mob/enderdragon/hit3.ogg | Bin 7305 -> 7276 bytes
.../minecraft/sounds/mob/enderdragon/hit4.ogg | Bin 7371 -> 7340 bytes
.../sounds/mob/enderdragon/wings1.ogg | Bin 7415 -> 7414 bytes
.../sounds/mob/enderdragon/wings2.ogg | Bin 7239 -> 7236 bytes
.../sounds/mob/enderdragon/wings3.ogg | Bin 6943 -> 6939 bytes
.../sounds/mob/enderdragon/wings4.ogg | Bin 8104 -> 8071 bytes
.../sounds/mob/enderdragon/wings5.ogg | Bin 7965 -> 7937 bytes
.../sounds/mob/enderdragon/wings6.ogg | Bin 7658 -> 7627 bytes
.../minecraft/sounds/mob/endermen/death.ogg | Bin 10092 -> 10084 bytes
.../minecraft/sounds/mob/endermen/hit1.ogg | Bin 5304 -> 5291 bytes
.../minecraft/sounds/mob/endermen/hit2.ogg | Bin 5085 -> 5079 bytes
.../minecraft/sounds/mob/endermen/hit3.ogg | Bin 5141 -> 5131 bytes
.../minecraft/sounds/mob/endermen/hit4.ogg | Bin 4879 -> 4879 bytes
.../minecraft/sounds/mob/endermen/idle1.ogg | Bin 5723 -> 5714 bytes
.../minecraft/sounds/mob/endermen/idle2.ogg | Bin 6525 -> 6525 bytes
.../minecraft/sounds/mob/endermen/idle3.ogg | Bin 7343 -> 7293 bytes
.../minecraft/sounds/mob/endermen/idle4.ogg | Bin 8352 -> 8339 bytes
.../minecraft/sounds/mob/endermen/idle5.ogg | Bin 7133 -> 7133 bytes
.../minecraft/sounds/mob/endermen/portal.ogg | Bin 6840 -> 6840 bytes
.../minecraft/sounds/mob/endermen/portal2.ogg | Bin 5533 -> 5533 bytes
.../minecraft/sounds/mob/endermen/scream1.ogg | Bin 7402 -> 7402 bytes
.../minecraft/sounds/mob/endermen/scream2.ogg | Bin 7244 -> 7229 bytes
.../minecraft/sounds/mob/endermen/scream3.ogg | Bin 6952 -> 6943 bytes
.../minecraft/sounds/mob/endermen/scream4.ogg | Bin 7323 -> 7314 bytes
.../minecraft/sounds/mob/endermen/stare.ogg | Bin 64954 -> 64957 bytes
.../sounds/mob/ghast/affectionate_scream.ogg | Bin 6515 -> 6501 bytes
.../minecraft/sounds/mob/ghast/charge.ogg | Bin 8420 -> 8409 bytes
.../minecraft/sounds/mob/ghast/death.ogg | Bin 15873 -> 15867 bytes
.../minecraft/sounds/mob/ghast/fireball4.ogg | Bin 6428 -> 6421 bytes
.../minecraft/sounds/mob/ghast/moan1.ogg | Bin 6557 -> 6516 bytes
.../minecraft/sounds/mob/ghast/moan2.ogg | Bin 6788 -> 6792 bytes
.../minecraft/sounds/mob/ghast/moan3.ogg | Bin 6580 -> 6581 bytes
.../minecraft/sounds/mob/ghast/moan4.ogg | Bin 6789 -> 6786 bytes
.../minecraft/sounds/mob/ghast/moan5.ogg | Bin 9442 -> 9438 bytes
.../minecraft/sounds/mob/ghast/moan6.ogg | Bin 12538 -> 12534 bytes
.../minecraft/sounds/mob/ghast/moan7.ogg | Bin 6957 -> 6955 bytes
.../minecraft/sounds/mob/ghast/scream1.ogg | Bin 7966 -> 7933 bytes
.../minecraft/sounds/mob/ghast/scream2.ogg | Bin 8605 -> 8603 bytes
.../minecraft/sounds/mob/ghast/scream3.ogg | Bin 6909 -> 6905 bytes
.../minecraft/sounds/mob/ghast/scream4.ogg | Bin 8611 -> 8581 bytes
.../minecraft/sounds/mob/ghast/scream5.ogg | Bin 8298 -> 8299 bytes
.../sounds/mob/guardian/attack_loop.ogg | Bin 11626 -> 11523 bytes
.../minecraft/sounds/mob/guardian/curse.ogg | Bin 13713 -> 13713 bytes
.../sounds/mob/guardian/elder_death.ogg | Bin 12416 -> 12416 bytes
.../sounds/mob/guardian/elder_hit1.ogg | Bin 6374 -> 6371 bytes
.../sounds/mob/guardian/elder_hit2.ogg | Bin 6318 -> 6316 bytes
.../sounds/mob/guardian/elder_hit3.ogg | Bin 6501 -> 6500 bytes
.../sounds/mob/guardian/elder_hit4.ogg | Bin 6494 -> 6492 bytes
.../sounds/mob/guardian/elder_idle1.ogg | Bin 10781 -> 10778 bytes
.../sounds/mob/guardian/elder_idle2.ogg | Bin 12030 -> 12027 bytes
.../sounds/mob/guardian/elder_idle3.ogg | Bin 10586 -> 10600 bytes
.../sounds/mob/guardian/elder_idle4.ogg | Bin 12501 -> 12499 bytes
.../minecraft/sounds/mob/guardian/flop1.ogg | Bin 5649 -> 5648 bytes
.../minecraft/sounds/mob/guardian/flop2.ogg | Bin 5297 -> 5290 bytes
.../minecraft/sounds/mob/guardian/flop3.ogg | Bin 5126 -> 5122 bytes
.../minecraft/sounds/mob/guardian/flop4.ogg | Bin 5335 -> 5331 bytes
.../sounds/mob/guardian/guardian_death.ogg | Bin 9484 -> 9483 bytes
.../sounds/mob/guardian/guardian_hit1.ogg | Bin 6843 -> 6838 bytes
.../sounds/mob/guardian/guardian_hit2.ogg | Bin 6685 -> 6626 bytes
.../sounds/mob/guardian/guardian_hit3.ogg | Bin 6775 -> 6766 bytes
.../sounds/mob/guardian/guardian_hit4.ogg | Bin 6647 -> 6648 bytes
.../sounds/mob/guardian/guardian_idle1.ogg | Bin 9418 -> 9386 bytes
.../sounds/mob/guardian/guardian_idle2.ogg | Bin 9416 -> 9385 bytes
.../sounds/mob/guardian/guardian_idle3.ogg | Bin 9104 -> 9064 bytes
.../sounds/mob/guardian/guardian_idle4.ogg | Bin 8853 -> 8827 bytes
.../sounds/mob/guardian/land_death.ogg | Bin 7951 -> 7951 bytes
.../sounds/mob/guardian/land_hit1.ogg | Bin 7366 -> 7336 bytes
.../sounds/mob/guardian/land_hit2.ogg | Bin 7176 -> 7179 bytes
.../sounds/mob/guardian/land_hit3.ogg | Bin 7724 -> 7723 bytes
.../sounds/mob/guardian/land_hit4.ogg | Bin 6855 -> 6854 bytes
.../sounds/mob/guardian/land_idle1.ogg | Bin 5231 -> 5231 bytes
.../sounds/mob/guardian/land_idle2.ogg | Bin 4775 -> 4769 bytes
.../sounds/mob/guardian/land_idle3.ogg | Bin 5321 -> 5321 bytes
.../sounds/mob/guardian/land_idle4.ogg | Bin 4761 -> 4752 bytes
.../minecraft/sounds/mob/horse/angry1.ogg | Bin 7423 -> 7420 bytes
.../minecraft/sounds/mob/horse/armor.ogg | Bin 8492 -> 8480 bytes
.../minecraft/sounds/mob/horse/breathe1.ogg | Bin 6274 -> 6264 bytes
.../minecraft/sounds/mob/horse/breathe2.ogg | Bin 5969 -> 5970 bytes
.../minecraft/sounds/mob/horse/breathe3.ogg | Bin 4854 -> 4853 bytes
.../minecraft/sounds/mob/horse/death.ogg | Bin 9608 -> 9606 bytes
.../sounds/mob/horse/donkey/angry1.ogg | Bin 8172 -> 8172 bytes
.../sounds/mob/horse/donkey/angry2.ogg | Bin 7862 -> 7846 bytes
.../sounds/mob/horse/donkey/death.ogg | Bin 8889 -> 8886 bytes
.../sounds/mob/horse/donkey/hit1.ogg | Bin 5385 -> 5384 bytes
.../sounds/mob/horse/donkey/hit2.ogg | Bin 4942 -> 4929 bytes
.../sounds/mob/horse/donkey/hit3.ogg | Bin 5615 -> 5615 bytes
.../sounds/mob/horse/donkey/idle1.ogg | Bin 5289 -> 5285 bytes
.../sounds/mob/horse/donkey/idle2.ogg | Bin 5263 -> 5262 bytes
.../sounds/mob/horse/donkey/idle3.ogg | Bin 7638 -> 7593 bytes
.../minecraft/sounds/mob/horse/gallop1.ogg | Bin 5997 -> 5992 bytes
.../minecraft/sounds/mob/horse/gallop2.ogg | Bin 6022 -> 6021 bytes
.../minecraft/sounds/mob/horse/gallop3.ogg | Bin 5869 -> 5867 bytes
.../minecraft/sounds/mob/horse/gallop4.ogg | Bin 6170 -> 6165 bytes
.../minecraft/sounds/mob/horse/hit1.ogg | Bin 4980 -> 4984 bytes
.../minecraft/sounds/mob/horse/hit2.ogg | Bin 4943 -> 4936 bytes
.../minecraft/sounds/mob/horse/hit3.ogg | Bin 5086 -> 5084 bytes
.../minecraft/sounds/mob/horse/hit4.ogg | Bin 5354 -> 5350 bytes
.../minecraft/sounds/mob/horse/idle1.ogg | Bin 6900 -> 6901 bytes
.../minecraft/sounds/mob/horse/idle2.ogg | Bin 6401 -> 6404 bytes
.../minecraft/sounds/mob/horse/idle3.ogg | Bin 7444 -> 7442 bytes
.../minecraft/sounds/mob/horse/jump.ogg | Bin 5555 -> 5553 bytes
.../minecraft/sounds/mob/horse/land.ogg | Bin 6201 -> 6201 bytes
.../minecraft/sounds/mob/horse/leather.ogg | Bin 7127 -> 7125 bytes
.../sounds/mob/horse/skeleton/death.ogg | Bin 12575 -> 12575 bytes
.../sounds/mob/horse/skeleton/hit1.ogg | Bin 5712 -> 5709 bytes
.../sounds/mob/horse/skeleton/hit2.ogg | Bin 5672 -> 5670 bytes
.../sounds/mob/horse/skeleton/hit3.ogg | Bin 6560 -> 6563 bytes
.../sounds/mob/horse/skeleton/hit4.ogg | Bin 6123 -> 6126 bytes
.../sounds/mob/horse/skeleton/idle1.ogg | Bin 8578 -> 8569 bytes
.../sounds/mob/horse/skeleton/idle2.ogg | Bin 6654 -> 6660 bytes
.../sounds/mob/horse/skeleton/idle3.ogg | Bin 8593 -> 8596 bytes
.../minecraft/sounds/mob/horse/soft1.ogg | Bin 4980 -> 4978 bytes
.../minecraft/sounds/mob/horse/soft2.ogg | Bin 4776 -> 4776 bytes
.../minecraft/sounds/mob/horse/soft3.ogg | Bin 4570 -> 4568 bytes
.../minecraft/sounds/mob/horse/soft4.ogg | Bin 5144 -> 5144 bytes
.../minecraft/sounds/mob/horse/soft5.ogg | Bin 5168 -> 5168 bytes
.../minecraft/sounds/mob/horse/soft6.ogg | Bin 5031 -> 5036 bytes
.../minecraft/sounds/mob/horse/wood1.ogg | Bin 5549 -> 5549 bytes
.../minecraft/sounds/mob/horse/wood2.ogg | Bin 5567 -> 5567 bytes
.../minecraft/sounds/mob/horse/wood3.ogg | Bin 5116 -> 5116 bytes
.../minecraft/sounds/mob/horse/wood4.ogg | Bin 5012 -> 5010 bytes
.../minecraft/sounds/mob/horse/wood5.ogg | Bin 5433 -> 5433 bytes
.../minecraft/sounds/mob/horse/wood6.ogg | Bin 5532 -> 5532 bytes
.../sounds/mob/horse/zombie/death.ogg | Bin 14926 -> 14932 bytes
.../sounds/mob/horse/zombie/hit1.ogg | Bin 6687 -> 6687 bytes
.../sounds/mob/horse/zombie/hit2.ogg | Bin 5756 -> 5733 bytes
.../sounds/mob/horse/zombie/hit3.ogg | Bin 5865 -> 5844 bytes
.../sounds/mob/horse/zombie/hit4.ogg | Bin 6319 -> 6311 bytes
.../sounds/mob/horse/zombie/idle1.ogg | Bin 8645 -> 8643 bytes
.../sounds/mob/horse/zombie/idle2.ogg | Bin 8528 -> 8528 bytes
.../sounds/mob/horse/zombie/idle3.ogg | Bin 8022 -> 8020 bytes
.../minecraft/sounds/mob/irongolem/death.ogg | Bin 11462 -> 11433 bytes
.../minecraft/sounds/mob/irongolem/hit1.ogg | Bin 6802 -> 6794 bytes
.../minecraft/sounds/mob/irongolem/hit2.ogg | Bin 6527 -> 6527 bytes
.../minecraft/sounds/mob/irongolem/hit3.ogg | Bin 6694 -> 6690 bytes
.../minecraft/sounds/mob/irongolem/hit4.ogg | Bin 6433 -> 6437 bytes
.../minecraft/sounds/mob/irongolem/throw.ogg | Bin 4623 -> 4623 bytes
.../minecraft/sounds/mob/irongolem/walk1.ogg | Bin 5376 -> 5376 bytes
.../minecraft/sounds/mob/irongolem/walk2.ogg | Bin 5376 -> 5374 bytes
.../minecraft/sounds/mob/irongolem/walk3.ogg | Bin 5232 -> 5212 bytes
.../minecraft/sounds/mob/irongolem/walk4.ogg | Bin 5329 -> 5320 bytes
.../minecraft/sounds/mob/magmacube/big1.ogg | Bin 6909 -> 6907 bytes
.../minecraft/sounds/mob/magmacube/big2.ogg | Bin 5840 -> 5839 bytes
.../minecraft/sounds/mob/magmacube/big3.ogg | Bin 6237 -> 6233 bytes
.../minecraft/sounds/mob/magmacube/big4.ogg | Bin 6825 -> 6817 bytes
.../minecraft/sounds/mob/magmacube/jump1.ogg | Bin 8201 -> 8199 bytes
.../minecraft/sounds/mob/magmacube/jump2.ogg | Bin 8988 -> 8987 bytes
.../minecraft/sounds/mob/magmacube/jump3.ogg | Bin 8469 -> 8457 bytes
.../minecraft/sounds/mob/magmacube/jump4.ogg | Bin 8969 -> 8968 bytes
.../minecraft/sounds/mob/magmacube/small1.ogg | Bin 4949 -> 4939 bytes
.../minecraft/sounds/mob/magmacube/small2.ogg | Bin 4597 -> 4595 bytes
.../minecraft/sounds/mob/magmacube/small3.ogg | Bin 4581 -> 4578 bytes
.../minecraft/sounds/mob/magmacube/small4.ogg | Bin 4609 -> 4609 bytes
.../minecraft/sounds/mob/magmacube/small5.ogg | Bin 4337 -> 4337 bytes
.../assets/minecraft/sounds/mob/pig/death.ogg | Bin 6416 -> 6385 bytes
.../assets/minecraft/sounds/mob/pig/say1.ogg | Bin 5213 -> 5211 bytes
.../assets/minecraft/sounds/mob/pig/say2.ogg | Bin 5455 -> 5444 bytes
.../assets/minecraft/sounds/mob/pig/say3.ogg | Bin 4966 -> 4968 bytes
.../assets/minecraft/sounds/mob/pig/step1.ogg | Bin 4566 -> 4572 bytes
.../assets/minecraft/sounds/mob/pig/step2.ogg | Bin 4219 -> 4226 bytes
.../assets/minecraft/sounds/mob/pig/step3.ogg | Bin 4294 -> 4289 bytes
.../assets/minecraft/sounds/mob/pig/step4.ogg | Bin 4109 -> 4112 bytes
.../assets/minecraft/sounds/mob/pig/step5.ogg | Bin 4567 -> 4507 bytes
.../sounds/mob/rabbit/bunnymurder.ogg | Bin 5512 -> 5512 bytes
.../minecraft/sounds/mob/rabbit/hop1.ogg | Bin 4699 -> 4699 bytes
.../minecraft/sounds/mob/rabbit/hop2.ogg | Bin 4957 -> 4951 bytes
.../minecraft/sounds/mob/rabbit/hop3.ogg | Bin 4826 -> 4826 bytes
.../minecraft/sounds/mob/rabbit/hop4.ogg | Bin 4672 -> 4667 bytes
.../minecraft/sounds/mob/rabbit/hurt1.ogg | Bin 5201 -> 5193 bytes
.../minecraft/sounds/mob/rabbit/hurt2.ogg | Bin 4856 -> 4856 bytes
.../minecraft/sounds/mob/rabbit/hurt3.ogg | Bin 5167 -> 5117 bytes
.../minecraft/sounds/mob/rabbit/hurt4.ogg | Bin 5085 -> 5082 bytes
.../minecraft/sounds/mob/rabbit/idle1.ogg | Bin 4565 -> 4557 bytes
.../minecraft/sounds/mob/rabbit/idle2.ogg | Bin 5314 -> 5307 bytes
.../minecraft/sounds/mob/rabbit/idle3.ogg | Bin 4765 -> 4765 bytes
.../minecraft/sounds/mob/rabbit/idle4.ogg | Bin 5900 -> 5898 bytes
.../minecraft/sounds/mob/sheep/say1.ogg | Bin 7713 -> 7710 bytes
.../minecraft/sounds/mob/sheep/say2.ogg | Bin 7404 -> 7394 bytes
.../minecraft/sounds/mob/sheep/say3.ogg | Bin 7919 -> 7928 bytes
.../minecraft/sounds/mob/sheep/shear.ogg | Bin 5455 -> 5432 bytes
.../minecraft/sounds/mob/sheep/step1.ogg | Bin 4340 -> 4331 bytes
.../minecraft/sounds/mob/sheep/step2.ogg | Bin 4369 -> 4365 bytes
.../minecraft/sounds/mob/sheep/step3.ogg | Bin 4359 -> 4334 bytes
.../minecraft/sounds/mob/sheep/step4.ogg | Bin 4437 -> 4435 bytes
.../minecraft/sounds/mob/sheep/step5.ogg | Bin 4508 -> 4508 bytes
.../minecraft/sounds/mob/silverfish/hit1.ogg | Bin 5468 -> 5470 bytes
.../minecraft/sounds/mob/silverfish/hit2.ogg | Bin 5082 -> 5082 bytes
.../minecraft/sounds/mob/silverfish/hit3.ogg | Bin 5229 -> 5222 bytes
.../minecraft/sounds/mob/silverfish/kill.ogg | Bin 7539 -> 7537 bytes
.../minecraft/sounds/mob/silverfish/say1.ogg | Bin 5092 -> 5084 bytes
.../minecraft/sounds/mob/silverfish/say2.ogg | Bin 7020 -> 6954 bytes
.../minecraft/sounds/mob/silverfish/say3.ogg | Bin 5563 -> 5517 bytes
.../minecraft/sounds/mob/silverfish/say4.ogg | Bin 5167 -> 5225 bytes
.../minecraft/sounds/mob/silverfish/step1.ogg | Bin 6148 -> 6148 bytes
.../minecraft/sounds/mob/silverfish/step2.ogg | Bin 6330 -> 6334 bytes
.../minecraft/sounds/mob/silverfish/step3.ogg | Bin 6653 -> 6653 bytes
.../minecraft/sounds/mob/silverfish/step4.ogg | Bin 6437 -> 6440 bytes
.../minecraft/sounds/mob/skeleton/death.ogg | Bin 10170 -> 10167 bytes
.../minecraft/sounds/mob/skeleton/hurt1.ogg | Bin 6880 -> 6895 bytes
.../minecraft/sounds/mob/skeleton/hurt2.ogg | Bin 5997 -> 5983 bytes
.../minecraft/sounds/mob/skeleton/hurt3.ogg | Bin 6637 -> 6637 bytes
.../minecraft/sounds/mob/skeleton/hurt4.ogg | Bin 5980 -> 5979 bytes
.../minecraft/sounds/mob/skeleton/say1.ogg | Bin 6277 -> 6272 bytes
.../minecraft/sounds/mob/skeleton/say2.ogg | Bin 6200 -> 6197 bytes
.../minecraft/sounds/mob/skeleton/say3.ogg | Bin 6282 -> 6275 bytes
.../minecraft/sounds/mob/skeleton/step1.ogg | Bin 6302 -> 6301 bytes
.../minecraft/sounds/mob/skeleton/step2.ogg | Bin 6256 -> 6259 bytes
.../minecraft/sounds/mob/skeleton/step3.ogg | Bin 6048 -> 6047 bytes
.../minecraft/sounds/mob/skeleton/step4.ogg | Bin 6139 -> 6137 bytes
.../minecraft/sounds/mob/slime/attack1.ogg | Bin 5619 -> 5622 bytes
.../minecraft/sounds/mob/slime/attack2.ogg | Bin 5456 -> 5443 bytes
.../minecraft/sounds/mob/slime/big1.ogg | Bin 6909 -> 6907 bytes
.../minecraft/sounds/mob/slime/big2.ogg | Bin 5840 -> 5839 bytes
.../minecraft/sounds/mob/slime/big3.ogg | Bin 6237 -> 6233 bytes
.../minecraft/sounds/mob/slime/big4.ogg | Bin 6825 -> 6817 bytes
.../minecraft/sounds/mob/slime/small1.ogg | Bin 4949 -> 4939 bytes
.../minecraft/sounds/mob/slime/small2.ogg | Bin 4597 -> 4595 bytes
.../minecraft/sounds/mob/slime/small3.ogg | Bin 4581 -> 4578 bytes
.../minecraft/sounds/mob/slime/small4.ogg | Bin 4609 -> 4609 bytes
.../minecraft/sounds/mob/slime/small5.ogg | Bin 4337 -> 4337 bytes
.../minecraft/sounds/mob/spider/death.ogg | Bin 8962 -> 8954 bytes
.../minecraft/sounds/mob/spider/say1.ogg | Bin 6431 -> 6431 bytes
.../minecraft/sounds/mob/spider/say2.ogg | Bin 5730 -> 5719 bytes
.../minecraft/sounds/mob/spider/say3.ogg | Bin 6005 -> 6004 bytes
.../minecraft/sounds/mob/spider/say4.ogg | Bin 5227 -> 5227 bytes
.../minecraft/sounds/mob/spider/step1.ogg | Bin 6621 -> 6616 bytes
.../minecraft/sounds/mob/spider/step2.ogg | Bin 6611 -> 6605 bytes
.../minecraft/sounds/mob/spider/step3.ogg | Bin 6761 -> 6740 bytes
.../minecraft/sounds/mob/spider/step4.ogg | Bin 6827 -> 6830 bytes
.../minecraft/sounds/mob/villager/death.ogg | Bin 5796 -> 5796 bytes
.../minecraft/sounds/mob/villager/haggle1.ogg | Bin 5346 -> 5339 bytes
.../minecraft/sounds/mob/villager/haggle2.ogg | Bin 5583 -> 5573 bytes
.../minecraft/sounds/mob/villager/haggle3.ogg | Bin 5504 -> 5488 bytes
.../minecraft/sounds/mob/villager/hit1.ogg | Bin 4867 -> 4853 bytes
.../minecraft/sounds/mob/villager/hit2.ogg | Bin 4548 -> 4534 bytes
.../minecraft/sounds/mob/villager/hit3.ogg | Bin 4704 -> 4685 bytes
.../minecraft/sounds/mob/villager/hit4.ogg | Bin 4519 -> 4521 bytes
.../minecraft/sounds/mob/villager/idle1.ogg | Bin 6260 -> 6258 bytes
.../minecraft/sounds/mob/villager/idle2.ogg | Bin 7208 -> 7208 bytes
.../minecraft/sounds/mob/villager/idle3.ogg | Bin 5445 -> 5439 bytes
.../minecraft/sounds/mob/villager/no1.ogg | Bin 5771 -> 5755 bytes
.../minecraft/sounds/mob/villager/no2.ogg | Bin 5492 -> 5478 bytes
.../minecraft/sounds/mob/villager/no3.ogg | Bin 6091 -> 6093 bytes
.../minecraft/sounds/mob/villager/yes1.ogg | Bin 6635 -> 6633 bytes
.../minecraft/sounds/mob/villager/yes2.ogg | Bin 7219 -> 7214 bytes
.../minecraft/sounds/mob/villager/yes3.ogg | Bin 5161 -> 5162 bytes
.../minecraft/sounds/mob/wither/death.ogg | Bin 31619 -> 31617 bytes
.../minecraft/sounds/mob/wither/hurt1.ogg | Bin 9405 -> 9404 bytes
.../minecraft/sounds/mob/wither/hurt2.ogg | Bin 9775 -> 9770 bytes
.../minecraft/sounds/mob/wither/hurt3.ogg | Bin 9512 -> 9512 bytes
.../minecraft/sounds/mob/wither/hurt4.ogg | Bin 9451 -> 9451 bytes
.../minecraft/sounds/mob/wither/idle1.ogg | Bin 11724 -> 11723 bytes
.../minecraft/sounds/mob/wither/idle2.ogg | Bin 11977 -> 11976 bytes
.../minecraft/sounds/mob/wither/idle3.ogg | Bin 12129 -> 12123 bytes
.../minecraft/sounds/mob/wither/idle4.ogg | Bin 12022 -> 11988 bytes
.../minecraft/sounds/mob/wither/shoot.ogg | Bin 7629 -> 7580 bytes
.../minecraft/sounds/mob/wither/spawn.ogg | Bin 23928 -> 23928 bytes
.../minecraft/sounds/mob/wolf/bark1.ogg | Bin 4890 -> 4890 bytes
.../minecraft/sounds/mob/wolf/bark2.ogg | Bin 4940 -> 4945 bytes
.../minecraft/sounds/mob/wolf/bark3.ogg | Bin 5025 -> 5023 bytes
.../minecraft/sounds/mob/wolf/death.ogg | Bin 6194 -> 6167 bytes
.../minecraft/sounds/mob/wolf/growl1.ogg | Bin 9784 -> 9786 bytes
.../minecraft/sounds/mob/wolf/growl2.ogg | Bin 8012 -> 8001 bytes
.../minecraft/sounds/mob/wolf/growl3.ogg | Bin 10789 -> 10789 bytes
.../minecraft/sounds/mob/wolf/howl1.ogg | Bin 14979 -> 14970 bytes
.../minecraft/sounds/mob/wolf/howl2.ogg | Bin 16757 -> 16741 bytes
.../minecraft/sounds/mob/wolf/hurt1.ogg | Bin 5428 -> 5353 bytes
.../minecraft/sounds/mob/wolf/hurt2.ogg | Bin 5203 -> 5198 bytes
.../minecraft/sounds/mob/wolf/hurt3.ogg | Bin 5390 -> 5334 bytes
.../minecraft/sounds/mob/wolf/panting.ogg | Bin 6384 -> 6350 bytes
.../minecraft/sounds/mob/wolf/shake.ogg | Bin 10582 -> 10574 bytes
.../minecraft/sounds/mob/wolf/step1.ogg | Bin 4220 -> 4215 bytes
.../minecraft/sounds/mob/wolf/step2.ogg | Bin 4250 -> 4245 bytes
.../minecraft/sounds/mob/wolf/step3.ogg | Bin 4234 -> 4233 bytes
.../minecraft/sounds/mob/wolf/step4.ogg | Bin 4351 -> 4348 bytes
.../minecraft/sounds/mob/wolf/step5.ogg | Bin 4435 -> 4430 bytes
.../minecraft/sounds/mob/wolf/whine.ogg | Bin 6482 -> 6417 bytes
.../minecraft/sounds/mob/zombie/death.ogg | Bin 6578 -> 6573 bytes
.../minecraft/sounds/mob/zombie/hurt1.ogg | Bin 7204 -> 7203 bytes
.../minecraft/sounds/mob/zombie/hurt2.ogg | Bin 7509 -> 7474 bytes
.../minecraft/sounds/mob/zombie/infect.ogg | Bin 11129 -> 11129 bytes
.../minecraft/sounds/mob/zombie/metal1.ogg | Bin 6348 -> 6344 bytes
.../minecraft/sounds/mob/zombie/metal2.ogg | Bin 6600 -> 6594 bytes
.../minecraft/sounds/mob/zombie/metal3.ogg | Bin 6360 -> 6357 bytes
.../minecraft/sounds/mob/zombie/remedy.ogg | Bin 18640 -> 18642 bytes
.../minecraft/sounds/mob/zombie/say1.ogg | Bin 9410 -> 9410 bytes
.../minecraft/sounds/mob/zombie/say2.ogg | Bin 10065 -> 10054 bytes
.../minecraft/sounds/mob/zombie/say3.ogg | Bin 11606 -> 11606 bytes
.../minecraft/sounds/mob/zombie/step1.ogg | Bin 8521 -> 8521 bytes
.../minecraft/sounds/mob/zombie/step2.ogg | Bin 7903 -> 7901 bytes
.../minecraft/sounds/mob/zombie/step3.ogg | Bin 7604 -> 7601 bytes
.../minecraft/sounds/mob/zombie/step4.ogg | Bin 6634 -> 6634 bytes
.../minecraft/sounds/mob/zombie/step5.ogg | Bin 8238 -> 8235 bytes
.../minecraft/sounds/mob/zombie/unfect.ogg | Bin 11715 -> 11714 bytes
.../minecraft/sounds/mob/zombie/wood1.ogg | Bin 5799 -> 5781 bytes
.../minecraft/sounds/mob/zombie/wood2.ogg | Bin 5827 -> 5815 bytes
.../minecraft/sounds/mob/zombie/wood3.ogg | Bin 5966 -> 5966 bytes
.../minecraft/sounds/mob/zombie/wood4.ogg | Bin 5801 -> 5801 bytes
.../minecraft/sounds/mob/zombie/woodbreak.ogg | Bin 7614 -> 7613 bytes
.../minecraft/sounds/mob/zombiepig/zpig1.ogg | Bin 8478 -> 8459 bytes
.../minecraft/sounds/mob/zombiepig/zpig2.ogg | Bin 9542 -> 9523 bytes
.../minecraft/sounds/mob/zombiepig/zpig3.ogg | Bin 5873 -> 5848 bytes
.../minecraft/sounds/mob/zombiepig/zpig4.ogg | Bin 6843 -> 6824 bytes
.../sounds/mob/zombiepig/zpigangry1.ogg | Bin 9012 -> 9009 bytes
.../sounds/mob/zombiepig/zpigangry2.ogg | Bin 5827 -> 5776 bytes
.../sounds/mob/zombiepig/zpigangry3.ogg | Bin 9416 -> 9389 bytes
.../sounds/mob/zombiepig/zpigangry4.ogg | Bin 10480 -> 10465 bytes
.../sounds/mob/zombiepig/zpigdeath.ogg | Bin 10642 -> 10633 bytes
.../sounds/mob/zombiepig/zpighurt1.ogg | Bin 6467 -> 6380 bytes
.../sounds/mob/zombiepig/zpighurt2.ogg | Bin 6415 -> 6384 bytes
.../minecraft/sounds/music/menu/menu2.ogg | Bin 621164 -> 621150 bytes
.../assets/minecraft/sounds/note/bass.ogg | Bin 4755 -> 4746 bytes
.../minecraft/sounds/note/bassattack.ogg | Bin 4766 -> 4762 bytes
.../assets/minecraft/sounds/note/bd.ogg | Bin 3909 -> 3878 bytes
.../assets/minecraft/sounds/note/harp.ogg | Bin 5038 -> 5029 bytes
.../assets/minecraft/sounds/note/hat.ogg | Bin 3913 -> 3883 bytes
.../assets/minecraft/sounds/note/pling.ogg | Bin 5090 -> 5090 bytes
.../assets/minecraft/sounds/note/snare.ogg | Bin 4025 -> 3980 bytes
.../assets/minecraft/sounds/portal/portal.ogg | Bin 24165 -> 24158 bytes
.../assets/minecraft/sounds/portal/travel.ogg | Bin 42199 -> 42182 bytes
.../minecraft/sounds/portal/trigger.ogg | Bin 19634 -> 19621 bytes
.../minecraft/sounds/random/anvil_break.ogg | Bin 8910 -> 8909 bytes
.../minecraft/sounds/random/anvil_land.ogg | Bin 6260 -> 6258 bytes
.../minecraft/sounds/random/anvil_use.ogg | Bin 8962 -> 8959 bytes
.../assets/minecraft/sounds/random/bow.ogg | Bin 5087 -> 5087 bytes
.../minecraft/sounds/random/bowhit1.ogg | Bin 6539 -> 6542 bytes
.../minecraft/sounds/random/bowhit2.ogg | Bin 7140 -> 7139 bytes
.../minecraft/sounds/random/bowhit3.ogg | Bin 7171 -> 7172 bytes
.../minecraft/sounds/random/bowhit4.ogg | Bin 8245 -> 8215 bytes
.../assets/minecraft/sounds/random/break.ogg | Bin 5309 -> 5223 bytes
.../assets/minecraft/sounds/random/breath.ogg | Bin 7959 -> 7948 bytes
.../assets/minecraft/sounds/random/burp.ogg | Bin 5296 -> 5291 bytes
.../minecraft/sounds/random/chestclosed.ogg | Bin 5958 -> 5940 bytes
.../minecraft/sounds/random/chestopen.ogg | Bin 6443 -> 6429 bytes
.../minecraft/sounds/random/classic_hurt.ogg | Bin 7292 -> 7263 bytes
.../assets/minecraft/sounds/random/click.ogg | Bin 4355 -> 4353 bytes
.../minecraft/sounds/random/door_close.ogg | Bin 5301 -> 5298 bytes
.../minecraft/sounds/random/door_open.ogg | Bin 5819 -> 5818 bytes
.../assets/minecraft/sounds/random/drink.ogg | Bin 5960 -> 5960 bytes
.../assets/minecraft/sounds/random/eat1.ogg | Bin 4950 -> 4951 bytes
.../assets/minecraft/sounds/random/eat2.ogg | Bin 4895 -> 4895 bytes
.../assets/minecraft/sounds/random/eat3.ogg | Bin 4873 -> 4865 bytes
.../minecraft/sounds/random/explode1.ogg | Bin 13348 -> 13347 bytes
.../minecraft/sounds/random/explode2.ogg | Bin 16302 -> 16304 bytes
.../minecraft/sounds/random/explode3.ogg | Bin 15931 -> 15931 bytes
.../minecraft/sounds/random/explode4.ogg | Bin 15529 -> 15529 bytes
.../assets/minecraft/sounds/random/fizz.ogg | Bin 8668 -> 8665 bytes
.../assets/minecraft/sounds/random/fuse.ogg | Bin 14808 -> 14808 bytes
.../assets/minecraft/sounds/random/glass1.ogg | Bin 6524 -> 6514 bytes
.../assets/minecraft/sounds/random/glass2.ogg | Bin 6767 -> 6767 bytes
.../assets/minecraft/sounds/random/glass3.ogg | Bin 6463 -> 6450 bytes
.../minecraft/sounds/random/levelup.ogg | Bin 8080 -> 8078 bytes
.../assets/minecraft/sounds/random/orb.ogg | Bin 4754 -> 4751 bytes
.../assets/minecraft/sounds/random/pop.ogg | Bin 3896 -> 3896 bytes
.../assets/minecraft/sounds/random/splash.ogg | Bin 11615 -> 11616 bytes
.../sounds/random/successful_hit.ogg | Bin 4754 -> 4751 bytes
.../minecraft/sounds/random/wood_click.ogg | Bin 4102 -> 4106 bytes
.../assets/minecraft/sounds/step/cloth1.ogg | Bin 4377 -> 4377 bytes
.../assets/minecraft/sounds/step/cloth2.ogg | Bin 4375 -> 4371 bytes
.../assets/minecraft/sounds/step/cloth3.ogg | Bin 4570 -> 4563 bytes
.../assets/minecraft/sounds/step/cloth4.ogg | Bin 4502 -> 4499 bytes
.../assets/minecraft/sounds/step/grass1.ogg | Bin 5223 -> 5210 bytes
.../assets/minecraft/sounds/step/grass2.ogg | Bin 5695 -> 5687 bytes
.../assets/minecraft/sounds/step/grass3.ogg | Bin 5151 -> 5138 bytes
.../assets/minecraft/sounds/step/grass4.ogg | Bin 5387 -> 5380 bytes
.../assets/minecraft/sounds/step/grass5.ogg | Bin 5561 -> 5560 bytes
.../assets/minecraft/sounds/step/grass6.ogg | Bin 5541 -> 5535 bytes
.../assets/minecraft/sounds/step/gravel1.ogg | Bin 5790 -> 5792 bytes
.../assets/minecraft/sounds/step/gravel2.ogg | Bin 5757 -> 5752 bytes
.../assets/minecraft/sounds/step/gravel3.ogg | Bin 5546 -> 5541 bytes
.../assets/minecraft/sounds/step/gravel4.ogg | Bin 5622 -> 5620 bytes
.../assets/minecraft/sounds/step/ladder1.ogg | Bin 4948 -> 4928 bytes
.../assets/minecraft/sounds/step/ladder2.ogg | Bin 5052 -> 5071 bytes
.../assets/minecraft/sounds/step/ladder3.ogg | Bin 5157 -> 5141 bytes
.../assets/minecraft/sounds/step/ladder4.ogg | Bin 5083 -> 5078 bytes
.../assets/minecraft/sounds/step/ladder5.ogg | Bin 5001 -> 5041 bytes
.../assets/minecraft/sounds/step/sand1.ogg | Bin 4734 -> 4731 bytes
.../assets/minecraft/sounds/step/sand2.ogg | Bin 4523 -> 4523 bytes
.../assets/minecraft/sounds/step/sand3.ogg | Bin 4632 -> 4619 bytes
.../assets/minecraft/sounds/step/sand4.ogg | Bin 4519 -> 4525 bytes
.../assets/minecraft/sounds/step/sand5.ogg | Bin 4524 -> 4528 bytes
.../assets/minecraft/sounds/step/snow1.ogg | Bin 5051 -> 5051 bytes
.../assets/minecraft/sounds/step/snow2.ogg | Bin 5168 -> 5161 bytes
.../assets/minecraft/sounds/step/snow3.ogg | Bin 5200 -> 5183 bytes
.../assets/minecraft/sounds/step/snow4.ogg | Bin 5246 -> 5246 bytes
.../assets/minecraft/sounds/step/stone1.ogg | Bin 5981 -> 5982 bytes
.../assets/minecraft/sounds/step/stone2.ogg | Bin 5416 -> 5405 bytes
.../assets/minecraft/sounds/step/stone3.ogg | Bin 5231 -> 5228 bytes
.../assets/minecraft/sounds/step/stone4.ogg | Bin 5678 -> 5677 bytes
.../assets/minecraft/sounds/step/stone5.ogg | Bin 5757 -> 5757 bytes
.../assets/minecraft/sounds/step/stone6.ogg | Bin 5846 -> 5848 bytes
.../assets/minecraft/sounds/step/wood1.ogg | Bin 5567 -> 5569 bytes
.../assets/minecraft/sounds/step/wood2.ogg | Bin 5739 -> 5736 bytes
.../assets/minecraft/sounds/step/wood3.ogg | Bin 5633 -> 5629 bytes
.../assets/minecraft/sounds/step/wood4.ogg | Bin 6141 -> 6135 bytes
.../assets/minecraft/sounds/step/wood5.ogg | Bin 7075 -> 7069 bytes
.../assets/minecraft/sounds/step/wood6.ogg | Bin 5816 -> 5808 bytes
.../minecraft/sounds/tile/piston/in.ogg | Bin 5717 -> 5701 bytes
.../minecraft/sounds/tile/piston/out.ogg | Bin 5813 -> 5790 bytes
javascript/assets.epk | Bin 0 -> 6703335 bytes
javascript/classes.js | 34698 ++++++++++++++++
javascript/classes.js.map | 1 +
.../v1_8/internal/PlatformApplication.java | 3 +-
.../v1_8/internal/PlatformAudio.java | 13 +
.../internal/PlatformBufferFunctions.java | 13 +
.../v1_8/internal/PlatformOpenGL.java | 74 +-
.../v1_8/internal/PlatformRuntime.java | 1 +
.../v1_8/internal/WebSocketPlayClient.java | 9 +-
.../v1_8/internal/WebSocketServerQuery.java | 7 +-
.../v1_8/internal/lwjgl/LWJGLEntryPoint.java | 7 +
.../eaglercraft/v1_8/EaglerInputStream.java | 3 +
.../v1_8/EaglercraftSoundManager.java | 22 +-
.../eaglercraft/v1_8/EaglercraftVersion.java | 15 +-
.../minecraft/AcceleratedEffectRenderer.java | 2 +
.../v1_8/minecraft/ChunkUpdateManager.java | 16 +-
.../minecraft/EaglerTextureAtlasSprite.java | 57 +-
.../minecraft/IAcceleratedParticleEngine.java | 4 +
.../v1_8/minecraft/TextureAnimationCache.java | 110 +-
.../eaglercraft/v1_8/opengl/DrawUtils.java | 99 +
.../v1_8/opengl/EaglercraftGPU.java | 190 +-
.../v1_8/opengl/EffectPipelineFXAA.java | 7 +-
.../v1_8/opengl/FixedFunctionPipeline.java | 645 +-
.../v1_8/opengl/FixedFunctionShader.java | 138 +-
.../v1_8/opengl/GlStateManager.java | 288 +-
.../v1_8/opengl/IExtPipelineCompiler.java | 37 +
.../v1_8/opengl/InstancedFontRenderer.java | 3 +-
.../v1_8/opengl/SpriteLevelMixer.java | 56 +-
.../eaglercraft/v1_8/opengl/StreamBuffer.java | 148 +
.../v1_8/opengl/TextureCopyUtil.java | 352 +
.../eaglercraft/v1_8/opengl/VertexFormat.java | 16 +-
.../v1_8/opengl/WorldRenderer.java | 79 +-
.../AbstractAcceleratedEffectRenderer.java | 49 +
.../opengl/ext/deferred/ArrayListSerial.java | 52 +
.../opengl/ext/deferred/BetterFrustum.java | 1169 +
.../opengl/ext/deferred/BlockVertexIDs.java | 74 +
.../ext/deferred/CloudRenderWorker.java | 607 +
.../ext/deferred/DebugFramebufferView.java | 528 +
.../ext/deferred/DeferredStateManager.java | 496 +
.../ext/deferred/DynamicLightInstance.java | 54 +
.../ext/deferred/DynamicLightManager.java | 74 +
.../ext/deferred/EaglerDeferredConfig.java | 161 +
.../ext/deferred/EaglerDeferredPipeline.java | 4010 ++
.../v1_8/opengl/ext/deferred/ExtGLEnums.java | 40 +
.../ForwardAcceleratedEffectRenderer.java | 218 +
.../ForwardRenderCallbackHandler.java | 52 +
.../GBufferAcceleratedEffectRenderer.java | 216 +
.../ext/deferred/GBufferPipelineCompiler.java | 389 +
.../GBufferPipelineProgramInstance.java | 30 +
.../ext/deferred/LensFlareMeshRenderer.java | 375 +
.../opengl/ext/deferred/LightSourceMesh.java | 135 +
.../v1_8/opengl/ext/deferred/ListSerial.java | 28 +
.../opengl/ext/deferred/NameTagRenderer.java | 52 +
.../opengl/ext/deferred/ShaderPackInfo.java | 77 +
.../ShaderPackInfoReloadListener.java | 46 +
.../ext/deferred/ShadersRenderPassFuture.java | 66 +
.../opengl/ext/deferred/SkyboxRenderer.java | 199 +
.../ext/deferred/VertexMarkerState.java | 23 +
.../ext/deferred/gui/GuiShaderConfig.java | 133 +
.../ext/deferred/gui/GuiShaderConfigList.java | 657 +
.../deferred/gui/GuiShadersNotSupported.java | 48 +
.../program/GBufferExtPipelineShader.java | 130 +
.../deferred/program/IProgramUniforms.java | 22 +
.../PipelineShaderAccelParticleForward.java | 110 +
.../PipelineShaderAccelParticleGBuffer.java | 72 +
.../program/PipelineShaderBloomBlurPass.java | 59 +
.../PipelineShaderBloomBrightPass.java | 60 +
.../program/PipelineShaderCloudsNoise3D.java | 63 +
.../program/PipelineShaderCloudsSample.java | 70 +
.../program/PipelineShaderCloudsShapes.java | 69 +
.../PipelineShaderCloudsSunOcclusion.java | 56 +
.../deferred/program/PipelineShaderFXAA.java | 57 +
.../program/PipelineShaderGBufferCombine.java | 96 +
.../PipelineShaderGBufferDebugView.java | 64 +
.../program/PipelineShaderGBufferFog.java | 84 +
.../program/PipelineShaderHandDepthMask.java | 53 +
.../program/PipelineShaderLensDistortion.java | 53 +
.../program/PipelineShaderLensFlares.java | 89 +
.../PipelineShaderLensSunOcclusion.java | 55 +
.../PipelineShaderLightShaftsSample.java | 80 +
.../program/PipelineShaderLightingPoint.java | 82 +
.../program/PipelineShaderLightingSun.java | 81 +
.../program/PipelineShaderMoonRender.java | 72 +
.../PipelineShaderPostExposureAvg.java | 64 +
.../PipelineShaderPostExposureFinal.java | 59 +
.../PipelineShaderRealisticWaterControl.java | 82 +
.../PipelineShaderRealisticWaterNoise.java | 54 +
...PipelineShaderRealisticWaterNormalMap.java | 54 +
.../program/PipelineShaderReprojControl.java | 88 +
.../program/PipelineShaderReprojSSR.java | 67 +
.../program/PipelineShaderSSAOGenerate.java | 60 +
.../program/PipelineShaderShadowsSun.java | 95 +
.../PipelineShaderSkyboxAtmosphere.java | 57 +
.../PipelineShaderSkyboxIrradiance.java | 55 +
.../program/PipelineShaderSkyboxRender.java | 88 +
.../PipelineShaderSkyboxRenderEnd.java | 67 +
.../program/PipelineShaderTonemap.java | 58 +
.../program/ShaderCompileException.java | 27 +
.../ext/deferred/program/ShaderCompiler.java | 123 +
.../ext/deferred/program/ShaderException.java | 25 +
.../deferred/program/ShaderLinkException.java | 22 +
.../ext/deferred/program/ShaderProgram.java | 45 +
.../ext/deferred/program/ShaderSource.java | 186 +
.../program/SharedPipelineShaders.java | 42 +
.../texture/EaglerBitwisePackedTexture.java | 76 +
.../texture/EaglerTextureAtlasSpritePBR.java | 312 +
.../ext/deferred/texture/EmissiveItems.java | 86 +
.../opengl/ext/deferred/texture/IEEE754.java | 32 +
.../ext/deferred/texture/MetalsLUT.java | 149 +
.../texture/PBRMaterialConstants.java | 84 +
.../deferred/texture/PBRTextureMapUtils.java | 168 +
.../ext/deferred/texture/TemperaturesLUT.java | 68 +
.../deferred/texture/TextureClockPBRImpl.java | 74 +
.../texture/TextureCompassPBRImpl.java | 90 +
.../v1_8/socket/ConnectionHandshake.java | 10 +-
.../eaglercraft/v1_8/vector/Matrix4f.java | 25 +
src/main/java/net/minecraft/block/Block.java | 4 +
.../java/net/minecraft/block/BlockGlass.java | 6 +-
.../java/net/minecraft/block/BlockLiquid.java | 7 +-
.../java/net/minecraft/block/BlockPane.java | 6 +-
.../client/LoadingScreenRenderer.java | 5 +
.../java/net/minecraft/client/Minecraft.java | 81 +-
.../net/minecraft/client/gui/GuiButton.java | 18 +-
.../net/minecraft/client/gui/GuiIngame.java | 2 +
.../net/minecraft/client/gui/GuiLanguage.java | 3 +-
.../net/minecraft/client/gui/GuiMainMenu.java | 31 +-
.../net/minecraft/client/gui/GuiOptions.java | 30 +-
.../net/minecraft/client/gui/GuiScreen.java | 4 +-
.../client/gui/GuiVideoSettings.java | 2 +-
.../minecraft/client/model/ModelDragon.java | 6 +-
.../client/particle/EffectRenderer.java | 35 +-
.../client/particle/EntityDiggingFX.java | 2 +
.../client/particle/EntityLargeExplodeFX.java | 10 +-
.../client/renderer/BlockFluidRenderer.java | 107 +-
.../client/renderer/BlockModelRenderer.java | 302 +-
.../client/renderer/ChunkRenderContainer.java | 17 +-
.../client/renderer/EntityRenderer.java | 1106 +-
.../renderer/RegionRenderCacheBuilder.java | 2 +
.../client/renderer/RenderGlobal.java | 354 +-
.../client/renderer/RenderHelper.java | 35 +-
.../minecraft/client/renderer/RenderList.java | 2 +-
.../renderer/block/model/BakedQuad.java | 13 +
.../renderer/block/model/BreakingFour.java | 12 +-
.../renderer/block/model/FaceBakery.java | 84 +-
.../chunk/ChunkCompileTaskGenerator.java | 9 +-
.../renderer/chunk/ChunkRenderWorker.java | 10 +-
.../client/renderer/chunk/CompiledChunk.java | 9 +
.../client/renderer/chunk/RenderChunk.java | 46 +-
.../client/renderer/entity/Render.java | 19 +-
.../client/renderer/entity/RenderBlaze.java | 14 +
.../client/renderer/entity/RenderCreeper.java | 15 +
.../client/renderer/entity/RenderDragon.java | 25 +
.../renderer/entity/RenderEnderman.java | 1 -
.../renderer/entity/RenderEntityItem.java | 10 +
.../renderer/entity/RenderFallingBlock.java | 5 +-
.../client/renderer/entity/RenderItem.java | 96 +-
.../renderer/entity/RenderLightningBolt.java | 28 +-
.../client/renderer/entity/RenderManager.java | 33 +-
.../client/renderer/entity/RenderPlayer.java | 2 +-
.../client/renderer/entity/RenderSlime.java | 2 +-
.../renderer/entity/RenderTNTPrimed.java | 18 +-
.../renderer/entity/RendererLivingEntity.java | 84 +-
.../entity/layers/LayerArmorBase.java | 73 +-
.../entity/layers/LayerCreeperCharge.java | 64 +-
.../entity/layers/LayerEnderDragonDeath.java | 52 +-
.../entity/layers/LayerEnderDragonEyes.java | 12 +
.../entity/layers/LayerEndermanEyes.java | 55 +
.../entity/layers/LayerHeldBlock.java | 36 +
.../entity/layers/LayerMooshroomMushroom.java | 6 +-
.../renderer/entity/layers/LayerSlimeGel.java | 40 +
.../entity/layers/LayerSpiderEyes.java | 52 +
.../entity/layers/LayerWitherAura.java | 55 +
.../renderer/texture/AbstractTexture.java | 28 +-
.../client/renderer/texture/TextureClock.java | 5 +-
.../renderer/texture/TextureCompass.java | 11 +-
.../renderer/texture/TextureManager.java | 21 +-
.../client/renderer/texture/TextureMap.java | 274 +-
.../client/renderer/texture/TextureUtil.java | 7 +-
.../renderer/tileentity/RenderItemFrame.java | 17 +-
.../tileentity/TileEntityBeaconRenderer.java | 131 +-
.../tileentity/TileEntityChestRenderer.java | 1 -
.../TileEntityEndPortalRenderer.java | 45 +-
.../tileentity/TileEntityPistonRenderer.java | 7 +-
.../tileentity/TileEntitySignRenderer.java | 14 +
.../client/resources/model/ModelBakery.java | 33 +-
.../client/settings/GameSettings.java | 158 +-
.../java/net/minecraft/entity/Entity.java | 29 +
.../minecraft/entity/EntityLivingBase.java | 12 +
.../net/minecraft/entity/item/EntityItem.java | 10 +
.../entity/item/EntityItemFrame.java | 10 +
.../entity/item/EntityTNTPrimed.java | 12 +
.../minecraft/entity/item/EntityXPOrb.java | 12 +
.../minecraft/entity/monster/EntityBlaze.java | 7 +
.../entity/monster/EntityCreeper.java | 16 +
.../entity/monster/EntityEnderman.java | 2 +
.../java/net/minecraft/util/BlockPos.java | 86 +-
.../minecraft/util/EnumWorldBlockLayer.java | 3 +-
src/main/java/net/minecraft/util/Timer.java | 8 +-
.../java/net/minecraft/world/ChunkCache.java | 2 +-
src/main/java/net/minecraft/world/World.java | 35 +-
.../java/net/minecraft/world/chunk/Chunk.java | 15 +-
.../commons/lang3/text/CompositeFormat.java | 4 +-
.../lang3/text/ExtendedMessageFormat.java | 4 +-
.../commons/lang3/text/FormatFactory.java | 4 +-
.../commons/lang3/text/FormattableUtils.java | 4 +-
.../apache/commons/lang3/text/StrBuilder.java | 4 +-
.../apache/commons/lang3/text/StrLookup.java | 4 +-
.../apache/commons/lang3/text/StrMatcher.java | 4 +-
.../commons/lang3/text/StrSubstitutor.java | 4 +-
.../commons/lang3/text/StrTokenizer.java | 4 +-
.../apache/commons/lang3/text/WordUtils.java | 4 +-
.../v1_8/internal/PlatformApplication.java | 3 +-
.../v1_8/internal/PlatformAudio.java | 35 +
.../v1_8/internal/PlatformOpenGL.java | 146 +-
.../buffer/EaglerArrayBufferAllocator.java | 14 +
.../buffer/EaglerArrayByteBuffer.java | 5 +-
.../v1_8/internal/teavm/EarlyLoadScreen.java | 7 +-
.../v1_8/internal/teavm/MainClass.java | 12 +-
.../teavm/WebGL2RenderingContext.java | 36 +-
1039 files changed, 61881 insertions(+), 1154 deletions(-)
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_forward.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_gbuffer.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/readme.txt
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_feet_end_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_feet_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_feet_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_head_end_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_head_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_head_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bedrock_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bookshelf_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/brewing_stand_base_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/brewing_stand_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/brick_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cake_inner_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cake_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cake_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/coal_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/coarse_dirt_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cobblestone_mossy_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cobblestone_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/comparator_off_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/comparator_on_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_front_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/diamond_block_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/diamond_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dirt_podzol_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dirt_podzol_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dirt_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dispenser_front_horizontal_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dispenser_front_vertical_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_acacia_lower_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_acacia_upper_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_birch_lower_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_birch_upper_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_dark_oak_lower_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_dark_oak_upper_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_jungle_lower_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_jungle_upper_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_spruce_lower_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_spruce_upper_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_wood_lower_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_wood_upper_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dropper_front_horizontal_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dropper_front_vertical_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/emerald_block_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/emerald_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/enchanting_table_bottom_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/enchanting_table_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/enchanting_table_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/end_stone_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/endframe_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/endframe_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/farmland_dry_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/farmland_wet_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_front_off_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_front_on_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/gold_block_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/gold_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_side_overlay_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_side_snowed_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/gravel_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/iron_block_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/iron_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/lapis_block_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/lapis_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_acacia_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_acacia_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_big_oak_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_big_oak_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_birch_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_birch_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_jungle_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_jungle_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_oak_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_oak_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_spruce_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_spruce_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/netherrack_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/obsidian_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_bottom_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_inner_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_top_normal_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_top_sticky_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_acacia_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_big_oak_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_birch_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_jungle_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_oak_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_spruce_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/prismarine_bricks_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/prismarine_dark_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/prismarine_rough_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/pumpkin_face_off_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/pumpkin_face_on_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_bottom_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_chiseled_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_chiseled_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_lines_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_lines_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_activator_powered_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_activator_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_detector_powered_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_detector_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_golden_powered_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_golden_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_normal_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_normal_turned_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_lamp_off_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_lamp_on_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_ore_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_torch_off_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_torch_on_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/repeater_off_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/repeater_on_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sand_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sandstone_bottom_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sandstone_carved_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sandstone_normal_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sandstone_smooth_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sandstone_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/soul_sand_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_andesite_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_andesite_smooth_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_diorite_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_diorite_smooth_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_granite_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_granite_smooth_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_slab_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_slab_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_carved_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_cracked_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_mossy_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/tnt_bottom_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/tnt_side_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/tnt_top_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/torch_on_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/trapdoor_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/trip_wire_source_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_pulling_0_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_pulling_1_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_pulling_2_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_standby_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/brewing_stand_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bucket_lava_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bucket_milk_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bucket_water_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/carrot_on_a_stick_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/clock_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/compass_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_axe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_hoe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_pickaxe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_shovel_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_sword_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/fishing_rod_cast_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/fishing_rod_uncast_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/flint_and_steel_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_axe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_hoe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_pickaxe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_shovel_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_sword_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_axe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_hoe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_pickaxe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_shovel_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_sword_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_chest_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_command_block_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_furnace_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_tnt_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/shears_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_axe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_hoe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_pickaxe_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_shovel_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_sword_s.ebp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/brdf_lut.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_noise3d.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_sample.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_shapes.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_shapes.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_shapes.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_sun_occlusion.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_combine.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core_gbuffer.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_fog.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_local.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/dither16.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/eagler_moon.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/emissive_items.csv
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/forward_core.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/forward_core.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/forward_glass_highlights.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/forward_glass_highlights.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/gbuffer_debug_view.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/hand_depth_mask.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lens_ghosts.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lens_streaks.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lens_sun_occlusion.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lib/pbr_env_map.glsl
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lib/pbr_lighting.glsl
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lib/waving_blocks.glsl
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/light_point_mesh.dat
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/light_shafts_sample.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lighting_mesh.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lighting_point.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/lighting_sun.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/material_block_constants.csv
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/metals.csv
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/moon_render.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/moon_render.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/particles_s.png
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_bloom_blur.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_bloom_bright.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_exposure_avg.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_exposure_final.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_fxaa.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_lens_distort.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_lens_ghosts.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_lens_ghosts.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_lens_streaks.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_lens_streaks.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/post_tonemap.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/rain.png
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_control.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_mask.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_mask.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_noise.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_noise.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_normals.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_render.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/realistic_water_render.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/reproject_control.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/reproject_ssr.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/shader_pack_icon.png
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/shader_pack_info.json
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/shadows_sun.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/skybox.dat
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/skybox_atmosphere.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/skybox_irradiance.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/skybox_render.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/skybox_render.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/skybox_render_end.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/skybox_render_end.vsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/ssao_generate.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/ssao_noise.bmp
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/temperatures.lut
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/deferred/vertex_ids.csv
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/texture_blit.fsh
create mode 100644 desktopRuntime/resources/assets/eagler/glsl/texture_blit.vsh
create mode 100644 javascript/assets.epk
create mode 100644 javascript/classes.js
create mode 100644 javascript/classes.js.map
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/DrawUtils.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/IExtPipelineCompiler.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/StreamBuffer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/TextureCopyUtil.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/AbstractAcceleratedEffectRenderer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ArrayListSerial.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/BetterFrustum.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/BlockVertexIDs.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/CloudRenderWorker.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/DebugFramebufferView.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/DeferredStateManager.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/DynamicLightInstance.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/DynamicLightManager.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/EaglerDeferredConfig.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/EaglerDeferredPipeline.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ExtGLEnums.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ForwardAcceleratedEffectRenderer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ForwardRenderCallbackHandler.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/GBufferAcceleratedEffectRenderer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/GBufferPipelineCompiler.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/GBufferPipelineProgramInstance.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/LensFlareMeshRenderer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/LightSourceMesh.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ListSerial.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/NameTagRenderer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ShaderPackInfo.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ShaderPackInfoReloadListener.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/ShadersRenderPassFuture.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/SkyboxRenderer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/VertexMarkerState.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/gui/GuiShaderConfig.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/gui/GuiShaderConfigList.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/gui/GuiShadersNotSupported.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/GBufferExtPipelineShader.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/IProgramUniforms.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderAccelParticleForward.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderAccelParticleGBuffer.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderBloomBlurPass.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderBloomBrightPass.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderCloudsNoise3D.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderCloudsSample.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderCloudsShapes.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderCloudsSunOcclusion.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderFXAA.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderGBufferCombine.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderGBufferDebugView.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderGBufferFog.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderHandDepthMask.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderLensDistortion.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderLensFlares.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderLensSunOcclusion.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderLightShaftsSample.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderLightingPoint.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderLightingSun.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderMoonRender.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderPostExposureAvg.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderPostExposureFinal.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderRealisticWaterControl.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderRealisticWaterNoise.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderRealisticWaterNormalMap.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderReprojControl.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderReprojSSR.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderSSAOGenerate.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderShadowsSun.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderSkyboxAtmosphere.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderSkyboxIrradiance.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderSkyboxRender.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderSkyboxRenderEnd.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/PipelineShaderTonemap.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/ShaderCompileException.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/ShaderCompiler.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/ShaderException.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/ShaderLinkException.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/ShaderProgram.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/ShaderSource.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/program/SharedPipelineShaders.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/EaglerBitwisePackedTexture.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/EaglerTextureAtlasSpritePBR.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/EmissiveItems.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/IEEE754.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/MetalsLUT.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/PBRMaterialConstants.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/PBRTextureMapUtils.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/TemperaturesLUT.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/TextureClockPBRImpl.java
create mode 100644 src/main/java/net/lax1dude/eaglercraft/v1_8/opengl/ext/deferred/texture/TextureCompassPBRImpl.java
diff --git a/desktopRuntime/eclipseProject/.classpath b/desktopRuntime/eclipseProject/.classpath
index f1336b46..903bad32 100644
--- a/desktopRuntime/eclipseProject/.classpath
+++ b/desktopRuntime/eclipseProject/.classpath
@@ -7,17 +7,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/desktopRuntime/eclipseProject/.project b/desktopRuntime/eclipseProject/.project
index ad0a82ff..03fb7290 100644
--- a/desktopRuntime/eclipseProject/.project
+++ b/desktopRuntime/eclipseProject/.project
@@ -18,12 +18,12 @@
src_lwjgl_java
2
- /workspace/Resent-1.8/eaglercraftx-1.8/../eaglercraft_1.8_workspace/src/lwjgl/java
+ C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/src/lwjgl/java
src_main_java
2
- /workspace/Resent-1.8/eaglercraftx-1.8/../eaglercraft_1.8_workspace/src/main/java
+ C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/src/main/java
diff --git a/desktopRuntime/eclipseProject/eaglercraftDebugRuntime.launch b/desktopRuntime/eclipseProject/eaglercraftDebugRuntime.launch
index 3fb0b74f..9bc6b247 100644
--- a/desktopRuntime/eclipseProject/eaglercraftDebugRuntime.launch
+++ b/desktopRuntime/eclipseProject/eaglercraftDebugRuntime.launch
@@ -1,7 +1,7 @@
-
+
@@ -18,5 +18,5 @@
-
+
diff --git a/desktopRuntime/resources/assets/eagler/CREDITS.txt b/desktopRuntime/resources/assets/eagler/CREDITS.txt
index 5a59d443..b2d4d916 100644
--- a/desktopRuntime/resources/assets/eagler/CREDITS.txt
+++ b/desktopRuntime/resources/assets/eagler/CREDITS.txt
@@ -5,9 +5,11 @@
lax1dude:
- Creator of Eaglercraft
- - Wrote HW accelerated OpenGL 1.3 emulator
- - Wrote all desktop emulation code
- Ported the Minecraft 1.8 client src to TeaVM
+ - Wrote HW accelerated OpenGL 1.3 emulator
+ - Wrote the default shader pack
+ - Made the integrated PBR resource pack
+ - Wrote all desktop emulation code
- Wrote EaglercraftXBungee
- Wrote the patch and build system
diff --git a/desktopRuntime/resources/assets/eagler/glsl/accel_font.fsh b/desktopRuntime/resources/assets/eagler/glsl/accel_font.fsh
index 6fe1e212..36e3cf4a 100644
--- a/desktopRuntime/resources/assets/eagler/glsl/accel_font.fsh
+++ b/desktopRuntime/resources/assets/eagler/glsl/accel_font.fsh
@@ -15,8 +15,8 @@
*/
precision lowp int;
-precision lowp float;
-precision lowp sampler2D;
+precision mediump float;
+precision mediump sampler2D;
in vec2 v_texCoord2f;
in vec4 v_color4f;
diff --git a/desktopRuntime/resources/assets/eagler/glsl/accel_font.vsh b/desktopRuntime/resources/assets/eagler/glsl/accel_font.vsh
index 5c31fe71..578e0ccd 100644
--- a/desktopRuntime/resources/assets/eagler/glsl/accel_font.vsh
+++ b/desktopRuntime/resources/assets/eagler/glsl/accel_font.vsh
@@ -15,8 +15,8 @@
*/
precision lowp int;
-precision lowp float;
-precision lowp sampler2D;
+precision highp float;
+precision mediump sampler2D;
layout(location = 0) in vec3 a_position3f;
diff --git a/desktopRuntime/resources/assets/eagler/glsl/accel_particle.fsh b/desktopRuntime/resources/assets/eagler/glsl/accel_particle.fsh
index 3a922666..60d4639b 100644
--- a/desktopRuntime/resources/assets/eagler/glsl/accel_particle.fsh
+++ b/desktopRuntime/resources/assets/eagler/glsl/accel_particle.fsh
@@ -15,8 +15,8 @@
*/
precision lowp int;
-precision lowp float;
-precision lowp sampler2D;
+precision mediump float;
+precision mediump sampler2D;
in vec2 v_texCoord2f;
in vec4 v_color4f;
diff --git a/desktopRuntime/resources/assets/eagler/glsl/accel_particle.vsh b/desktopRuntime/resources/assets/eagler/glsl/accel_particle.vsh
index ce714bbf..6ed01132 100644
--- a/desktopRuntime/resources/assets/eagler/glsl/accel_particle.vsh
+++ b/desktopRuntime/resources/assets/eagler/glsl/accel_particle.vsh
@@ -15,8 +15,8 @@
*/
precision lowp int;
-precision lowp float;
-precision lowp sampler2D;
+precision highp float;
+precision mediump sampler2D;
layout(location = 0) in vec2 a_position2f;
diff --git a/desktopRuntime/resources/assets/eagler/glsl/core.fsh b/desktopRuntime/resources/assets/eagler/glsl/core.fsh
index b491e069..23ce5beb 100644
--- a/desktopRuntime/resources/assets/eagler/glsl/core.fsh
+++ b/desktopRuntime/resources/assets/eagler/glsl/core.fsh
@@ -141,6 +141,10 @@ void main() {
#endif
#endif
+#ifdef COMPILE_BLEND_ADD
+ color = color * u_colorBlendSrc4f + u_colorBlendAdd4f;
+#endif
+
#ifdef COMPILE_ENABLE_ALPHA_TEST
if(color.a < u_alphaTestRef1f) discard;
#endif
@@ -154,24 +158,21 @@ void main() {
vec3 normal = u_uniformNormal3f;
#endif
float diffuse = 0.0;
+ vec4 light;
for(int i = 0; i < u_lightsEnabled1i; ++i) {
- vec4 light = u_lightsDirections4fv[i];
+ light = u_lightsDirections4fv[i];
diffuse += max(dot(light.xyz, normal), 0.0) * light.w;
}
color.rgb *= min(u_lightsAmbient3f + vec3(diffuse), 1.0);
#endif
-#ifdef COMPILE_BLEND_ADD
- color.rgba = color.rgba * u_colorBlendSrc4f + u_colorBlendAdd4f;
-#endif
-
#ifdef COMPILE_ENABLE_FOG
vec3 fogPos = v_position4f.xyz / v_position4f.w;
float dist = sqrt(dot(fogPos, fogPos));
float fogDensity = u_fogParameters4f.y;
float fogStart = u_fogParameters4f.z;
float fogEnd = u_fogParameters4f.w;
- float f = u_fogParameters4f.x > 0.0 ? 1.0 - pow(2.718, -(fogDensity * dist)) :
+ float f = u_fogParameters4f.x > 0.0 ? 1.0 - exp(-fogDensity * dist) :
(dist - fogStart) / (fogEnd - fogStart);
color.rgb = mix(color.rgb, u_fogColor4f.rgb, clamp(f, 0.0, 1.0) * u_fogColor4f.a);
#endif
diff --git a/desktopRuntime/resources/assets/eagler/glsl/core.vsh b/desktopRuntime/resources/assets/eagler/glsl/core.vsh
index a347435c..194ae44e 100644
--- a/desktopRuntime/resources/assets/eagler/glsl/core.vsh
+++ b/desktopRuntime/resources/assets/eagler/glsl/core.vsh
@@ -50,29 +50,29 @@ out vec2 v_lightmap2f;
uniform mat4 u_textureMat4f02;
#endif
+#ifdef _COMPILE_VARYING_POSITION
uniform mat4 u_modelviewMat4f;
uniform mat4 u_projectionMat4f;
+#else
+uniform mat4 u_modelviewProjMat4f;
+#ifdef COMPILE_NORMAL_ATTRIB
+uniform mat4 u_modelviewMat4f;
+#endif
+#endif
+
+#define TEX_MAT3(mat4In) mat3(mat4In[0].xyw,mat4In[1].xyw,mat4In[3].xyw)
void main() {
-
#ifdef COMPILE_ENABLE_TEX_GEN
v_objectPosition3f = a_position3f;
#endif
- vec4 pos = u_modelviewMat4f * vec4(a_position3f, 1.0);
-
#ifdef _COMPILE_VARYING_POSITION
- v_position4f = pos;
+ v_position4f = u_modelviewMat4f * vec4(a_position3f, 1.0);
#endif
#ifdef COMPILE_TEXTURE_ATTRIB
- mat4x3 texMat4x3 = mat4x3(
- u_textureMat4f01[0].xyw,
- u_textureMat4f01[1].xyw,
- u_textureMat4f01[2].xyw,
- u_textureMat4f01[3].xyw
- );
- vec3 v_textureTmp3f = texMat4x3 * vec4(a_texture2f, 0.0, 1.0);
+ vec3 v_textureTmp3f = TEX_MAT3(u_textureMat4f01) * vec3(a_texture2f, 1.0);
v_texture2f = v_textureTmp3f.xy / v_textureTmp3f.z;
#endif
@@ -85,19 +85,13 @@ void main() {
#endif
#ifdef COMPILE_LIGHTMAP_ATTRIB
-#ifdef COMPILE_TEXTURE_ATTRIB
- texMat4x3 = mat4x3(
-#else
- mat4x3 texMat4x3 = mat4x3(
-#endif
- u_textureMat4f02[0].xyw,
- u_textureMat4f02[1].xyw,
- u_textureMat4f02[2].xyw,
- u_textureMat4f02[3].xyw
- );
- vec3 v_lightmapTmp3f = texMat4x3 * vec4(a_lightmap2f, 0.0, 1.0);
+ vec3 v_lightmapTmp3f = TEX_MAT3(u_textureMat4f02) * vec3(a_lightmap2f, 1.0);
v_lightmap2f = v_lightmapTmp3f.xy / v_lightmapTmp3f.z;
#endif
- gl_Position = u_projectionMat4f * pos;
+#ifdef _COMPILE_VARYING_POSITION
+ gl_Position = u_projectionMat4f * v_position4f;
+#else
+ gl_Position = u_modelviewProjMat4f * vec4(a_position3f, 1.0);
+#endif
}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle.vsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle.vsh
new file mode 100644
index 00000000..370b0aec
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle.vsh
@@ -0,0 +1,72 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+precision lowp int;
+precision highp float;
+precision mediump sampler2D;
+
+layout(location = 0) in vec2 a_position2f;
+
+layout(location = 1) in vec3 p_position3f;
+layout(location = 2) in vec2 p_texCoords2i;
+layout(location = 3) in vec2 p_lightMap2f;
+layout(location = 4) in vec2 p_particleSize_texCoordsSize_2i;
+layout(location = 5) in vec4 p_color4f;
+
+out vec2 v_texCoord2f;
+out vec4 v_color4f;
+out vec2 v_lightmap2f;
+
+#ifdef COMPILE_FORWARD_VSH
+out vec4 v_position4f;
+uniform mat4 u_modelViewMatrix4f;
+uniform mat4 u_projectionMatrix4f;
+#endif
+
+#ifdef COMPILE_GBUFFER_VSH
+uniform mat4 u_matrixTransform;
+#endif
+
+uniform vec3 u_texCoordSize2f_particleSize1f;
+uniform vec4 u_transformParam_1_2_3_4_f;
+uniform float u_transformParam_5_f;
+
+void main() {
+ v_color4f = p_color4f.bgra;
+ v_lightmap2f = p_lightMap2f;
+
+ vec2 tex2f = a_position2f * 0.5 + 0.5;
+ tex2f.y = 1.0 - tex2f.y;
+ tex2f = p_texCoords2i + tex2f * p_particleSize_texCoordsSize_2i.y;
+ v_texCoord2f = tex2f * u_texCoordSize2f_particleSize1f.xy;
+
+ float particleSize = u_texCoordSize2f_particleSize1f.z * p_particleSize_texCoordsSize_2i.x;
+
+ vec3 pos3f = p_position3f;
+ pos3f.x += u_transformParam_1_2_3_4_f.x * particleSize * a_position2f.x;
+ pos3f.x += u_transformParam_1_2_3_4_f.w * particleSize * a_position2f.y;
+ pos3f.y += u_transformParam_1_2_3_4_f.y * particleSize * a_position2f.y;
+ pos3f.z += u_transformParam_1_2_3_4_f.z * particleSize * a_position2f.x;
+ pos3f.z += u_transformParam_5_f * particleSize * a_position2f.y;
+
+#ifdef COMPILE_GBUFFER_VSH
+ gl_Position = u_matrixTransform * vec4(pos3f, 1.0);
+#endif
+#ifdef COMPILE_FORWARD_VSH
+ v_position4f = u_modelViewMatrix4f * vec4(pos3f, 1.0);
+ gl_Position = u_projectionMatrix4f * v_position4f;
+#endif
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_forward.fsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_forward.fsh
new file mode 100644
index 00000000..ba1d8e0d
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_forward.fsh
@@ -0,0 +1,233 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+precision lowp int;
+precision highp float;
+precision mediump sampler2D;
+precision highp sampler2DShadow;
+
+in vec4 v_position4f;
+in vec2 v_texCoord2f;
+in vec4 v_color4f;
+in vec2 v_lightmap2f;
+
+layout(location = 0) out vec4 output4f;
+
+uniform sampler2D u_diffuseTexture;
+
+uniform vec2 u_textureYScale2f;
+
+uniform mat4 u_inverseViewMatrix4f;
+
+#ifdef COMPILE_DYNAMIC_LIGHTS
+struct DynamicLight {
+ mediump vec4 u_lightPosition4f;
+ mediump vec4 u_lightColor4f;
+};
+layout(std140) uniform u_chunkLightingData {
+ mediump int u_dynamicLightCount1i;
+ mediump int _paddingA_;
+ mediump int _paddingB_;
+ mediump int _paddingC_;
+ DynamicLight u_dynamicLightArray[12];
+};
+#endif
+
+layout(std140) uniform u_worldLightingData {
+ mediump vec4 u_sunDirection4f;
+ mediump vec4 u_sunColor3f_sky1f;
+ mediump vec4 u_fogParameters4f;
+ mediump vec4 u_fogColorLight4f;
+ mediump vec4 u_fogColorDark4f;
+ mediump vec4 u_fogColorAddSun4f;
+ mediump vec4 u_blockSkySunDynamicLightFac4f;
+#ifdef COMPILE_SUN_SHADOW_LOD0
+ mediump mat4 u_sunShadowMatrixLOD04f;
+#define DO_COMPILE_SUN_SHADOWS
+#define SUN_SHADOW_MAP_FRAC 1.0
+#endif
+#ifdef COMPILE_SUN_SHADOW_LOD1
+ mediump mat4 u_sunShadowMatrixLOD04f;
+ mediump mat4 u_sunShadowMatrixLOD14f;
+#define DO_COMPILE_SUN_SHADOWS
+#define SUN_SHADOW_MAP_FRAC 0.5
+#endif
+#ifdef COMPILE_SUN_SHADOW_LOD2
+ mediump mat4 u_sunShadowMatrixLOD04f;
+ mediump mat4 u_sunShadowMatrixLOD14f;
+ mediump mat4 u_sunShadowMatrixLOD24f;
+#define DO_COMPILE_SUN_SHADOWS
+#define SUN_SHADOW_MAP_FRAC 0.3333333
+#endif
+};
+
+uniform sampler2D u_samplerNormalMaterial;
+
+uniform sampler2D u_metalsLUT;
+
+#define LIB_INCLUDE_PBR_LIGHTING_FUNCTION
+#define LIB_INCLUDE_PBR_LIGHTING_PREFETCH
+#EAGLER INCLUDE (3) "eagler:glsl/deferred/lib/pbr_lighting.glsl"
+
+uniform sampler2D u_irradianceMap;
+
+#ifdef DO_COMPILE_SUN_SHADOWS
+uniform sampler2DShadow u_sunShadowDepthTexture;
+#endif
+
+void main() {
+ vec4 worldPosition4f;
+ vec4 worldDirection4f;
+ vec4 diffuseColor4f;
+ vec3 normalVector3f;
+ vec2 lightmapCoords2f;
+ vec3 materialData3f;
+
+ // =========== RESOLVE CONSTANTS ============ //
+
+ worldPosition4f = u_inverseViewMatrix4f * v_position4f;
+ worldPosition4f.xyz /= worldPosition4f.w;
+ worldPosition4f.w = 1.0;
+ worldDirection4f = u_inverseViewMatrix4f * vec4(v_position4f.xyz / v_position4f.w, 0.0);
+ worldDirection4f.xyz = normalize(worldDirection4f.xyz);
+
+ lightmapCoords2f = v_lightmap2f;
+
+ normalVector3f = normalize(u_inverseViewMatrix4f[2].xyz);
+
+ // ========= CALCULATE DIFFUSE COLOR ========== //
+
+ diffuseColor4f = texture(u_diffuseTexture, v_texCoord2f) * v_color4f;
+
+ // ============= ALPHA TEST ============== //
+
+ if(diffuseColor4f.a < 0.004) discard;
+
+ // ========== RESOLVE MATERIALS =========== //
+
+ materialData3f = texture(u_samplerNormalMaterial, vec2(v_texCoord2f.x, v_texCoord2f.y * u_textureYScale2f.x + u_textureYScale2f.y)).rgb;
+
+ vec3 metalN, metalK;
+ PREFETCH_METALS(diffuseColor4f.rgb, materialData3f.g, metalN, metalK)
+
+ // ============ SUN LIGHTING ============== //
+
+ diffuseColor4f.rgb *= diffuseColor4f.rgb;
+
+ vec3 lightColor3f = vec3(0.0);
+ if(dot(u_sunDirection4f.xyz, normalVector3f) > 0.0 && lightmapCoords2f.g > 0.5 &&
+ (u_sunColor3f_sky1f.r + u_sunColor3f_sky1f.g + u_sunColor3f_sky1f.b) > 0.001) {
+#ifdef DO_COMPILE_SUN_SHADOWS
+
+ // ========== SUN SHADOW: LOD0 ============ //
+
+ float skyLight = max(lightmapCoords2f.g * 2.0 - 1.0, 0.0);
+ float shadowSample = 1.0;
+ vec4 shadowWorldPos4f = worldPosition4f;
+ shadowWorldPos4f.xyz += normalVector3f * 0.05;
+
+ vec4 shadowTexPos4f;
+ vec2 tmpVec2;
+ for(;;) {
+ shadowTexPos4f = u_sunShadowMatrixLOD04f * shadowWorldPos4f;
+ if(shadowTexPos4f.xyz == clamp(shadowTexPos4f.xyz, vec3(0.005), vec3(0.995))) {
+ shadowSample = textureLod(u_sunShadowDepthTexture, vec3(shadowTexPos4f.xy * vec2(1.0, SUN_SHADOW_MAP_FRAC), shadowTexPos4f.z), 0.0);
+ break;
+ }
+
+#if defined(COMPILE_SUN_SHADOW_LOD1) || defined(COMPILE_SUN_SHADOW_LOD2)
+ shadowTexPos4f = u_sunShadowMatrixLOD14f * shadowWorldPos4f;
+ if(shadowTexPos4f.xyz == clamp(shadowTexPos4f.xyz, vec3(0.005), vec3(0.995))) {
+ shadowTexPos4f.y += 1.0;
+ shadowTexPos4f.y *= SUN_SHADOW_MAP_FRAC;
+ shadowSample = textureLod(u_sunShadowDepthTexture, vec3(shadowTexPos4f.xy, shadowTexPos4f.z + 0.00015), 0.0);
+ break;
+ }
+#endif
+
+#ifdef COMPILE_SUN_SHADOW_LOD2
+ shadowTexPos4f = u_sunShadowMatrixLOD24f * shadowWorldPos4f;
+ if(shadowTexPos4f.xyz == clamp(shadowTexPos4f.xyz, vec3(0.005), vec3(0.995))) {
+ shadowTexPos4f.y += 2.0;
+ shadowTexPos4f.y *= SUN_SHADOW_MAP_FRAC;
+ shadowSample = textureLod(u_sunShadowDepthTexture, vec3(shadowTexPos4f.xy, shadowTexPos4f.z + 0.00015), 0.0);
+ }
+#endif
+ break;
+ }
+#endif
+ lightColor3f = u_sunColor3f_sky1f.rgb * max(lightmapCoords2f.g * 2.0 - 1.0, 0.0);
+#ifdef DO_COMPILE_SUN_SHADOWS
+ lightColor3f *= shadowSample * skyLight;
+#endif
+ vec3 normalWrap3f = normalVector3f * (dot(-worldDirection4f.xyz, normalVector3f) < 0.0 ? -1.0 : 1.0);
+ lightColor3f = eaglercraftLighting(diffuseColor4f.rgb, lightColor3f, -worldDirection4f.xyz, u_sunDirection4f.xyz, normalWrap3f, materialData3f, metalN, metalK) * u_blockSkySunDynamicLightFac4f.z;
+ }
+
+ // =========== IRRADIANCE MAP =========== //
+
+ lightmapCoords2f *= lightmapCoords2f;
+
+ vec3 irradianceMapSamplePos2f = normalVector3f;
+ irradianceMapSamplePos2f.xz /= abs(irradianceMapSamplePos2f.y) + 1.0;
+ float dst = 1.0 - dot(irradianceMapSamplePos2f.xz, irradianceMapSamplePos2f.xz);
+ dst *= dst;
+ irradianceMapSamplePos2f.xz *= 0.975;
+ vec3 skyLight = vec3(sqrt(0.01 + max(u_sunDirection4f.w, 0.0)));
+ if(dst < 0.005) {
+ vec4 sample1 = textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz * vec2(0.5, 0.25) + vec2(0.5, 0.25), 0.0);
+ vec4 sample2 = textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz * vec2(0.5, -0.25) + vec2(0.5, 0.75), 0.0);
+ skyLight += mix(sample1.rgb, sample2.rgb, smoothstep(0.0, 1.0, irradianceMapSamplePos2f.y * -12.5 + 0.5)).rgb;
+ }else {
+ irradianceMapSamplePos2f.xz *= vec2(0.5, irradianceMapSamplePos2f.y > 0.0 ? 0.25 : -0.25);
+ irradianceMapSamplePos2f.xz += vec2(0.5, irradianceMapSamplePos2f.y > 0.0 ? 0.25 : 0.75);
+ skyLight += textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz, 0.0).rgb;
+ }
+ skyLight *= lightmapCoords2f.g * u_sunColor3f_sky1f.w;
+
+#ifdef COMPILE_DYNAMIC_LIGHTS
+
+ // =========== DYNAMIC LIGHTING =========== //
+
+ vec3 dlightDist3f, dlightDir3f, dlightColor3f;
+ int safeLightCount = u_dynamicLightCount1i > 12 ? 0 : u_dynamicLightCount1i; // hate this
+ for(int i = 0; i < safeLightCount; ++i) {
+ dlightDist3f = worldPosition4f.xyz - u_dynamicLightArray[i].u_lightPosition4f.xyz;
+ dlightDir3f = normalize(dlightDist3f);
+ dlightDir3f = dlightDir3f * (dot(dlightDir3f, normalVector3f) < 0.0 ? 1.0 : -1.0);
+ dlightDir3f = materialData3f.b == 1.0 ? normalVector3f : -dlightDir3f;
+ if(dot(dlightDir3f, normalVector3f) <= 0.0) {
+ continue;
+ }
+ dlightColor3f = u_dynamicLightArray[i].u_lightColor4f.rgb / dot(dlightDist3f, dlightDist3f);
+ if(dlightColor3f.r + dlightColor3f.g + dlightColor3f.b < 0.025) {
+ continue;
+ }
+ lightColor3f += eaglercraftLighting(diffuseColor4f.rgb, dlightColor3f, -worldDirection4f.xyz, dlightDir3f, normalVector3f, materialData3f, metalN, metalK) * u_blockSkySunDynamicLightFac4f.w;
+ }
+
+#endif
+
+ // ============ OUTPUT COLOR ============== //
+
+ vec3 blockLight = lightmapCoords2f.r * vec3(1.0, 0.5809, 0.2433) * 2.0 * u_blockSkySunDynamicLightFac4f.x;
+ skyLight *= u_blockSkySunDynamicLightFac4f.y;
+ float emissive = materialData3f.b == 1.0 ? 0.0 : materialData3f.b;
+ diffuseColor4f.rgb *= max(skyLight + blockLight, vec3(emissive * emissive * 20.0 + 0.075)) * 0.075;
+ diffuseColor4f.rgb += lightColor3f;
+
+ output4f = vec4(diffuseColor4f.rgb * diffuseColor4f.a, diffuseColor4f.a);
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_gbuffer.fsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_gbuffer.fsh
new file mode 100644
index 00000000..db34c778
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/accel_particle_gbuffer.fsh
@@ -0,0 +1,42 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+precision lowp int;
+precision mediump float;
+precision mediump sampler2D;
+
+in vec2 v_texCoord2f;
+in vec4 v_color4f;
+in vec2 v_lightmap2f;
+
+layout(location = 0) out vec4 gbufferColor4f;
+layout(location = 1) out vec4 gbufferNormal4f;
+layout(location = 2) out vec4 gbufferMaterial4f;
+
+uniform sampler2D u_diffuseTexture;
+uniform sampler2D u_samplerNormalMaterial;
+
+uniform vec2 u_textureYScale2f;
+
+void main() {
+ vec4 diffuseRGBA = texture(u_diffuseTexture, v_texCoord2f) * v_color4f;
+ if(diffuseRGBA.a < 0.004) {
+ discard;
+ }
+ gbufferColor4f = vec4(diffuseRGBA.rgb, v_lightmap2f.r);
+ gbufferNormal4f = vec4(0.5, 0.5, 1.0, v_lightmap2f.g);
+ gbufferMaterial4f = vec4(texture(u_samplerNormalMaterial, vec2(v_texCoord2f.x, v_texCoord2f.y * u_textureYScale2f.x + u_textureYScale2f.y)).rgb, 1.0);
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/readme.txt b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/readme.txt
new file mode 100644
index 00000000..9bd03640
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/readme.txt
@@ -0,0 +1 @@
+these are just low quality fallback material textures for the default vanilla resource pack when no PBR resource pack is loaded, if you would like to make a PBR resource pack put your _n and _s textures in the "/assets/minecraft/textures/" directory of your zip file, do not modify any files within "/assets/eagler/glsl/deferred/assets_pbr/textures/" because they will not be recognized
\ No newline at end of file
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_feet_end_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_feet_end_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..f87d047870cdbcd8ebba6346bde07adaea15d3a8
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}QBAU~u4KDB)!=1E|CBL
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_head_end_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_head_end_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..9ab55d71b3c9f5d65c8c4a537669fa5bdce29a6a
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}QBEWhmiguoPyn6JpR8V_;5TV3_2oLL}%wI{rhFc)C5;byQGWMEEUVAys$mq;|pS!K=c+&rNtOD6di
YN!(d8DRz>l%9ic9o+>~ZC$h2w0FjL~4gdfE
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_head_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bed_head_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4eeb6b06aae60039636453e6b365a522181cd523
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}QBEWiS$8Fc)C5=4P-LWMEEUV3?%xWZUjsFO?@5Q*%9+EJ>O4
z)>8#Yg4iyTVsn?OxJ(KKlMptHT=E1cn+Mc2X)e%&Op&*fR8=xnz@*vSN$M(ox2{g|
LRM~br*UAn6C7Ul{
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bedrock_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bedrock_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..d3ec27b1f505e25ea0e717d9da6359ee5170ab96
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009L<2LN>n00jg9Ck6ma2mk|M001&bQfSE`B_xuGCQL3z
zBv6uxD3Z!1Ng*joB#|VOkdq`VnHfma5+sz9B*`R>NeL-62`MC!GD#t1$q^+;lyM|U
jWSB`vl9Mt?BuYskDke;k!crv3Bqbvul17mv$q70>k250c
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bookshelf_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/bookshelf_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..3258298584898f027ab0af1dd73e1aa957ffe0ac
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}SHwWGFReNE2j;=4Z$@VCWBI~{VCQ~&?}
z&id;0f9mfUQ@z5cgk(+44WHT#BwtMl&YJ24Bqw>Q01;4q?lGYH|Np;M*MF^l^0j)}
Z)%u95K4n+KBd&UvT@88yBO&Uo>;TyqJ+=S<
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/brewing_stand_base_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/brewing_stand_base_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..3f4a00b1048f5aeeb5632ac0ae1d4e98b7fee444
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009Mb7XV})09zsed=vm}8UO=e001&tWu{3alG7=q$w`%2
z5=k3Lk;x)Rmt-`_A|rl|?7q>LuCmA05?l+{P%#jN-Hr*n
NodZ-1Bq8dp>;RYSF$Vwu
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cake_inner_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cake_inner_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..3742fd9a026b0fb829f4503030e97a8fa68e94ac
GIT binary patch
literal 91
wcmY#&bqZi)7GMxyU}O&ERxOlM)n-#=a$sQiPXN4H{cH8T|Np<=$APWv09qMAQvd(}
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cake_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/cake_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..1c00111a49d00e8a48d49c36565eb7d7f34ea841
GIT binary patch
literal 88
scmY#&bqZi)7GMxyU}OsARxOlMWpZF(2qgfrR;^kI!MM6*k0}ucZ009P73;=}`07nb}rxXB83;<3H00UqE0M^@yXIpOAl5M1y
zwa(RTH)yuUZ1h^&Zp7Pdw317=Z6(f2UMEPB*&<8ZTWzk}cF{9-kdjH(+iXc&PT15<
mbd$DwYqlpuOV-t+~x6N@*qCePmW*qv;!4wCwK2nvAvYHrh!vk1k3_XJnSr(07nu4C<_2v7XSlb0043l;jSeKaF+`$$y=4S
zjcutblDL~~BO;|Fqe#}|E*fHnw%l%3+>y6pZKRVeNR)(@jV8+EjkcsFH3>n1|lrMVPs#@ddy+KI@NX||Y%LqkD$)hY-^(qm-@
E0EZMFIsgCw
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/comparator_on_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/comparator_on_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..090f2b370643e325d38d064fcebcb6b79ac4cc6c
GIT binary patch
literal 173
zcmY#&bqZi)7GMxyVB}nGX;z~>Z>5#g5)1QE28I=udRzTt7F*bzY)ofqU|nB$_@ap12s4R
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_front_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_front_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..aecf7553133d365fbb58906f4dc98fe0c69ed763
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}SB3&RQeRFi(IXPl2IdkbyaYfuYDVb<;`ZB2C?Gp2|h8s+(Mu
zGovPFEty=Tsk%{Rav_)mvNuf%&QzJ4DU@BLv~-hFaKR)HS*WyllT&b}c5tRvc9Ev?
XCYNBK`b{1ny_-ChLF%<8TiF2svu`RZ
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..1553d92c5bfb44d9999819f05f63c9e0e7c29c2d
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}PC}_TMUm1uhm{LvB^P-s
zmu=53y`7zMSvl<{5G5BK@-B+b2C6B$nq9U#yGUzwk*9LXs?{ksyo)@!(}3!4XO~^i
cE{aG_nVk&OQY7SEa9Ozks2(VOJKM?*01gf@-2eap
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/crafting_table_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..6d0f74f015ace9b12410948ef03bd74200a63cf4
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}Pp+D3fI96=awv$iSSyz_9IhE)Xp_MM6*k0}ucZ009Qdff-c{07nb}(v}%a3;<3H00UqE0M^@*Yg=yFB(13@
zwa(LRS7>(2Z1g(YZpmA1wIq|bZ6(f2UQ0+x*p!poTWzk}cF?tUktCAV+iWD;R@qXO
mbtSfYYqm>5lh)g9k`ivoLbasblG|Ht*)49i)|T5_b~--lraFfJ
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dirt_podzol_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dirt_podzol_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..94cd1a4e08b0d95fac65027eb21bd18740324cd5
GIT binary patch
literal 135
zcmV;20C@i;MM6*k0}ucZ009R@2mm$-0A~{bC+SNJM4w-!x@ma4@pQNU|Mu(u((_M}UT-|xuhL&7-%IqoIzDDeK7arK
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dirt_podzol_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dirt_podzol_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..6588620a1a3d23c0e81f31b7d409830458fe596c
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009L+5ddH#07eu5R~-OO7ytuc001r0Nis7_b*f2Cnn|S6
zS&iCJZj)PVl2I)bTV#?=D3c8(5=$krX(YzWZL>`zmg{Vm%_O^RCYwn%t4mHYNhY^h
jcCuNN(&=up)3w%3ZJJpn6f%}n+-I?Z7RA|sG3q%t8A9nY?exCwnA+vn@KjBYNXp$rCOD?*(s*UVNxPp
jHj^o2)M}{GWwzU7rrSxXD+x79s*;;YHWOVY(rP+BbmuVD
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dispenser_front_horizontal_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dispenser_front_horizontal_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..03cb6faae63ab6b3b4837ee5c3f5f0ad939cc4b8
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}P=gVkp&RvfyKg6k&)JU|>#QU{IOl2}EYMQ?}j8G>gvJ=B;UV
zW$jjNO(T`H6IC_Mw5G0f^)%C%
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_acacia_lower_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_acacia_lower_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..d27115115addd4e29557b0cdf2044fab50958f50
GIT binary patch
literal 88
scmY#&bqZi)7GMxyU}SQVWSIVpfyse^VQOe-WGE2;s4f(Q(Sem60QH3#x&QzG
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_acacia_upper_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_acacia_upper_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..603f97e160aaa79c6657d1b081932a0abf83ea0c
GIT binary patch
literal 88
scmY#&bqZi)7GMxyU}SQVWSIVpfyse^AruWv1@b|d7%(+7bfuLY0P=+z3IG5A
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_birch_lower_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_birch_lower_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..2320e295b3f32c0059bfc743510da5ef8775c16f
GIT binary patch
literal 88
ocmY#&bqZi)7GMxyU}SQVWSIVpfyse^VQMIG0Hh9t(Sem60Q89&wg3PC
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_birch_upper_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_birch_upper_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..85495b181e371ba9ea08ff7c078e46c97e3ce6dc
GIT binary patch
literal 88
tcmY#&bqZi)7GMxyU}SQVWSIVpfyse^AruWv1@b|d2oO0nG&Iu64gm478NL7j
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_dark_oak_lower_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_dark_oak_lower_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ac3b3cf9c195f4aecc13f492afca28c76eb9eaff
GIT binary patch
literal 91
ucmY#&bqZi)7GMxyU}ScZWSIVpVfu3hCI<$FsiEPa#DJ+lMIek0tn2`4V;eUB
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_dark_oak_upper_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_dark_oak_upper_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ecf07ebcc057bcdebd4e10e78e3da334b61a628f
GIT binary patch
literal 91
vcmY#&bqZi)7GMxyU}ScZWSIVpVfu3hCI<$FP&6ZH8d>L$_@bY#Tp0z
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_spruce_lower_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_spruce_lower_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4680cea5dd6042d02757197dd0a944cf9a4012c8
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}SQVWSIVpfyse^VQOgD)X>n#R0syKv4fS%W@TcNw6X&LEU_CN
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_spruce_upper_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_spruce_upper_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ae3ae02afe3ab297eb46ea8e36df9b5aad86eae3
GIT binary patch
literal 88
tcmY#&bqZi)7GMxyU}SQVWSIVpfyse^AruX)TsA9nDw-HBE=aAF9RL{m8!`X@
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_wood_lower_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_wood_lower_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..2320e295b3f32c0059bfc743510da5ef8775c16f
GIT binary patch
literal 88
ocmY#&bqZi)7GMxyU}SQVWSIVpfyse^VQMIG0Hh9t(Sem60Q89&wg3PC
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_wood_upper_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/door_wood_upper_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5ffd31bfe4fa67900e2f0fceb2dbdeb3cf0636e7
GIT binary patch
literal 88
ucmY#&bqZi)7GMxyU}SQVWSIVpfyse^AruWv1@b|dFbG>ZH8d>L$_@bY#Tp0z
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dropper_front_horizontal_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/dropper_front_horizontal_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..51ac891d4db55f1ff70f20c2fe5b0f0bb2cd899a
GIT binary patch
literal 132
zcmY#&bqZi)7GMxyU}P)cXDHKQh!AD4;AgPlV~7!CU`}9QP?_WjMApf(Z|4+RzTJFt
z&qwQ&Z8vp3>Mq%qtMbuu&9sxIotDccd76B*1S#F93Labed`1&ONDVwhBmQntI*NJsoHUB#&yEs;W#1nW&{2)U{%w
X+3lchE}f>HqCpxfA*Ml0wz2~NY6B~n
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/emerald_block_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/emerald_block_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..8ac491e8800180b6562f68a94115042c7b59da19
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}Sw*&v2!K;dvFq?PiAaJq*kV3=G?D~_#3r)0A$le#>-SE{Vt=Bd0=WtA6<)C97Hl9#GXnJ_7G%ZVv1(_U_y
eDbg}M(9>C^W!GXakCfIci(RJO&Y5)E$_@Z{Vl}w{
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/emerald_ore_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/emerald_ore_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..921b4899fd49459749576c605330d094ba94ea82
GIT binary patch
literal 132
zcmV-~0DJ!>MM6*k0}ucZ009Pob`(_%07nb}|AH7y3;<3H00UqE0M^@*Yg=yFB&4Y)
zwa(XJS8TS+Z1URKF3DLfwJ1}!Xk^c8UQ2CZ+hmj5TWzk}cF8ql$t052+hKZ3R@qvW
mb`>UjYqX1P3)b6dD%)<-B(=5OlF-|2*)49i)|T5_b~--EJ32D}
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/enchanting_table_bottom_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/enchanting_table_bottom_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..e4f41424befe9668df162a49d8ca201424652cef
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009NzdH~gb0LO*^+qNL+=t
zX=+l`r7LSn!(^pPY_=6-l9EZ3$t{vb+ojS?kl2)k6x5}w5|$LKvPojLm1MG8Er!Ts
jgv(_v!qkncZ7oS{ktkFtDJ+&LEh!}}mRTf{$t*fPp8+&u
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/enchanting_table_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/enchanting_table_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..179057055b1077ef36fec7a1e7b3267a1434178b
GIT binary patch
literal 185
zcmY#&bqZi)7GMxyVB~#R#qhMB;dmRv%Wej50fvhU7%nYfxLVI}Z7##@84NMv40mc6
z?p8CfG%yeZPFkTrut-I%GJ5y!t<#g#D@}Lrj-6h#a_))ft&N?tE?V4ajXl_L=gyh4
zC+=SCJ#**mox2C`96WPS=I&YHJHkDOE$-eG?m2t+Ovk|U5LI4|
Wpkd-rbufJ}b71De?19;9Wd{I64nE`n
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/end_stone_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/end_stone_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5dac74bca7d653f4cf81a0164770eff9a500fc5a
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009MK5dd`#0B8^ZT@nCo4*&yT0043%%1%g9u`3l;$eW3`
z6>iBDkuw{vMI=f|BatTIOr)fVI_x$k+>zU4WXUB?LnMhO5=xb1j=Ld9xe}7OB#p?E
jl1P&>MQe#D)k;NdO4%ee$6S>%+>yg1u-77PM58)BwY@Fo
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/endframe_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/endframe_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5e064d522e61937b84dc3c29b445dbcc7d0f5f68
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}T@5%HYDo&??DL%FmF^%g`&w5GTmMoWQ`KGRYGwy1DIk?zYco
zmjI=2pViL)cV%`ih#l>_ciWB0vtEK^ulxn+T>AgN>i(a(pZrrN|ID9s|Npk%`QM`R
Q|NZ{I@AjYVKW(k-0Nm?5Z2$lO
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/endframe_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/endframe_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..0e706d395fa55e5402f34eb37e40e0bad2e168bb
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}T-3%Amx-P|D9xWx^0E#K4@uz@Re86Nn5ZYnllqs@(Eja?4X~
o+ey{!o@$#sRi*>UNuJ`KMj$c~!p0^7RteSxF#&2C*kmg^0OhpF
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/farmland_dry_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/farmland_dry_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..e6f8a5d0a17c2ff0ba7276e3161ea0994cbf52dd
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009L+2>?O}07M4>Nd^Es3jhOP006Gm?Q*kSaFXS4w&k+Y
z;WD<_E~4EqmgOv#=`y0_Znoua!tJJ)A##%Gu$Lupmgz8-<#M+RGPYeVw<#{t;VxHe
jEz;RWS6p$@WG^2&Ii$$bbh9uKUBxH)li)h6n
jjaHLP#ZhI}j7c?Zam18}v}BE1im1kHky#y$*y=hy{O&WY
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_front_off_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_front_off_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..2c743ff02e464c1b26f12d6cf6e729f34ca0a21c
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}P=RVTcf6u;62e5oE~cXJAfXVAys$7l<}_3Qh7%-RLoCqQ=rq
znz`FMe*-pA
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_front_on_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/furnace_front_on_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..0cc7e973334a9232e15ac8134dcc19eb3a9570fc
GIT binary patch
literal 132
zcmY#&bqZi)7GMxyU}P)PVTcf6u;2rt12KXO`TPvb2@DLkbGHG}wcA14Zm+uI-FG*p?gRaMeZRmp2MM6*k0}ucZ009P73;;(A0LkY7Obh_r=KxL&00UqE0Mbc`M@c5wl4OLH
zw8}>$Givt7Y_)nxCdA1kkdjK1ZEVWf7AIQU*|JL8NhFF%Hr1mxw312ENhNK`4%o&_
mP?NS>X|^X;O43OrwzlTP)^v@{iQ7pe*qtVlL{8gDHab2ya5k0z
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_side_overlay_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_side_overlay_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..7669983d749f28b3eee5401b6db0082e96fb6e41
GIT binary patch
literal 126
zcmY#&bqZi)7GMxyU}RAiWf13QkQQdJlVD&@U|>+$c3XAZWj!J3BC*>|W*lk`GZ>f{
L5*rw(1+44<#+nMH
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..0e0a24c31bd726cfa088b14235a03b4344046ae1
GIT binary patch
literal 132
zcmY#&bqZi)7GMxyU}Q7nWJnig&|qVd5n<5dV6fw4U`}9QnB=JfLLMnVa++uABzINq
zh<9z$y(Z6c^;X5MnH62OJMY@nyz5z++mmv2W_y~=%3g9icImCV+wQJh_O`IvDAa87
kN|$TdYc7>;yIr>Iw&!~5PSaPfZ_V~J7YMM6*k0}ucZ009P*4*)g^0H_ZDEeHW^5&%9400UqE03?!0B$8<*l8G&n
zNpX`5CAmyjLnbJxlu>A;Qdp#sD5R1}CelkL(`cfTWTa6k5>hCniAf}iNhFd@qKa)Y
mn?$TqC8DWFq>)6ll1Vm-NfMJul2U0T+9?uKB`iurq&hxa(kf8^
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/grass_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ec9cd191853ad3e9731b2e0485be7e72ccfd11a9
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009M2CIBQD02K`Y8W8|I9{>Yj002cv97;)CQl!*&qa?A(
z5=z+FawM8^DJ!zeWi8s|N!XH#Muoy8
jq_mt#I_+gg4RSXuHcHKP)m*g7>XoTuPAMafNaZ>{1ky7d
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/iron_block_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/iron_block_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..72ce37e6db9eabd18cf6b3a843c43fc58275e40a
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}Sy%jN$q-hFi}VUO!{F_l$u#fq}uu$y4Q|itd(4x!dmOZo3U6
prvZuEIhrbye7D^Mi`;~YsDWhB)Oebqi}=FS7H?10|3*WKD7V<
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/iron_ore_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/iron_ore_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..dbcab9763fcfe0ade6af9684b8ac993ede16d580
GIT binary patch
literal 132
zcmV-~0DJ!>MM6*k0}ucZ009PYJphC~096bCM+^W=3;<3H00UqE0M^@^k6Uipw(YIC
zwbIjVcVu?YZ8AFBZq3_mwYJ>1Y?aX~W^W`(*p}SeTWzx2cF4zeNw(Y8+iE1+UfI&!
mmAAH=YqoD9+}7J|NfK_&qV=TRo7-D$*}ZPI*xuV)b~-+phdMM6*k0}ucZ009P73;?ws07nb}Obh@{3;@n600UqE0J2F*X2~VAl4OLJ
zY_DvjGS#i7+pgA0C8WtDkdjN1+qA7|9VV@^wIWNaNhFR*Ex9u;yJAVQNg_#TwY0=c
mNfNbnC2c0!v$9B}Nl2BXl$1$JNw&?jw3{W8MoqTKEjm7F{xfs{
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_acacia_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_acacia_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..564a2cf4909d7854ae76247d0f2a3998d0cedb7e
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009M34gfS704OW~OAi1(6aWKY005S=S+=UHHj>R|xT7|j
z&1R^hvXqTxvdX5^t){Zdw%2W@vW==&X=PH4tkzj&N{y`6X{DP=u3F8dn#zdU%{7|i
jDB8<4n#(NO%{7}#Hrl1On%Om)p>>*#wHs-+n`$~fku*CB
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_acacia_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_acacia_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4a9b8258c1f420506b44a854f10dbe8da5c774ba
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}O)HVF>19Fp**im16MXXRsD!h!J66PGDfTnL8<3ciSaTl}S!%
z!Tb2kUV!8B=YR?$^ZW+
k17%ev39AK9<^<{r{`vp^Po+&j(>&E~=1#kvGR?{k06v{PGynhq
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_big_oak_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_big_oak_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..564a2cf4909d7854ae76247d0f2a3998d0cedb7e
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009M34gfS704OW~OAi1(6aWKY005S=S+=UHHj>R|xT7|j
z&1R^hvXqTxvdX5^t){Zdw%2W@vW==&X=PH4tkzj&N{y`6X{DP=u3F8dn#zdU%{7|i
jDB8<4n#(NO%{7}#Hrl1On%Om)p>>*#wHs-+n`$~fku*CB
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_big_oak_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_big_oak_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4a9b8258c1f420506b44a854f10dbe8da5c774ba
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}O)HVF>19Fp**im16MXXRsD!h!J66PGDfTnL8<3ciSaTl}S!%
z!Tb2kUV!8B=YR?$^ZW+
k17%ev39AK9<^<{r{`vp^Po+&j(>&E~=1#kvGR?{k06v{PGynhq
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_birch_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_birch_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..564a2cf4909d7854ae76247d0f2a3998d0cedb7e
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009M34gfS704OW~OAi1(6aWKY005S=S+=UHHj>R|xT7|j
z&1R^hvXqTxvdX5^t){Zdw%2W@vW==&X=PH4tkzj&N{y`6X{DP=u3F8dn#zdU%{7|i
jDB8<4n#(NO%{7}#Hrl1On%Om)p>>*#wHs-+n`$~fku*CB
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_birch_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_birch_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4a9b8258c1f420506b44a854f10dbe8da5c774ba
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}O)HVF>19Fp**im16MXXRsD!h!J66PGDfTnL8<3ciSaTl}S!%
z!Tb2kUV!8B=YR?$^ZW+
k17%ev39AK9<^<{r{`vp^Po+&j(>&E~=1#kvGR?{k06v{PGynhq
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_jungle_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_jungle_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..aebc8aada84011a61c68d10d409cb0d5afe3a54b
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009MK4**pe09h6QT@wIL9RLGh001T1NhFgZs19Fp**im16MXXRsD!h!J66PGDfTnL8<3ciSaTl}S!%
z!Tb2kUV!8B=YR?$^ZW+
k17%ev39AK9<^<{r{`vp^Po+&j(>&E~=1#kvGR?{k06v{PGynhq
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_oak_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_oak_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..564a2cf4909d7854ae76247d0f2a3998d0cedb7e
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009M34gfS704OW~OAi1(6aWKY005S=S+=UHHj>R|xT7|j
z&1R^hvXqTxvdX5^t){Zdw%2W@vW==&X=PH4tkzj&N{y`6X{DP=u3F8dn#zdU%{7|i
jDB8<4n#(NO%{7}#Hrl1On%Om)p>>*#wHs-+n`$~fku*CB
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_oak_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_oak_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4a9b8258c1f420506b44a854f10dbe8da5c774ba
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}O)HVF>19Fp**im16MXXRsD!h!J66PGDfTnL8<3ciSaTl}S!%
z!Tb2kUV!8B=YR?$^ZW+
k17%ev39AK9<^<{r{`vp^Po+&j(>&E~=1#kvGR?{k06v{PGynhq
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_spruce_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_spruce_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..564a2cf4909d7854ae76247d0f2a3998d0cedb7e
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009M34gfS704OW~OAi1(6aWKY005S=S+=UHHj>R|xT7|j
z&1R^hvXqTxvdX5^t){Zdw%2W@vW==&X=PH4tkzj&N{y`6X{DP=u3F8dn#zdU%{7|i
jDB8<4n#(NO%{7}#Hrl1On%Om)p>>*#wHs-+n`$~fku*CB
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_spruce_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/log_spruce_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4a9b8258c1f420506b44a854f10dbe8da5c774ba
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}O)HVF>19Fp**im16MXXRsD!h!J66PGDfTnL8<3ciSaTl}S!%
z!Tb2kUV!8B=YR?$^ZW+
k17%ev39AK9<^<{r{`vp^Po+&j(>&E~=1#kvGR?{k06v{PGynhq
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/netherrack_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/netherrack_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..7f4790add276ecab79778221aca5f99909e83257
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009LN4FDq_02L4b9uxo$3jhOP005FS$tFf*lDc6fl1weq
zVYQlTW|-ur(+N?S-7Uijt(IMhwrwqwX(lqwZkY)-vukvdB#fImBTHE
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/obsidian_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/obsidian_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..e4f41424befe9668df162a49d8ca201424652cef
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009NzdH~gb0LO*^+qNL+=t
zX=+l`r7LSn!(^pPY_=6-l9EZ3$t{vb+ojS?kl2)k6x5}w5|$LKvPojLm1MG8Er!Ts
jgv(_v!qkncZ7oS{ktkFtDJ+&LEh!}}mRTf{$t*fPp8+&u
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_bottom_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_bottom_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..9a6e99c1b979acc01bf1bfd6325da862710a27da
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}P=eX9yQz$lzy)5oCxLXJAfXU`UzdsXNKD$X%$&I-FG*p?gRaMeZRmp2h6+y6d6Q{`z&dU-sU+yZ`%5)9u@Cn|C79QEs7#7fndGURzNk9qqh;=<^*J;3HMgD4-Kd)})cJVRV8&*x7|$HsGU2-
gJ7=PG?xfo(otC-Nf^{}(r%wXv0&3Tp&Fl~rk$nVDQycXUT*aS;_a5fOJ$
z5qEqwTe~$?Q#H)0az>%
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_top_sticky_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/piston_top_sticky_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..9e8c1f200061df1f27dc2866ee7c97888e6dee89
GIT binary patch
literal 357
zcmWlTze@sf0L7nn)i*ifYa}%|T!n&5=oCqmcj`sjV1wn4Q==j@tj=HO=`E=>)YcXe
zjx9A8Zsz$P1oa<8LrV?KeS^p2Gd$jVuCNrdj8ITmd?^PMitGmtW|3Er-$lWRLK;UY
z6muxjF({eG1dooZ;J>WUJ!|3@;;9m=$-oLw+|g}Z6Yvri$dGBJs>o)`26y;=Xn&ZoPA2`wS03NM4;>Vfjz@ZJ~W1IJ^<9M81%TMD=j^d%%Vsc!{{WCui-6
hpLb`;LS{1O;(%XnacXcfA9AWD?`2!;Gjr3w`Uf@yV>ti-
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_acacia_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/planks_acacia_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..e01979a595e0671b4b68dfd6d5dd88b79bf606d7
GIT binary patch
literal 126
zcmY#&bqZi)7GMxyU}S0HVkqTh$P{9Tl4W2{U|{Iou2STwG)YrB_qfu;ZBK$cl~g8q
z0#WaFrQVe)xj-qm+mk$%ay?Zb;*&h)fVkULa#!4%
jMp8_W(oHP02_{rcB(ofZ)g>&{WR6nXme*~rw_7?s3h^!%
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/prismarine_dark_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/prismarine_dark_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..2a99d360960975d47441fe076e34d01d1d6aecd6
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009Nj5dgOr0LT*ntQi2m6#xTZ002o^lZjhpO*>JE8k?$^
z=}8q+WV&0dnn{sWWvW_}m6)kfG?A*cSyh`+q?Svpy3LlO|-n>8UiS
jtd`qlmf2QXrI9%ksXJRq8ELH;sjigUq?$==x?4Iv**rGJ
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/prismarine_rough_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/prismarine_rough_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..589b79e2818ca699f65688e66f7f80b7d33020e5
GIT binary patch
literal 423
zcmV;Y0a*SeMM6*k0}uc}009SaDFC4m0EQj_nG^tOEC75X0FD^|1AqYl&EK~!h}R=Q`eG=Fb1p?b-X^H)rndpPsw3Uv%b9<(<3F{?9Le*`?EUzufJ$)9v5l@y+ka
zw{F|^-CHL%Zg{p!ewV4YdQbG8{>MAF{PJ^eH~ruJ-}~F{&Ci!Po~_Q_fBiT#mHzh9XnVy|PA5`R4<(-qu{=Y9J*`?Dpztt_iS?%BAxy`PLcVya@r_((s
zZe2EGYL}_8dRp-A{zt2~ojBiTde
zCq*vmIh&nBA64{Y<(-pj{=dzo8KsjQKb0xI8R>uQzVb+kcVya)$Jae5Zc;X9>Ys_R
zdRmij=UOA5QbJ^tCb{#i)R`0J&HtAInV#)K
zAC&H1<(-piNk7j?8Ky|}ztt_T$?bpb9&gVH_h{Od_q#v%ZjZKmewE3u`d{$%CWp(n
RpTcARCq3W&*ZbS%IzFQp@st1n
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/pumpkin_face_off_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/pumpkin_face_off_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..e3e4a1b94114aa87aa68f870b8ac1e72fa290894
GIT binary patch
literal 126
zcmY#&bqZi)7GMxyU}P~7WH1wCFc)NyWoKYcU|`5Ko1D32cFGp7lr7#FJ2}&gfTUuP
zTX5z{$>@Y{D2THrOlE3Y%e-fyk=l@
zSv;aq0trOZeF~fT{gA>o&W6^b2_Ch4Vf{=)s7c;fYx^k}XTu;==5Kru-mO5y?y;;JARYSw28GcXaFCddK
A^8f$<
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_bottom_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_bottom_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..d09984340a3f5b0571a89b96a541213d3d5f3cd1
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}U}I!*I=w;g%i4T?>Z$#th5}3=E!XUPU)9c`5}Jxn1&@6kMb-
zDPvM_rpn}uNwYJBW_!%e@|YClu`|nMl9%gFT_D?K%G*qpV2?>}b3tlu=PruwRhs1~
hbfeV+l1m}B+ax+ZYZ5WS
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_chiseled_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_chiseled_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..649ed0f2dbd7884507e5f3136edd9b94a003dd66
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009NiPyo_Q0OmUY)Jb7Wy<(Pn0l6_i1xrrFw0Z$apdd&AP**F6^Z}^^vQGiE$1FYN(*jfmRC5Z*
I29Z{F02636$p8QV
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_lines_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_lines_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..4d020b2eed80596a710e08dfdb98fba7896684b0
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}U`z!0^z4;gToA3rmJq1`Nyz3=B(d`7XWXtLZVN(_@OpB=1bK
ziyJ0+=WcttVag;=rKcKGZs#lt(b#f1Wl`Y9Ew^$OrEZvVDR)__28g@@l+6W+gH&$Z
X=BYAmsV0b=0yb^p+Ni5QWMu~c_E0%s
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ce73796f6fc89aa496e489059904ebc214352157
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}U}I$8g1y;kqls`2dFZb_~o33=ESzRaz#i07>6XzLPwad?)#~
zc`CU8Nsl0x6QONxH`P3O+th9vd8$rSyRGJ_I>~9a%Vgd*kJ%m|HIqCgMKxvws+^dr
dsgyFw<*uf($|SeDx<)CQ+pccAoeM-(b^u7CEt~)V
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_top_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_block_top_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ce73796f6fc89aa496e489059904ebc214352157
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}U}I$8g1y;kqls`2dFZb_~o33=ESzRaz#i07>6XzLPwad?)#~
zc`CU8Nsl0x6QONxH`P3O+th9vd8$rSyRGJ_I>~9a%Vgd*kJ%m|HIqCgMKxvws+^dr
dsgyFw<*uf($|SeDx<)CQ+pccAoeM-(b^u7CEt~)V
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_ore_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/quartz_ore_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..f2ed48969ae09f215f1c4b24780936eae7ab3c90
GIT binary patch
literal 135
zcmV;20C@i;MM6*k0}ucZ009TEKL8^i02dDcsyYE26abty01XZT17H9ECba+l*Us0!
z@6rF^?f>SP|MP$RN#Fl}Rq|)=Z-4K3pN41u?oatUKKE~XN#DL>fBsId;$nXDCr@KP
p{+;W2?fd#|+sFI=xBvb=_aCp{cJ9gF=idMR_WyKhC+`%X2!y0a
J9AvVU9RLTsEQKhC+`%X2!y0a
J9AvVU9RS_tEGGZ}
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_detector_powered_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_detector_powered_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..6b915f1a71ff6584db3c0bea1bd4e168fc32c09f
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}SaTW4QE;q2)P4zm4jgXAH~<3=FD4o+`6CagxC*lcYLTgQfGZ
MlVDlACRo`405Gp6UjP6A
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_detector_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_detector_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..0799d9bb4fae1279302238ae0dd1314fa5eab746
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}SaTW4QE;q2)P4kfQ3GXAH~<3=FD4o+`6CagxC*lcYLTgQfGZ
MlVDlACRo`401K)n2LJ#7
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_golden_powered_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_golden_powered_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..03de3af609a5bb2380800a2e85590d4c83fba073
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}SaTW4QE;VGa;IXQIo7Fa>8S=MEqs>%*$|Q<
JagfPYb^w0qEaw0K
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_golden_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_golden_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..a29e96c94ee7653900554cbb72f478067f6216ce
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}SaTW4QE;AxKem&NGHN&l#8#7#LK&JXLOVs(PJNMUdVpAU1@g
KL>y$Yl^p;wrZEcu
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_normal_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_normal_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..87b59b13596d50b421b3c05978ef9318aa1646d9
GIT binary patch
literal 91
ocmY#&bqZi)7GMxyU}SdUW4QE;Va_uKCI<$F=+Mxolwd160Fyx^2><{9
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_normal_turned_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/rail_normal_turned_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..1e70e81512cb7768d110e04c9d6afe416ee34ad6
GIT binary patch
literal 91
zcmY#&bqZi)7GMxyU}SdUW4QE;Va_uKCI<$FPy|>N8XEOKG<1DvXxP`#&}g7UE)Z{p
W;IOMeVIT$y#{+Q{5I+TBD?0%CFCXs!
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_lamp_off_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_lamp_off_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..cab76014682f4db3bbc219bde454e9fb76271c43
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}U|_$8b!DVTTyQ8YzakatzD~3=ArhJb_4K#!NkpKvi=gJrhsW
z6DQToCK|bQrCKT)nZ)$0)YP5ybfeHkRiUR_Cv~b!PuZsAsXOV-R*{=pMnM_d6*WCN
eUA-l>tOd2K6ICsx^mcS=EV-zs5(qKb$_@ZMswhYR
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_lamp_on_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_lamp_on_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..036a84095922c2cc3017fcf0d6d4a0e8e49472f5
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}T*mzhaL3($fNrbL1Phid!)!Ffin9yA4F8R~8qByv{q4Tj(8K
z=B%CToSmr}+jl59)$2*%74IT*A-CPydAo&z%%gL6gs6tyE(+&ywN@_mdNcJzaM{V|
ebxRhfI%Su-1m_${EjSWgdRx0N>NUh(!Xii%Vrp;5lGYR5a}408s~
zBGLrKld4$rF%Qc-u6b1H?n%eIQ$jxcJpnOF9<5&nC^Rs&h;
Hx-82dki|4<
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_torch_off_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/redstone_torch_off_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..b3a8024e2cc3ad1925b18dd915a7add2e2ff3b35
GIT binary patch
literal 88
pcmY#&bqZi)7GMxyU}Q?+XXv+4WpZF(2*m}$riO-sFacm?2LQ^f83O$Duz~sQdunHGgnYC&aJ`B}oWd{Iz94r$6
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sand_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sand_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..6672b3c0ea0af2b751769e8887b68b8c0e9422a6
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009Lc2>>(;04WLpNe%!!3;+XQ004C=lBp#cNmi1!B$ZYq
zl2+7|X(duATT`m5ZAnz?NkvjsG?QtkQcA^AN~Ek!Dy^#2s!^npYNV1$RF$aLQnsZM
jROzosy)DbySo}B~>XU5=kVKmRTj1*=;&LedR1^
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sandstone_normal_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/sandstone_normal_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..2de9bba4c0f77f38b38dde99bced4c29d95af93c
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009Ly3;-t&04NRsD-8fW3jhOP003z=(`mGla!Co2NZT?J
zO(xQ9DWZ~YrqVJ(+m*=Vl0xH^$t8r6TeP<&sWgd65^7P&QjwIZjk#QMR_nIdWO5g6
jNi%Jhs?u$glBvSmZdoLRJNGAY+&(xkT2I+MIp
za?Ni0ZkdxRG*M+zPpU|l#v-4LNnNT+K(fcsFJC+QfX5q
jWhTvTwAx7|Rj%5LDU|DVG?68iU9F^2g(h8TmQp%CHu*3_
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/soul_sand_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/soul_sand_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..f128bdb325a40564f4f7b206fbbc6a31fa86acdd
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009Le2>>+;07)PKDhL2S5dZ^V002nC36dyGktD1oB2-Zl
zibk0vhMJ0oNh6U`V~JZLgrf>E66aF
jh}2X?q?|O;l!{cOjS_5D$s~!H8I>s|X;on*LTfrcm$oSa
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_andesite_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_andesite_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..7d3463dbadce67ee662b395ef4ad9ca014904413
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009L+3jj0+09POYN)P}n1^@$K001Q;5iu2GG7}|E*2yfp
zWQemVMv_WSl?k<&Q)U=#Zp#^j%Ud>9WRlj&gs4hZ6=bE#t8my&WmejSl?;+HVMsE@(lg9B6K55fKN$*iuLF9qir=W|a>1*<5`BXCEN5@xZ^G
zFR$z+8Kjg_GWyKvy`(UuFrzS`Fs9dvzD&ah(Wb1*xYHUCDfnqM3*gPsL7-uFkX9=g
zi@t!UyjD=oi#h*aEDIZ*LvQMqJKeX&IuGr%xprWWF1n1txZ5lP6dTLYIse=?O>>Lw
F4?nXtCwu?^
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_granite_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_granite_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..bb4dcb77c78d3d05b20e2267b716829e5361e586
GIT binary patch
literal 129
zcmV-{0Dk`^MM6*k0}ucZ009M1CIBG`0456nJRkrs5dZ^V005TQ)3(=bwKilh%X?DkblBdd_
zoQgS_DwBNNll?6w`?$^WG?{%SWm2Za>q0&e
nlRJ-GDoLB;sWQ(e0;qnHkIOtyb)g)$NtsV3`2dXsA}c!p71A<5
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..1651f26b3076e94e0d7e5cf0443ad4354fa4325e
GIT binary patch
literal 126
zcmV-^0D=D{MM6*k0}ucZ009J53;;(A089)3P7DA8U;qG(w+Tiz+>nx6WR)X{wA(I7
zWQItgk+$4~w%cryN^VHoibm8XNXe2yN|H9)X}08qqU3~k~ZWzKEq@)SO5S3
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_slab_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stone_slab_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..dfcb2043c9c4adcd291584bd8ee94be97fb04eee
GIT binary patch
literal 135
zcmY#&bqZi)7GMxyU}SILWhmfeDCA@a;${fpW+>-osN!Z|PGDeAndGT5$edjbg>f`W93sK5tM;&+TIa!*4;EpZ<^UH;+Y`~K{7
zyatmw%_*2!ri!U$Dw*C)XQm6&lWF=PO8mFVhlxedNcmczfYHuI+II@nkpUo*{?wsY
z9Pa8wRnpi255Pw2!4}DuKwCPjV$+yHHg>D6igxM1A>)sTL!sH&skqwv{1zrY-0lB%
CFfCXB
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_carved_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_carved_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..cb99d6887ff5c795679d9f68e179ba97c1c81285
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}SBOWGK{RNU~%oS7yjCW?)WWV94EdciZmFva2eSR3@&N@uLpjy0Qr-L{1rRhCTBn5Y6YZIY*z9RRJfG`9c%
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_cracked_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_cracked_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ad4593746cee0e0b1efa727b259036c92e9e6a1d
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}P=SVo0`Rs8C|aG-9ZiW?)WWVDQwK?Ww66nJItYq7OC^v|15E`NZ85K#LYI8Do)0+UxIagu
zm|}`1*OH!VdP%BJ#GrddkDNYB8h?qV2lnpP^ojGX0y^7Tct|z(l3R401v^(O(?9@K
zW@@1}Y_thMsiGKE!>V5-haGY@jsYiE{VY|0v?kFK;MQ26g_IX(ZLPIV-$Lt9gyDaL
Ga{B|+WG#pQ
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/stonebrick_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..6868e1408241bce47e0e6a93b00b29f019f1984d
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}R0OVkppLC|6?0Fk+~eVqi{SU{IOiGf7g_$WmP|4Ql9xP}%w%fTt)H2Ce(LWU|`6db`yv)-KM~ik+TXAQA^y)4gjrW
BE2sbf
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/tnt_side_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/blocks/tnt_side_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..1aa8886fe124893a456372cbf855fcf9825b31dc
GIT binary patch
literal 129
zcmY#&bqZi)7GMxyU}O#8VQ>{-2OKt&?&yq8(OQJkQx(t;j
zc`9{jIZg6is-!dHmd})jZNgHX$|@6<3VEt5X%!aonW-{yMU?MSm7W#1JT(@zI!yxV
UG7_5Pv*ecRk|>C25RTsNiCVm14-}XJAfXV94Ee8;CZls!VcK&AJ^j?bhT~
zle|18rLLOf(=jP@qmWm~q|{6ypMXihn>-dx@>JdAu>?r2y0s|m%G8ZQK0w*5Nl77-
ag@NoTlT}v=c?AGQtG@2_h$Rs!RbZScD)|g+Oc%kVY@C-iaU*q6}=Bl^p<(kR{9j
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_pulling_1_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_pulling_1_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..be777dd673bd300152679cc461ad36ea527a380e
GIT binary patch
literal 126
zcmY#&bqZi)7GMxyU}Op4VhE6ASpSS6{uu*v0t17}Bu^kxg^-&-Y#2&ZnG~op$p=Kv
lyLO^mN+)OJw0Ir@Ua{vGU
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_standby_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bow_standby_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..af3c5cf0f7b73c390fe04ce6244baf9c52f9cd3f
GIT binary patch
literal 91
zcmY#&bqZi)7GMxyU}O&9VhE6Ah=0bw=;l^p;uR~s7u
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/brewing_stand_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/brewing_stand_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..cfff2fc1d2d8c22b011908ab359b39f3471b27f3
GIT binary patch
literal 126
zcmY#&bqZi)7GMxyU}VXXWr$W{s1afC7iM5iU|{f6nFK*zUJR2LMaa8)X0h
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bucket_water_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/bucket_water_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..a07b5187baa7a2b3b2a05631f73b7fc80a4acfed
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}WkFV#s^Oz~sQdunHMW4O_J`G&E~fXy~d{OQV1?OINL0whTyv
OFbKeC2oFSB*#Q7x)+{Cf
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/carrot_on_a_stick_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/carrot_on_a_stick_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..339ee0704b7f7c22e509a94574a8458a9db9e736
GIT binary patch
literal 126
zcmY#&bqZi)7GMxyU}Op4VhE6AaA0MKf5yO^z`&p~$rFYqf*4c4+(jT#RVWZhYD@x=
sE+EoN1w=wnCz#=>G7ZQ`aoKhfNV;wV>I%}`1SCCk!N%rH^0cx806kD9>;M1&
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/clock_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/clock_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..d2cd4830ae873b5692eaff80a77cb8b1ef9bfbe1
GIT binary patch
literal 4123
zcmeH~v2MaJ5Qa_Z1Mmdhx|BEQ(4kU0cX1*iq3qei7V;Ds5fej>XFxnfo}m(Z*aG}#
za1~V5l6^>sib$3R=gW6@K3Vbe$NN{WKTzti*Z+J{qi>bH3?I}$k$n~;qPQkX8mf{e
zt>QYZqB5nZv~Rd)=Jf^m82(t`H+&lyzeWw%4_;$<=bxblt$>H0d3Fc+yZj#UuRQmU
z`5b<*Jc9VF!>P~^?0;zfsDau4Yw~kp{4*iX=dUFHOYke(q3-!t|MLE^U&@zmuU-Aqf9Gw9ob$bY
z=IlS7|9t-1{=M=3nF`~V@;jkl!cTDiNcgRg-(8V!(7zHt_~otg8FH7zpM!5t_1gyY
zFW9B!Ct>`L-|PORiN^SU-6M7$ynnuY-r=VKd;z{V`6WDm!}tD$+{yUs)WqP+
Y8u176afc7NKU+S5KbUX4?(eT}2Rp{Ui2wiq
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/compass_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/compass_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..d66a293b47a35f1435a9714306197595130736fb
GIT binary patch
literal 3102
zcmeH}u}Z^G6ozlDqezL+C%6HH2E@_9K~l(VGK8*K@1W3v2(C_X52w%vu@LbQ@(7`;
z^f^5D+*p%pAj8R4=#-{k{(kxSx$g8n9t=l9oD5Fma}n>vi#vMViJ>?XpydCbK*>Ua
zqvT3vpi=g@(=dEI=^Y_|LucupB1(R&C`C`{wuF<{)X~@GM*2k
eMtxGR)vN}0dZ*9QXl~oz`&_6
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_shovel_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_shovel_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..fdc6e0e356b9119d1c3588f3d8c60123d14e017d
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5VmML3z~sQd5DEujOG87WR)&UV0r4szjso(-rUEfs1vZA2
F9RM&K8w&sc
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_sword_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/diamond_sword_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..969b360de574a8eb3096ed4ebd094bd6b453532b
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5VmML3z~sQd5E>eq1;ndDL&JbLY9)}n6v&+#1>{D}S_u?g
X3dB>vDnhe>bkx#N5Ckd&V=FrVoH!px
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/fishing_rod_cast_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/fishing_rod_cast_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5098437bf789863d5494de1fe26b04e3815d84f5
GIT binary patch
literal 91
zcmY#&bqZi)7GMxyU}O&9VhE6Ah=0bwdDg;M?
JI1pfE2LKrc8h!u(
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/fishing_rod_uncast_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/fishing_rod_uncast_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..0530e40cabddd9abcc5fd5a371b28d3308da609a
GIT binary patch
literal 126
zcmY#&bqZi)7GMxyU}Op4VhE6AD1OEe|BQh-fq_9~k|zvJ1Tm(7xr;!gs!$-1)R+V!
lT|lIl3W$WDPA~(g49G}vfsi1*L8{Y$q^Ig85D7$9b^x6mCgA`8
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/flint_and_steel_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/flint_and_steel_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..8e55ba3e2d0627c76ff272e7a5d8ae907eee7e06
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}T!`j3G~sfyse^VHF5Oty;A*Y}Klzp+KAp#92@bVgtoMav(L>
HfR!BpKFBLX
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_axe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_axe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..e8c081ed280189682f9024f6555a7e4f46efa315
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56zz~sQd5DEsFKyp=RXc!Pjtps8ad)87Q0m4%uYOs@5
Fb^u1?8-V}-
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_hoe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_hoe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..7ec0ebeb0cec32d922ca7f817f91e7e395a3772b
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56zz~sQd5DEfeOG87WRs!i&Ku#7^Aap8_K@eEk0RSf(
B8jSz|
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_pickaxe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_pickaxe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..ce0adb6c3c39eeabc8d2c8661c7c423cdc327ebc
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56zz~sQd5DEiPD?>xGR)vN}0dZ*9QXl~oz`&_6pb
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_shovel_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_shovel_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..1e3c5752e5ce19bb7dbbca9ee2419237f2f91224
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56zz~sQd5DEujOG87WR)&UV0r4szjso(-rUEfs1vZA2
F9RNKP8#(|0
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_sword_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/gold_sword_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..0023c9fff480dd07860ce2aac09c02f5a94d798d
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56zz~sQd5E>eq1;ndDL&JbLY9)}n6v&+#1>{D}S_u?g
X3dB>vDnhe>bkx#N5Ckd&V=FrVsW2aQ
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_axe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_axe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..96e75623c266db53eba60246c4d011f1cb621f39
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56rz~sQd5DEsFKyp=RXc!Pjtps8ad)87Q0m4%uYOs@5
Fb^u148-M@+
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_hoe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_hoe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..aabf4a1251c6d8e76efa078a7b99dda47813203c
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56rz~sQd5DEfeOG87WRs!i&Ku#7^Aap8_K@eEk0RSe`
B8jJt{
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_pickaxe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_pickaxe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..e9a82c5d6805a41f9c8be7ce4707fb96ba0a9a58
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56rz~sQd5DEiPD?>xGR)vN}0dZ*9QXl~oz`&_6~
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_sword_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/iron_sword_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..dc31fb660d18fce2ae8c685bebb5423791facc50
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V(56rz~sQd5E>eq1;ndDL&JbLY9)}n6v&+#1>{D}S_u?g
X3dB>vDnhe>bkx#N5Ckd&V=FrVsOTSc
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_chest_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_chest_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5cce2f98fa733661d9643aa6c6a5f72fa1ca8bea
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V#s^Oz~sQd5Q+t)hK5FFhK6Qlg@&!nnwqsTYuT!mS*up9
Vj9Rs7X&4ZP0#Rrd5Cegg9ROooA65VW
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_command_block_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_command_block_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5cce2f98fa733661d9643aa6c6a5f72fa1ca8bea
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V#s^Oz~sQd5Q+t)hK5FFhK6Qlg@&!nnwqsTYuT!mS*up9
Vj9Rs7X&4ZP0#Rrd5Cegg9ROooA65VW
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_furnace_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_furnace_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5cce2f98fa733661d9643aa6c6a5f72fa1ca8bea
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V#s^Oz~sQd5Q+t)hK5FFhK6Qlg@&!nnwqsTYuT!mS*up9
Vj9Rs7X&4ZP0#Rrd5Cegg9ROooA65VW
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_tnt_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/minecart_tnt_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..5cce2f98fa733661d9643aa6c6a5f72fa1ca8bea
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V#s^Oz~sQd5Q+t)hK5FFhK6Qlg@&!nnwqsTYuT!mS*up9
Vj9Rs7X&4ZP0#Rrd5Cegg9ROooA65VW
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/shears_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/shears_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..f6ee11cfbd679ec122262ff92ba2717183cd77e8
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5Vkmybz~sQd5Q+k_fV`DcL&KH<@vNz#p&))HSVb6+7nusd
KAT|tG*#Q780UKoi
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_axe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_axe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..8584d6eb6ec8914f33d92016186755ae2b9a6ba1
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V({f+U~*t!2nB;oAh{|uGz^HNRsu1IJ!>hD0O6?+HP}fj
FI{^3E8fgFk
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_hoe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_hoe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..da948d76259d5237a60fed4af10b9b9e3ab606c8
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V({f+U~*t!2nB(#rJ3
AbpQYW
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_pickaxe_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_pickaxe_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..56feb8450af41a044e44aadb376cbb933a030ae7
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V({f+U~*t!2!(;Dm7$?ot3pGgfH*X4DUbjPVBl1kau{u8
F2LJ$w8u0)C
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_shovel_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_shovel_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..818e25af160493bc91981882501e6f3f3c5ddd79
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V({f+U~*t!2!(^NrJxGfOr)UM*;a^Q-K(+0vp51
F4gl^78X^Dy
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_sword_s.ebp b/desktopRuntime/resources/assets/eagler/glsl/deferred/assets_pbr/textures/items/stone_sword_s.ebp
new file mode 100644
index 0000000000000000000000000000000000000000..439f95352e5ff205fa74fe26c24f83b6210692c0
GIT binary patch
literal 88
zcmY#&bqZi)7GMxyU}Os5V({f+U~*t!2n`L*0^(Jnp&h-6`@%`I%;Vs2m%#?v6USFS~VVC
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/brdf_lut.bmp b/desktopRuntime/resources/assets/eagler/glsl/deferred/brdf_lut.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..54b6c70ddcc9b9f9f050345fbb8d67aedc25d094
GIT binary patch
literal 8192
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
Dm+SG|
literal 0
HcmV?d00001
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_noise3d.fsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_noise3d.fsh
new file mode 100644
index 00000000..d2624321
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_noise3d.fsh
@@ -0,0 +1,55 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+precision lowp int;
+precision highp float;
+precision highp sampler2D;
+
+in vec2 v_position2f;
+
+layout(location = 0) out float output1f;
+
+uniform sampler2D u_noiseTexture;
+
+uniform float u_textureSlice1f;
+uniform vec2 u_textureSize2f;
+uniform mat4x3 u_sampleOffsetMatrix4f;
+uniform vec3 u_cloudMovement3f;
+
+#define GET_CLOUDS(pos3f, accum, factor, tmp3f)\
+ tmp3f.z = floor(pos3f.z);\
+ tmp3f.xy = pos3f.xy * 0.015625 + (tmp3f.z * 0.265625);\
+ pos3f.x = textureLod(u_noiseTexture, tmp3f.xy, 0.0).x;\
+ pos3f.y = textureLod(u_noiseTexture, tmp3f.xy + 0.265625, 0.0).x;\
+ accum += mix(pos3f.x, pos3f.y, pos3f.z - tmp3f.z) * factor;
+
+void main() {
+ vec3 p = vec3(v_position2f.x, u_textureSlice1f, v_position2f.y) * vec3(u_textureSize2f.x, 1.0, u_textureSize2f.y);
+ p = u_sampleOffsetMatrix4f * vec4(p, 1.0);
+ vec3 sampleCoord3f = p + u_cloudMovement3f;
+ float noise = 0.0;
+
+ vec3 in3f = sampleCoord3f;
+ GET_CLOUDS(in3f, noise, 0.5, p)
+ in3f = sampleCoord3f * 2.0 + u_cloudMovement3f;
+ GET_CLOUDS(in3f, noise, 0.25, p)
+ in3f = sampleCoord3f * 7.0 - u_cloudMovement3f;
+ GET_CLOUDS(in3f, noise, 0.125, p)
+ in3f = (sampleCoord3f + u_cloudMovement3f) * 16.0;
+ GET_CLOUDS(in3f, noise, 0.0625, p)
+
+ output1f = noise;
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_sample.fsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_sample.fsh
new file mode 100644
index 00000000..b9430909
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_sample.fsh
@@ -0,0 +1,92 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+precision lowp int;
+precision highp float;
+precision highp sampler2D;
+precision highp sampler3D;
+
+in vec2 v_position2f;
+
+layout(location = 0) out vec4 output4f;
+
+uniform float u_rainStrength1f;
+uniform vec4 u_densityModifier4f;
+uniform float u_sampleStep1f;
+uniform float u_cloudTimer1f;
+uniform vec3 u_cloudOffset3f;
+uniform vec3 u_sunDirection3f;
+uniform vec3 u_sunColor3f;
+
+uniform sampler3D u_noiseTexture3D;
+uniform sampler2D u_skyIrradianceMap;
+#define GET_CLOUDS(pos3f, out1f)\
+ if(pos3f == clamp(pos3f, vec3(0.0), vec3(1.0))) {\
+ out1f = length(pos3f - clamp(pos3f, vec3(0.05), vec3(0.95)));\
+ out1f = smoothstep(0.0, 1.0, max(1.0 - out1f * 15.0, 0.0));\
+ out1f *= textureLod(u_noiseTexture3D, pos3f.xzy, 0.0).r;\
+ out1f += u_densityModifier4f.w;\
+ out1f = max(out1f * out1f * u_densityModifier4f.x + out1f * u_densityModifier4f.y + u_densityModifier4f.z, 0.0);\
+ }else out1f = 0.0;
+
+void main() {
+ vec2 latLong = v_position2f * 2.0 - 1.0;
+ float latLongLen = dot(latLong, latLong);
+ if(latLongLen > 1.025) {
+ output4f = vec4(0.0);
+ return;
+ }
+
+ float mag2 = 2.0 / (latLongLen + 1.0);
+ vec3 dir;
+ dir.y = mag2 - 1.0;
+ dir.xz = latLong * mag2;
+
+ vec3 samplePos = vec3(0.0, -4.5 + u_cloudOffset3f.y * 0.05, 0.0) + dir * u_sampleStep1f * 0.2;
+ samplePos = samplePos * vec3(0.05, 0.1, 0.05) + vec3(0.5, 0.0, 0.5);
+
+ float sample0, sample1;
+ GET_CLOUDS(samplePos, sample0)
+
+ if(sample0 < 0.002) {
+ output4f = vec4(0.0, 0.0, 0.0, 1.0);
+ return;
+ }
+
+ output4f.a = exp2(-sample0 * 5.0);
+
+ vec3 sunDirection = u_sunDirection3f * vec3(1.0, 2.0, 1.0) * 0.025;
+ float sunVisibility = sample0;
+
+ GET_CLOUDS((samplePos + sunDirection), sample1)
+ sunVisibility += sample1;
+ GET_CLOUDS((samplePos + sunDirection * 2.0), sample1)
+ sunVisibility += sample1;
+ GET_CLOUDS((samplePos + sunDirection * 3.0), sample1)
+ sunVisibility += sample1;
+ GET_CLOUDS((samplePos + sunDirection * 4.0), sample1)
+ sunVisibility += sample1;
+ GET_CLOUDS((samplePos + sunDirection * 5.0), sample1)
+ sunVisibility += sample1;
+
+ sunVisibility = exp2(-sunVisibility * 50.0);
+ sunVisibility *= 1.0 - exp2(-sample0 * 1.2);
+
+ vec3 sky = textureLod(u_skyIrradianceMap, v_position2f * vec2(1.0, 0.5) + vec2(0.0, 0.5), 0.0).rgb * 0.05;
+ float intergal = exp2(-7.33 * sample0) * -9.0 + 9.0;
+
+ output4f.rgb = (u_sunColor3f * sunVisibility + sky) * intergal;
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_shapes.bmp b/desktopRuntime/resources/assets/eagler/glsl/deferred/clouds_shapes.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..f4743c8dd933bbdbd4c37f80fdaf61a38f60c3af
GIT binary patch
literal 12288
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 0.0 ? ao.g : 1.0;
+ shadow = mix(shadow, shadow * ao.g, 0.9);
+#endif
+
+ lightmapCoords2f *= lightmapCoords2f;
+ vec3 irradianceMapSamplePos2f = normalVector3f;
+ irradianceMapSamplePos2f.xz /= abs(irradianceMapSamplePos2f.y) + 1.0;
+ float dst = 1.0 - dot(irradianceMapSamplePos2f.xz, irradianceMapSamplePos2f.xz);
+ dst *= dst;
+ irradianceMapSamplePos2f.xz *= 0.975;
+ vec3 skyLight = vec3(sqrt(0.01 + max(-u_sunDirection3f.y, 0.0)));
+ if(dst < 0.005) {
+ vec4 sample1 = textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz * vec2(0.5, 0.25) + vec2(0.5, 0.25), 0.0);
+ vec4 sample2 = textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz * vec2(0.5, -0.25) + vec2(0.5, 0.75), 0.0);
+ skyLight += mix(sample1.rgb, sample2.rgb, smoothstep(0.0, 1.0, irradianceMapSamplePos2f.y * -12.5 + 0.5)).rgb;
+ }else {
+ irradianceMapSamplePos2f.xz *= vec2(0.5, irradianceMapSamplePos2f.y > 0.0 ? 0.25 : -0.25);
+ irradianceMapSamplePos2f.xz += vec2(0.5, irradianceMapSamplePos2f.y > 0.0 ? 0.25 : 0.75);
+ skyLight += textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz, 0.0).rgb;
+ }
+
+ skyLight *= lightmapCoords2f.g * u_skyLightFactor1f;
+
+ vec3 blockLight = lightmapCoords2f.r * vec3(1.0, 0.5809, 0.2433) * 2.0;
+ float emissive = materialData4f.b == 1.0 ? 0.0 : materialData4f.b;
+ vec3 specular = vec3(0.0);
+
+#ifdef COMPILE_ENV_MAP_REFLECTIONS
+ float f = materialData4f.g < 0.06 ? 1.0 : 0.0;
+ f += materialData4f.r < 0.5 ? 1.0 : 0.0;
+ while((materialData4f.a >= 0.5 ? f : -1.0) == 0.0) {
+ vec4 worldPosition4f = vec4(v_position2f, depth, 1.0) * 2.0 - 1.0;
+ worldPosition4f = u_inverseProjMatrix4f * worldPosition4f;
+ worldPosition4f.xyz /= worldPosition4f.w;
+ float posDst = dot(worldPosition4f.xyz, worldPosition4f.xyz);
+ if(posDst > 25.0) {
+ break;
+ }
+ worldPosition4f = u_inverseViewMatrix4f * vec4(worldPosition4f.xyz, 0.0);
+ vec3 viewDir3f = normalize(worldPosition4f.xyz); // need confirmation this should be negative
+ vec3 reflectDir = reflect(viewDir3f, normalVector3f);
+ reflectDir.xz /= abs(reflectDir.y) + 1.0;
+ float dst = 1.0 - dot(reflectDir.xz, reflectDir.xz);
+ dst *= dst;
+ reflectDir.xz = reflectDir.xz * 0.975;
+ vec4 envMapSample4f;
+ if(dst < 0.005) {
+ vec4 sample1 = textureLod(u_environmentMap, reflectDir.xz * vec2(0.5, 0.25) + vec2(0.5, 0.25), 0.0);
+ vec4 sample2 = textureLod(u_environmentMap, reflectDir.xz * vec2(0.5, -0.25) + vec2(0.5, 0.75), 0.0);
+ envMapSample4f = vec4(mix(sample1.rgb, sample2.rgb, smoothstep(0.0, 1.0, reflectDir.y * -12.5 + 0.5)).rgb, min(sample1.a, sample2.a));
+ }else {
+ reflectDir.xz = reflectDir.xz * vec2(0.5, reflectDir.y > 0.0 ? 0.25 : -0.25);
+ reflectDir.xz += vec2(0.5, reflectDir.y > 0.0 ? 0.25 : 0.75);
+ envMapSample4f = textureLod(u_environmentMap, reflectDir.xz, 0.0);
+ }
+ if(envMapSample4f.a > 0.0) {
+ specular = eaglercraftIBL_Specular(diffuseColor3f.rgb, envMapSample4f.rgb, viewDir3f, normalVector3f, materialData4f.rgb);
+ specular *= 1.0 - sqrt(posDst) * 0.2;
+ }
+ break;
+ }
+#endif
+
+#ifdef COMPILE_SCREEN_SPACE_REFLECTIONS
+#ifndef COMPILE_ENV_MAP_REFLECTIONS
+ float f = materialData4f.g < 0.06 ? 1.0 : 0.0;
+ f += materialData4f.r < 0.5 ? 1.0 : 0.0;
+ if(f == 0.0) {
+#else
+ if((materialData4f.a < 0.5 ? f : -1.0) == 0.0) {
+#endif
+ vec4 ssrSample = textureLod(u_ssrReflectionTexture, min(v_position2f * u_halfResolutionPixelAlignment2f, 1.0), 0.0);
+ if(ssrSample.g > 0.0) {
+ ssrSample.g -= 0.005;
+ vec4 worldPosition4f = vec4(v_position2f, depth, 1.0) * 2.0 - 1.0;
+ worldPosition4f = u_inverseProjMatrix4f * worldPosition4f;
+ worldPosition4f = u_inverseViewMatrix4f * vec4(worldPosition4f.xyz / worldPosition4f.w, 0.0);
+ vec3 viewDir3f = normalize(worldPosition4f.xyz); // need confirmation this should be negative
+ specular = eaglercraftIBL_Specular(diffuseColor3f.rgb, ssrSample.rgb, viewDir3f, normalVector3f.xyz, materialData4f.rgb);
+ }
+ }
+#endif
+
+ output4f = vec4((diffuseColor3f.rgb * max(skyLight + blockLight, vec3(emissive * emissive * 20.0 + 0.075)) + specular * 8.0) * shadow, 1.0);
+
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core.vsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core.vsh
new file mode 100644
index 00000000..2c55f016
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core.vsh
@@ -0,0 +1,114 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+in vec3 a_position3f;
+
+#ifdef COMPILE_TEXTURE_ATTRIB
+in vec2 a_texture2f;
+out vec2 v_texture2f;
+uniform mat4 u_textureMat4f01;
+#endif
+
+#ifdef COMPILE_COLOR_ATTRIB
+in vec4 a_color4f;
+out vec4 v_color4f;
+#endif
+
+#ifdef COMPILE_NORMAL_ATTRIB
+in vec4 a_normal4f;
+out vec3 v_normal3f;
+out float v_block1f;
+#endif
+
+#ifdef COMPILE_STATE_WAVING_BLOCKS
+uniform mat4 u_modelMatrix4f;
+uniform mat4 u_viewMatrix4f;
+uniform vec3 u_wavingBlockOffset3f;
+uniform vec4 u_wavingBlockParam4f;
+#ifndef COMPILE_NORMAL_ATTRIB
+uniform float u_blockConstant1f;
+#endif
+#define DO_COMPILE_STATE_WAVING_BLOCKS
+#define FAKE_SIN(valueIn, valueOut)\
+ valueOut = abs(1.0 - fract(valueIn * 0.159155) * 2.0);\
+ valueOut = valueOut * valueOut * (3.0 - 2.0 * valueOut) * 2.0 - 1.0;
+#define LIB_INCLUDE_WAVING_BLOCKS_FUNCTION
+#endif
+
+#EAGLER INCLUDE (2) "eagler:glsl/deferred/lib/waving_blocks.glsl"
+
+#ifdef COMPILE_NORMAL_MATERIAL_TEXTURE
+out vec3 v_viewdir3f;
+#endif
+
+#ifdef COMPILE_LIGHTMAP_ATTRIB
+in vec2 a_lightmap2f;
+out vec2 v_lightmap2f;
+uniform mat4 u_textureMat4f02;
+#endif
+
+uniform mat4 u_modelviewMat4f;
+uniform mat4 u_projectionMat4f;
+
+#define TEX_MAT3(mat4In) mat3(mat4In[0].xyw,mat4In[1].xyw,mat4In[3].xyw)
+
+void main() {
+
+#ifdef COMPILE_TEXTURE_ATTRIB
+ vec3 v_textureTmp3f = TEX_MAT3(u_textureMat4f01) * vec3(a_texture2f, 1.0);
+ v_texture2f = v_textureTmp3f.xy / v_textureTmp3f.z;
+#endif
+
+#ifdef COMPILE_COLOR_ATTRIB
+ v_color4f = a_color4f;
+#endif
+
+#ifdef COMPILE_NORMAL_ATTRIB
+ v_normal3f = normalize(mat3(u_modelviewMat4f) * a_normal4f.xyz);
+ float blockId = v_block1f = floor((a_normal4f.w + 1.0) * 127.0 + 0.5);
+#endif
+
+#ifdef COMPILE_LIGHTMAP_ATTRIB
+ vec3 v_lightmapTmp3f = TEX_MAT3(u_textureMat4f02) * vec3(a_lightmap2f, 1.0);
+ v_lightmap2f = v_lightmapTmp3f.xy / v_lightmapTmp3f.z;
+#endif
+
+ vec4 pos = vec4(a_position3f, 1.0);
+
+#ifdef DO_COMPILE_STATE_WAVING_BLOCKS
+#ifndef COMPILE_NORMAL_ATTRIB
+ float blockId = u_blockConstant1f;
+#endif
+#ifdef COMPILE_LIGHTMAP_ATTRIB
+ if(v_lightmap2f.y > 0.33) {
+ COMPUTE_WAVING_BLOCKS(pos, min(v_lightmap2f.y * 3.0 - 1.0, 1.0), 24.0, blockId, u_modelMatrix4f, u_viewMatrix4f, u_modelviewMat4f, u_wavingBlockOffset3f, u_wavingBlockParam4f)
+ }else {
+ pos = u_modelviewMat4f * pos;
+ }
+#else
+ COMPUTE_WAVING_BLOCKS(pos, 1.0, 32.0, blockId, u_modelMatrix4f, u_viewMatrix4f, u_modelviewMat4f, u_wavingBlockOffset3f, u_wavingBlockParam4f)
+#endif
+#else
+ pos = u_modelviewMat4f * pos;
+#endif
+
+#ifdef COMPILE_NORMAL_MATERIAL_TEXTURE
+ v_viewdir3f = pos.xyz / pos.w;
+#endif
+
+ gl_Position = u_projectionMat4f * pos;
+
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core_gbuffer.fsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core_gbuffer.fsh
new file mode 100644
index 00000000..0eb91133
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_core_gbuffer.fsh
@@ -0,0 +1,166 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+#ifdef COMPILE_TEXTURE_ATTRIB
+in vec2 v_texture2f;
+#endif
+
+uniform vec4 u_color4f;
+
+#ifdef COMPILE_COLOR_ATTRIB
+in vec4 v_color4f;
+#endif
+
+#ifdef COMPILE_NORMAL_ATTRIB
+in vec3 v_normal3f;
+in float v_block1f;
+#else
+uniform vec3 u_uniformNormal3f;
+uniform float u_blockConstant1f;
+#endif
+
+uniform float u_useEnvMap1f;
+
+#ifdef COMPILE_LIGHTMAP_ATTRIB
+in vec2 v_lightmap2f;
+#endif
+
+#ifdef COMPILE_ENABLE_TEXTURE2D
+uniform sampler2D u_samplerTexture;
+#ifndef COMPILE_TEXTURE_ATTRIB
+uniform vec2 u_textureCoords01;
+#endif
+#endif
+
+#ifdef COMPILE_ENABLE_LIGHTMAP
+#ifndef COMPILE_LIGHTMAP_ATTRIB
+uniform vec2 u_textureCoords02;
+#endif
+#endif
+
+#ifdef COMPILE_ENABLE_ALPHA_TEST
+uniform float u_alphaTestRef1f;
+#endif
+
+#ifdef COMPILE_ENABLE_ANISOTROPIC_FIX
+uniform vec2 u_textureAnisotropicFix;
+#endif
+
+#ifdef COMPILE_BLEND_ADD
+uniform vec4 u_colorBlendSrc4f;
+uniform vec4 u_colorBlendAdd4f;
+#endif
+
+#ifdef COMPILE_NORMAL_MATERIAL_TEXTURE
+uniform sampler2D u_samplerNormalMaterial;
+in vec3 v_viewdir3f;
+#ifndef COMPILE_TEXTURE_ATTRIB
+uniform vec2 u_textureCoords01;
+#endif
+#else
+uniform vec3 u_materialConstants3f;
+#endif
+
+#ifdef COMPILE_NORMAL_MATERIAL_TEXTURE
+mat3 cotangent_frame(in vec3 N, in vec3 p, in vec2 uv) {
+ vec3 dp1 = dFdx(p);
+ vec3 dp2 = dFdy(p);
+ vec2 duv1 = dFdx(uv);
+ vec2 duv2 = dFdy(uv);
+ vec3 dp2perp = cross(dp2, N);
+ vec3 dp1perp = cross(N, dp1);
+ vec3 T = dp2perp * duv1.x + dp1perp * duv2.x;
+ vec3 B = dp2perp * duv1.y + dp1perp * duv2.y;
+ float invmax = inversesqrt(max(dot(T,T), dot(B,B)));
+ return mat3(T * invmax, B * invmax, N);
+}
+#endif
+
+layout(location = 0) out vec4 gbufferColor4f;
+layout(location = 1) out vec4 gbufferNormal4f;
+layout(location = 2) out vec4 gbufferMaterial4f;
+
+void main() {
+#ifdef COMPILE_COLOR_ATTRIB
+ vec4 color = v_color4f * u_color4f;
+#else
+ vec4 color = u_color4f;
+#endif
+
+ vec3 normal;
+#ifdef COMPILE_NORMAL_ATTRIB
+ normal = normalize(v_normal3f);
+#else
+ normal = u_uniformNormal3f;
+#endif
+
+#if defined(COMPILE_ENABLE_TEXTURE2D) || defined(COMPILE_NORMAL_MATERIAL_TEXTURE)
+ vec2 uv;
+#ifdef COMPILE_TEXTURE_ATTRIB
+#ifdef COMPILE_ENABLE_ANISOTROPIC_FIX
+ uv = floor(uv * u_textureAnisotropicFix) + 0.5;
+ uv /= u_textureAnisotropicFix;
+#else
+ uv = v_texture2f;
+#endif
+#else
+ uv = u_textureCoords01;
+#endif
+#ifdef COMPILE_ENABLE_TEXTURE2D
+ color *= texture(u_samplerTexture, uv);
+#endif
+#endif
+
+ vec2 lightmap = vec2(0.0, 1.0);
+
+#ifdef COMPILE_ENABLE_LIGHTMAP
+#ifdef COMPILE_LIGHTMAP_ATTRIB
+ lightmap = v_lightmap2f;
+#else
+ lightmap = u_textureCoords02;
+#endif
+#endif
+
+#ifdef COMPILE_BLEND_ADD
+ color = color * u_colorBlendSrc4f + u_colorBlendAdd4f;
+#endif
+
+#ifdef COMPILE_ENABLE_ALPHA_TEST
+ if(color.a < u_alphaTestRef1f) discard;
+#endif
+
+#ifdef COMPILE_NORMAL_MATERIAL_TEXTURE
+ vec2 uv2 = vec2(1.0, 0.5) * uv;
+ vec2 normal2 = texture(u_samplerNormalMaterial, uv2).xy;
+ mat3 cf;
+ if(normal2.x + normal2.y > 0.0) {
+ normal2 *= 2.0;
+ normal2 -= 1.0;
+ cf = cotangent_frame(normal, normalize(v_viewdir3f), uv);
+ normal = cf * vec3(normal2, sqrt(1.0 - dot(normal2, normal2)));
+ }
+ uv2.y += 0.5;
+ vec3 material = texture(u_samplerNormalMaterial, uv2).rgb;
+#else
+ vec3 material = u_materialConstants3f;
+#endif
+
+ gbufferColor4f.rgb = color.rgb;
+ gbufferColor4f.a = lightmap.r;
+ gbufferNormal4f.rgb = normal * 0.5 + 0.5;
+ gbufferNormal4f.a = lightmap.g;
+ gbufferMaterial4f = vec4(material.rgb, u_useEnvMap1f);
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_fog.fsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_fog.fsh
new file mode 100644
index 00000000..5de9250b
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_fog.fsh
@@ -0,0 +1,101 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+precision lowp int;
+precision highp float;
+precision highp sampler2D;
+
+layout(location = 0) out vec4 output4f;
+
+in vec2 v_position2f;
+
+uniform sampler2D u_gbufferDepthTexture;
+uniform sampler2D u_gbufferNormalTexture;
+uniform sampler2D u_fogDepthTexture;
+
+#ifdef COMPILE_FOG_LIGHT_SHAFTS
+uniform sampler2D u_lightShaftsTexture;
+#endif
+
+#ifdef COMPILE_FOG_ATMOSPHERE
+uniform sampler2D u_environmentMap;
+uniform vec3 u_sunColorAdd3f;
+#endif
+
+uniform mat4 u_inverseViewProjMatrix4f;
+
+#ifdef COMPILE_FOG_LINEAR
+uniform vec2 u_linearFogParam2f;
+#else
+uniform float u_expFogDensity1f;
+#endif
+
+uniform vec4 u_fogColorLight4f;
+uniform vec4 u_fogColorDark4f;
+
+void main() {
+ vec4 fragPos4f = vec4(v_position2f, textureLod(u_fogDepthTexture, v_position2f, 0.0).r, 1.0);
+
+#ifdef COMPILE_FOG_ATMOSPHERE
+ if(fragPos4f.z <= 0.0000001) {
+ discard;
+ }
+#endif
+
+ float solidDepth = textureLod(u_gbufferDepthTexture, v_position2f, 0.0).r;
+ if(solidDepth != fragPos4f.z) {
+ discard;
+ }
+
+ fragPos4f.xyz *= 2.0;
+ fragPos4f.xyz -= 1.0;
+
+ fragPos4f = u_inverseViewProjMatrix4f * fragPos4f;
+ fragPos4f.xyz /= fragPos4f.w;
+ fragPos4f.w = 1.0;
+
+ float l = sqrt(dot(fragPos4f.xyz, fragPos4f.xyz));
+#ifdef COMPILE_FOG_LINEAR
+ float f = (l - u_linearFogParam2f.x) / (u_linearFogParam2f.y - u_linearFogParam2f.x);
+#else
+ float f = 1.0 - exp(-u_expFogDensity1f * l);
+#endif
+ float f2 = textureLod(u_gbufferNormalTexture, v_position2f, 0.0).a;
+ vec4 fogColor4f = mix(u_fogColorDark4f, u_fogColorLight4f, f2 * f2);
+ f = clamp(f, 0.0, 1.0) * fogColor4f.a;
+
+#ifdef COMPILE_FOG_ATMOSPHERE
+ fragPos4f.xyz /= -l;
+ fragPos4f.xz /= abs(fragPos4f.y) + 1.0;
+ fragPos4f.xz *= 0.75;
+
+ vec3 envMapSample3f;
+
+ fragPos4f.xz *= vec2(-0.5, -0.25);
+ fragPos4f.xz += vec2(0.5, 0.25);
+ envMapSample3f = textureLod(u_environmentMap, fragPos4f.xz, 0.0).rgb + u_sunColorAdd3f;
+
+#ifdef COMPILE_FOG_LIGHT_SHAFTS
+ envMapSample3f *= pow(textureLod(u_lightShaftsTexture, v_position2f, 0.0).r * 0.9 + 0.1, 2.25);
+ f = f * 0.9 + 0.1;
+#endif
+
+ output4f = vec4(envMapSample3f * fogColor4f.rgb, f);
+#else
+ output4f = vec4(fogColor4f.rgb, f);
+#endif
+
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_local.vsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_local.vsh
new file mode 100644
index 00000000..5eb264a0
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_local.vsh
@@ -0,0 +1,28 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+precision lowp int;
+precision highp float;
+precision highp sampler2D;
+
+layout(location = 0) in vec2 a_position2f;
+
+out vec2 v_position2f;
+
+void main() {
+ v_position2f = a_position2f * 0.5 + 0.5;
+ gl_Position = vec4(a_position2f, 0.0, 1.0);
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.fsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.fsh
new file mode 100644
index 00000000..bcebefbd
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.fsh
@@ -0,0 +1,59 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+#if !defined(COMPILE_ENABLE_ALPHA_TEST) && !defined(COMPILE_COLORED_SHADOWS)
+#undef COMPILE_ENABLE_TEXTURE2D
+#endif
+
+#ifdef COMPILE_COLORED_SHADOWS
+layout(location = 0) out vec4 output4f;
+uniform vec4 u_color4f;
+#endif
+
+#ifdef COMPILE_ENABLE_TEXTURE2D
+uniform sampler2D u_samplerTexture;
+#ifdef COMPILE_TEXTURE_ATTRIB
+in vec2 v_texture2f;
+#else
+uniform vec2 u_textureCoords01;
+#endif
+#ifdef COMPILE_ENABLE_ALPHA_TEST
+uniform float u_alphaTestRef1f;
+#endif
+#endif
+
+void main() {
+#ifdef COMPILE_COLORED_SHADOWS
+ vec4 color = u_color4f;
+#else
+ vec4 color = vec4(1.0);
+#endif
+
+#ifdef COMPILE_ENABLE_TEXTURE2D
+#ifdef COMPILE_TEXTURE_ATTRIB
+ color *= texture(u_samplerTexture, v_texture2f);
+#else
+ color *= texture(u_samplerTexture, u_textureCoords01);
+#endif
+#ifdef COMPILE_ENABLE_ALPHA_TEST
+ if(color.a < u_alphaTestRef1f) discard;
+#endif
+#endif
+
+#ifdef COMPILE_COLORED_SHADOWS
+ output4f = vec4(mix(vec3(1.0), color.rgb, color.a), color.a);
+#endif
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.vsh b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.vsh
new file mode 100644
index 00000000..e44f3f48
--- /dev/null
+++ b/desktopRuntime/resources/assets/eagler/glsl/deferred/deferred_shadow.vsh
@@ -0,0 +1,101 @@
+#line 2
+
+/*
+ * Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
+ *
+ * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
+ * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
+ * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
+ * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
+ *
+ * NOT FOR COMMERCIAL OR MALICIOUS USE
+ *
+ * (please read the 'LICENSE' file this repo's root directory for more info)
+ *
+ */
+
+in vec3 a_position3f;
+
+#if defined(COMPILE_ENABLE_ALPHA_TEST) && defined(COMPILE_ENABLE_TEXTURE2D)
+#define DO_SHADOW_ALPHA_TEST
+#endif
+
+#ifdef DO_SHADOW_ALPHA_TEST
+#ifdef COMPILE_TEXTURE_ATTRIB
+in vec2 a_texture2f;
+out vec2 v_texture2f;
+uniform mat4 u_textureMat4f01;
+#endif
+#endif
+
+uniform mat4 u_modelviewProjMat4f;
+
+#ifdef COMPILE_STATE_WAVING_BLOCKS
+#ifdef COMPILE_NORMAL_ATTRIB
+in vec4 a_normal4f;
+#else
+uniform float u_blockConstant1f;
+#endif
+#ifdef COMPILE_ENABLE_LIGHTMAP
+#ifdef COMPILE_LIGHTMAP_ATTRIB
+in vec2 a_lightmap2f;
+uniform mat4 u_textureMat4f02;
+#else
+uniform vec2 u_textureCoords02;
+#endif
+#endif
+uniform mat4 u_modelMatrix4f;
+uniform mat4 u_viewMatrix4f;
+uniform vec3 u_wavingBlockOffset3f;
+uniform vec4 u_wavingBlockParam4f;
+#define DO_COMPILE_STATE_WAVING_BLOCKS
+#define FAKE_SIN(valueIn, valueOut)\
+ valueOut = abs(1.0 - fract(valueIn * 0.159155) * 2.0);\
+ valueOut = valueOut * valueOut * (3.0 - 2.0 * valueOut) * 2.0 - 1.0;
+#define LIB_INCLUDE_WAVING_BLOCKS_FUNCTION
+#endif
+
+#EAGLER INCLUDE (2) "eagler:glsl/deferred/lib/waving_blocks.glsl"
+
+#define TEX_MAT3(mat4In) mat3(mat4In[0].xyw,mat4In[1].xyw,mat4In[3].xyw)
+
+void main() {
+#ifdef DO_SHADOW_ALPHA_TEST
+#ifdef COMPILE_TEXTURE_ATTRIB
+ vec3 v_textureTmp3f = TEX_MAT3(u_textureMat4f01) * vec3(a_texture2f, 1.0);
+ v_texture2f = v_textureTmp3f.xy / v_textureTmp3f.z;
+#endif
+#endif
+#ifdef DO_COMPILE_STATE_WAVING_BLOCKS
+ vec4 pos = vec4(a_position3f, 1.0);
+#ifdef COMPILE_NORMAL_ATTRIB
+ float blockId = floor((a_normal4f.w + 1.0) * 127.0 + 0.5);
+#else
+ float blockId = u_blockConstant1f;
+#endif
+#ifdef COMPILE_ENABLE_LIGHTMAP
+#ifdef COMPILE_LIGHTMAP_ATTRIB
+ mat4x2 texMat4x2 = mat4x2(
+ u_textureMat4f02[0].yw,
+ u_textureMat4f02[1].yw,
+ u_textureMat4f02[2].yw,
+ u_textureMat4f02[3].yw
+ );
+ vec2 v_lightmapTmp2f = texMat4x2 * vec4(a_lightmap2f, 0.0, 1.0);
+ v_lightmapTmp2f.x = v_lightmapTmp2f.x / v_lightmapTmp2f.y;
+#else
+ vec2 v_lightmapTmp2f = vec2(u_textureCoords02.y, 0.0);
+#endif
+ if(v_lightmapTmp2f.x > 0.33) {
+ COMPUTE_WAVING_BLOCKS(pos, min(v_lightmapTmp2f.x * 3.0 - 1.0, 1.0), 24.0, blockId, u_modelMatrix4f, u_viewMatrix4f, u_modelviewProjMat4f, u_wavingBlockOffset3f, u_wavingBlockParam4f)
+ }else {
+ pos = u_modelviewProjMat4f * pos;
+ }
+#else
+ COMPUTE_WAVING_BLOCKS(pos, 1.0, 32.0, blockId, u_modelMatrix4f, u_viewMatrix4f, u_modelviewProjMat4f, u_wavingBlockOffset3f, u_wavingBlockParam4f)
+#endif
+ gl_Position = pos;
+#else
+ gl_Position = u_modelviewProjMat4f * vec4(a_position3f, 1.0);
+#endif
+}
diff --git a/desktopRuntime/resources/assets/eagler/glsl/deferred/dither16.bmp b/desktopRuntime/resources/assets/eagler/glsl/deferred/dither16.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..57813a0eac518617529b20819770b2de50e9e4b2
GIT binary patch
literal 256
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