mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-13 08:35:20 +02:00
Add core.find_nodes_with_meta() script API
This commit is contained in:
@@ -334,6 +334,22 @@ int ModApiEnvMod::l_add_node_level(lua_State *L)
|
||||
return 1;
|
||||
}
|
||||
|
||||
// find_nodes_with_meta(pos1, pos2)
|
||||
int ModApiEnvMod::l_find_nodes_with_meta(lua_State *L)
|
||||
{
|
||||
GET_ENV_PTR;
|
||||
|
||||
std::vector<v3s16> positions = env->getMap().findNodesWithMetadata(
|
||||
check_v3s16(L, 1), check_v3s16(L, 2));
|
||||
|
||||
lua_newtable(L);
|
||||
for (size_t i = 0; i != positions.size(); i++) {
|
||||
push_v3s16(L, positions[i]);
|
||||
lua_rawseti(L, -2, i + 1);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// get_meta(pos)
|
||||
int ModApiEnvMod::l_get_meta(lua_State *L)
|
||||
@@ -912,6 +928,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top)
|
||||
API_FCT(set_node_level);
|
||||
API_FCT(add_node_level);
|
||||
API_FCT(add_entity);
|
||||
API_FCT(find_nodes_with_meta);
|
||||
API_FCT(get_meta);
|
||||
API_FCT(get_node_timer);
|
||||
API_FCT(get_player_by_name);
|
||||
|
@@ -64,7 +64,6 @@ private:
|
||||
// pos = {x=num, y=num, z=num}
|
||||
static int l_punch_node(lua_State *L);
|
||||
|
||||
|
||||
// get_node_max_level(pos)
|
||||
// pos = {x=num, y=num, z=num}
|
||||
static int l_get_node_max_level(lua_State *L);
|
||||
@@ -81,6 +80,9 @@ private:
|
||||
// pos = {x=num, y=num, z=num}
|
||||
static int l_add_node_level(lua_State *L);
|
||||
|
||||
// find_nodes_with_meta(pos1, pos2)
|
||||
static int l_find_nodes_with_meta(lua_State *L);
|
||||
|
||||
// get_meta(pos)
|
||||
static int l_get_meta(lua_State *L);
|
||||
|
||||
|
Reference in New Issue
Block a user