Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fix object interaction distance not being checked (#10547)
- Loading branch information
Showing
with
9 additions
and
8 deletions.
-
+2
−2
doc/lua_api.txt
-
+7
−6
src/network/serverpackethandler.cpp
|
@@ -6189,9 +6189,9 @@ object you are working with still exists. |
|
|
* `bone`: string |
|
|
* `position`: `{x=num, y=num, z=num}` (relative) |
|
|
* `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees |
|
|
* `forced_visible`: Boolean to control whether the attached entity |
|
|
* `forced_visible`: Boolean to control whether the attached entity |
|
|
should appear in first person. |
|
|
* `get_attach()`: returns parent, bone, position, rotation, forced_visible, |
|
|
* `get_attach()`: returns parent, bone, position, rotation, forced_visible, |
|
|
or nil if it isn't attached. |
|
|
* `get_children()`: returns a list of ObjectRefs that are attached to the |
|
|
object. |
|
|
|
@@ -1050,12 +1050,13 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) |
|
|
} |
|
|
float d = playersao->getEyePosition().getDistanceFrom(target_pos); |
|
|
|
|
|
if (!checkInteractDistance(player, d, pointed.dump()) |
|
|
&& pointed.type == POINTEDTHING_NODE) { |
|
|
// Re-send block to revert change on client-side |
|
|
RemoteClient *client = getClient(peer_id); |
|
|
v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface); |
|
|
client->SetBlockNotSent(blockpos); |
|
|
if (!checkInteractDistance(player, d, pointed.dump())) { |
|
|
if (pointed.type == POINTEDTHING_NODE) { |
|
|
// Re-send block to revert change on client-side |
|
|
RemoteClient *client = getClient(peer_id); |
|
|
v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface); |
|
|
client->SetBlockNotSent(blockpos); |
|
|
} |
|
|
return; |
|
|
} |
|
|
} |
|
|