improve block placement checks

This commit is contained in:
p2r3
2025-08-23 02:06:01 +03:00
parent eb57e545f6
commit d9f6511af1
2 changed files with 18 additions and 5 deletions

View File

@@ -523,8 +523,13 @@ int cs_useItemOn (int client_fd) {
// check if the block's placement conditions are met
if (
!(x == player->x && (y == player->y || y == player->y + 1) && z == player->z) &&
(getBlockAt(x, y, z) == B_air) &&
!( // player is not in the way
!isPassableBlock(block) &&
x == player->x &&
(y == player->y || y == player->y + 1) &&
z == player->z
) &&
isReplaceableBlock(getBlockAt(x, y, z)) &&
(!isColumnBlock(block) || getBlockAt(x, y - 1, z) != B_air)
) {
// decrease item amount in selected slot