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;
|
uint blockTop = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(blockTop == 12 || blockTop > 2400) {
|
if(blockTop == 12 || blockTop > 4000) {
|
||||||
vgrassSideCheck = vec4(2.0);
|
vgrassSideCheck = vec4(2.0);
|
||||||
}
|
}
|
||||||
#if REPLACE_SHORT_GRASS < 2
|
#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 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));
|
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
|
#ifdef GRASS_DETECT_FALLOFF
|
||||||
blockEast = GetVoxelBlock(ivec3(LPVpos.x + 1.0, LPVpos.y, LPVpos.z));
|
blockEast = GetVoxelBlock(ivec3(LPVpos.x + 1.0, LPVpos.y, LPVpos.z));
|
||||||
if(blockEast != 85) {vgrassSideCheck.x = -1.0;}
|
if(blockEast != 85) {vgrassSideCheck.x = -1.0;}
|
||||||
#endif
|
#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
|
#ifdef GRASS_DETECT_FALLOFF
|
||||||
blockWest = GetVoxelBlock(ivec3(LPVpos.x - 1.0, LPVpos.y, LPVpos.z));
|
blockWest = GetVoxelBlock(ivec3(LPVpos.x - 1.0, LPVpos.y, LPVpos.z));
|
||||||
if(blockWest != 85) {vgrassSideCheck.y = -1.0;}
|
if(blockWest != 85) {vgrassSideCheck.y = -1.0;}
|
||||||
#endif
|
#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
|
#ifdef GRASS_DETECT_FALLOFF
|
||||||
blockSouth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z+ 1.0));
|
blockSouth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z+ 1.0));
|
||||||
if(blockSouth != 85) {vgrassSideCheck.z = -1.0;}
|
if(blockSouth != 85) {vgrassSideCheck.z = -1.0;}
|
||||||
#endif
|
#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
|
#ifdef GRASS_DETECT_FALLOFF
|
||||||
blockNorth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z - 1.0));
|
blockNorth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z - 1.0));
|
||||||
if(blockNorth != 85) {vgrassSideCheck.w = -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)
|
if (clamp(voxelPos, ivec3(0), ivec3(VoxelSize3-1u)) != voxelPos)
|
||||||
return BLOCK_EMPTY;
|
return BLOCK_EMPTY;
|
||||||
|
|
||||||
return imageLoad(imgVoxelMask, voxelPos).r;
|
return imageLoad(imgVoxelMask, voxelPos).r % 2000u;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "/lib/SSBOs.glsl"
|
#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;
|
uint blockId = imageLoad(imgVoxelMask, voxelPos).r;
|
||||||
|
|
||||||
blockId = blockId % 1200;
|
blockId = blockId % 2000u;
|
||||||
|
|
||||||
return blockId;
|
return blockId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit
|
option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit
|
||||||
prefix.SHADER_VERSION_LABEL = V
|
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
|
# if you're here to translate, this is not a joke, these do what they say
|
||||||
profile.POTATO=§4Potato
|
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
|
#ifdef LPV_ENABLED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef LPV_ENTITY_LIGHTS
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined CUSTOM_MOON_ROTATION || defined IS_LPV_ENABLED
|
#if defined CUSTOM_MOON_ROTATION || defined IS_LPV_ENABLED
|
||||||
const float voxelDistance = 64.0;
|
const float voxelDistance = 64.0;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -57,12 +57,17 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
|
|||||||
if (blockEntityId > 0 && blockEntityId < 500)
|
if (blockEntityId > 0 && blockEntityId < 500)
|
||||||
voxelId = uint(blockEntityId);
|
voxelId = uint(blockEntityId);
|
||||||
}
|
}
|
||||||
else if (currentRenderedItemId > 0 && currentRenderedItemId < 1200) {
|
else if (currentRenderedItemId > 100 && currentRenderedItemId < 300) {
|
||||||
if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) {
|
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
|
// offset by a random number that came into my head to make entities and items not interact with grass
|
||||||
voxelId = uint(currentRenderedItemId)+1200u;
|
voxelId += 2000u;
|
||||||
if(oldID == 12u) voxelId += 1200u;
|
|
||||||
|
#if defined SHADER_GRASS && REPLACE_SHORT_GRASS < 2
|
||||||
|
uint oldID = imageLoad(imgVoxelMask, voxelPos).r;
|
||||||
|
if(oldID == 12u) voxelId += 2000u;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -74,7 +79,7 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
|
|||||||
case ENTITY_MAGMA_CUBE:
|
case ENTITY_MAGMA_CUBE:
|
||||||
case ENTITY_SPECTRAL_ARROW:
|
case ENTITY_SPECTRAL_ARROW:
|
||||||
case ENTITY_TNT:
|
case ENTITY_TNT:
|
||||||
voxelId = uint(entityId)+1200u;
|
voxelId = uint(entityId)+2000u;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -88,7 +93,7 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
|
|||||||
switch (entityId) {
|
switch (entityId) {
|
||||||
case ENTITY_BOAT:
|
case ENTITY_BOAT:
|
||||||
case ENTITY_SMALLSHIPS:
|
case ENTITY_SMALLSHIPS:
|
||||||
voxelId = uint(entityId)+1200u;
|
voxelId = uint(entityId)+2000u;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user