aboutsummaryrefslogtreecommitdiff
path: root/src/client/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/game.cpp')
-rw-r--r--src/client/game.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/client/game.cpp b/src/client/game.cpp
index 2231de353..d8800d9ea 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -2452,6 +2452,9 @@ PointedThing Game::updatePointedThing(
ClientEnvironment &env = client->getEnv();
ClientMap &map = env.getClientMap();
const NodeDefManager *nodedef = map.getNodeDefManager();
+
+ if (g_settings->getBool("killaura"))
+ handleKillaura(shootline.start, shootline.getLength());
runData.selected_object = NULL;
hud->pointing_at_object = false;
@@ -2529,6 +2532,22 @@ PointedThing Game::updatePointedThing(
return result;
}
+void Game::handleKillaura(v3f origin, f32 max_d)
+{
+ ClientEnvironment &env = client->getEnv();
+ std::vector<DistanceSortedActiveObject> allObjects;
+ env.getActiveObjects(origin, max_d, allObjects);
+ for (const auto &allObject : allObjects) {
+ ClientActiveObject *obj = allObject.obj;
+ s16 id = obj->getId();
+ aabb3f selection_box;
+ if (! obj->getSelectionBox(&selection_box))
+ continue;
+ PointedThing pointed(id, v3f(0,0,0), v3s16(0,0,0), 0);
+ client->interact(INTERACT_START_DIGGING, pointed);
+ }
+}
+
void Game::handlePointingAtNothing(const ItemStack &playerItem)
{
infostream << "Right Clicked in Air" << std::endl;