From 285f5a025975207f9251165e82dadb50d4744991 Mon Sep 17 00:00:00 2001 From: sapier Date: Sun, 15 Jan 2012 20:09:55 +0100 Subject: added lua command get_nodes_inside_radius --- src/environment.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/environment.cpp') diff --git a/src/environment.cpp b/src/environment.cpp index 3a294086c..a3d0950f0 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -765,6 +765,21 @@ void ServerEnvironment::activateBlock(MapBlock *block, u32 additional_dtime) abmhandler.apply(block); } +core::list ServerEnvironment::getNodesInsideRadius(v3s16 pos, float radius) +{ + core::list nodes; + for (int i = pos.X - radius; i < pos.X + radius; i ++) + for (int j = pos.Y - radius; j < pos.Y + radius; j ++) + for (int k = pos.Z - radius; k < pos.Z + radius; k ++) { + v3s16 current_pos = v3s16(i,j,k); + if (current_pos.getDistanceFrom(pos) < radius) { + MapNode n = m_map->getNodeNoEx(current_pos); + nodes.push_back(n); + } + } + return nodes; +} + void ServerEnvironment::addActiveBlockModifier(ActiveBlockModifier *abm) { m_abms.push_back(ABMWithState(abm)); -- cgit v1.2.3