mirror of
https://github.com/Merlin1809/Eclipse-Shader.git
synced 2026-10-10 04:53:07 +08:00
Fix boat detection for player waves, fix dropped blocks interacting with floodfill
This commit is contained in:
@@ -439,7 +439,7 @@ void main() {
|
||||
uint blockTop = 0;
|
||||
#endif
|
||||
|
||||
if(blockTop == 12 || blockTop > 2400) {
|
||||
if(blockTop == 12 || blockTop > 4000) {
|
||||
vgrassSideCheck = vec4(2.0);
|
||||
}
|
||||
#if REPLACE_SHORT_GRASS < 2
|
||||
@@ -449,25 +449,25 @@ void main() {
|
||||
uint blockSouth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y + 0.6, LPVpos.z + 1.0));
|
||||
uint blockNorth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y + 0.6, LPVpos.z - 1.0));
|
||||
|
||||
if(blockEast > 2400 || blockEast == 12 || (blockEast > 80 && blockEast < 86) || blockEast == 503 || (blockEast > 406 && blockEast < 440)) {vgrassSideCheck.x = 1.0;} else {
|
||||
if(blockEast > 4000 || blockEast == 12 || (blockEast > 80 && blockEast < 86) || blockEast == 503 || (blockEast > 406 && blockEast < 440)) {vgrassSideCheck.x = 1.0;} else {
|
||||
#ifdef GRASS_DETECT_FALLOFF
|
||||
blockEast = GetVoxelBlock(ivec3(LPVpos.x + 1.0, LPVpos.y, LPVpos.z));
|
||||
if(blockEast != 85) {vgrassSideCheck.x = -1.0;}
|
||||
#endif
|
||||
}
|
||||
if(blockWest > 2400 || blockWest == 12 || (blockWest > 80 && blockWest < 86) || blockWest == 503 || (blockWest > 406 && blockWest < 440)) {vgrassSideCheck.y = 1.0;} else {
|
||||
if(blockWest > 4000 || blockWest == 12 || (blockWest > 80 && blockWest < 86) || blockWest == 503 || (blockWest > 406 && blockWest < 440)) {vgrassSideCheck.y = 1.0;} else {
|
||||
#ifdef GRASS_DETECT_FALLOFF
|
||||
blockWest = GetVoxelBlock(ivec3(LPVpos.x - 1.0, LPVpos.y, LPVpos.z));
|
||||
if(blockWest != 85) {vgrassSideCheck.y = -1.0;}
|
||||
#endif
|
||||
}
|
||||
if(blockSouth > 2400 || blockSouth == 12 || (blockSouth > 80 && blockSouth < 86) || blockSouth == 503 || (blockSouth > 406 && blockSouth < 440)) {vgrassSideCheck.z = 1.0;} else {
|
||||
if(blockSouth > 4000 || blockSouth == 12 || (blockSouth > 80 && blockSouth < 86) || blockSouth == 503 || (blockSouth > 406 && blockSouth < 440)) {vgrassSideCheck.z = 1.0;} else {
|
||||
#ifdef GRASS_DETECT_FALLOFF
|
||||
blockSouth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z+ 1.0));
|
||||
if(blockSouth != 85) {vgrassSideCheck.z = -1.0;}
|
||||
#endif
|
||||
}
|
||||
if(blockNorth > 2400 || blockNorth == 12 || (blockNorth > 80 && blockNorth < 86) || blockNorth == 503 || (blockNorth > 406 && blockNorth < 440)) {vgrassSideCheck.w = 1.0;} else {
|
||||
if(blockNorth > 4000 || blockNorth == 12 || (blockNorth > 80 && blockNorth < 86) || blockNorth == 503 || (blockNorth > 406 && blockNorth < 440)) {vgrassSideCheck.w = 1.0;} else {
|
||||
#ifdef GRASS_DETECT_FALLOFF
|
||||
blockNorth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z - 1.0));
|
||||
if(blockNorth != 85) {vgrassSideCheck.w = -1.0;}
|
||||
|
||||
@@ -18,7 +18,7 @@ uint GetVoxelBlock(const in ivec3 voxelPos) {
|
||||
if (clamp(voxelPos, ivec3(0), ivec3(VoxelSize3-1u)) != voxelPos)
|
||||
return BLOCK_EMPTY;
|
||||
|
||||
return imageLoad(imgVoxelMask, voxelPos).r;
|
||||
return imageLoad(imgVoxelMask, voxelPos).r % 2000u;
|
||||
}
|
||||
|
||||
#include "/lib/SSBOs.glsl"
|
||||
|
||||
@@ -55,7 +55,7 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in;
|
||||
|
||||
uint blockId = imageLoad(imgVoxelMask, voxelPos).r;
|
||||
|
||||
blockId = blockId % 1200;
|
||||
blockId = blockId % 2000u;
|
||||
|
||||
return blockId;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit
|
||||
prefix.SHADER_VERSION_LABEL = V
|
||||
value.SHADER_VERSION_LABEL.482 = 4.1.1
|
||||
value.SHADER_VERSION_LABEL.482 = 4.1.2
|
||||
|
||||
# if you're here to translate, this is not a joke, these do what they say
|
||||
profile.POTATO=§4Potato
|
||||
|
||||
@@ -1029,6 +1029,9 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
|
||||
#ifdef LPV_ENABLED
|
||||
#endif
|
||||
|
||||
#ifdef LPV_ENTITY_LIGHTS
|
||||
#endif
|
||||
|
||||
#if defined CUSTOM_MOON_ROTATION || defined IS_LPV_ENABLED
|
||||
const float voxelDistance = 64.0;
|
||||
#endif
|
||||
|
||||
@@ -57,12 +57,17 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
|
||||
if (blockEntityId > 0 && blockEntityId < 500)
|
||||
voxelId = uint(blockEntityId);
|
||||
}
|
||||
else if (currentRenderedItemId > 0 && currentRenderedItemId < 1200) {
|
||||
else if (currentRenderedItemId > 100 && currentRenderedItemId < 300) {
|
||||
if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) {
|
||||
uint oldID = imageLoad(imgVoxelMask, voxelPos).r;
|
||||
voxelId = uint(currentRenderedItemId);
|
||||
|
||||
// offset by a random number that came into my head to make entities and items not interact with grass
|
||||
voxelId = uint(currentRenderedItemId)+1200u;
|
||||
if(oldID == 12u) voxelId += 1200u;
|
||||
voxelId += 2000u;
|
||||
|
||||
#if defined SHADER_GRASS && REPLACE_SHORT_GRASS < 2
|
||||
uint oldID = imageLoad(imgVoxelMask, voxelPos).r;
|
||||
if(oldID == 12u) voxelId += 2000u;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -74,7 +79,7 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
|
||||
case ENTITY_MAGMA_CUBE:
|
||||
case ENTITY_SPECTRAL_ARROW:
|
||||
case ENTITY_TNT:
|
||||
voxelId = uint(entityId)+1200u;
|
||||
voxelId = uint(entityId)+2000u;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -88,7 +93,7 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
|
||||
switch (entityId) {
|
||||
case ENTITY_BOAT:
|
||||
case ENTITY_SMALLSHIPS:
|
||||
voxelId = uint(entityId)+1200u;
|
||||
voxelId = uint(entityId)+2000u;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user