forked from Mirrorlandia_minetest/minetest
add EnvRef:get_node_or_nil()
This commit is contained in:
parent
7d37913ea4
commit
f23616acaf
@ -2308,6 +2308,29 @@ private:
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EnvRef:get_node_or_nil(pos)
|
||||||
|
// pos = {x=num, y=num, z=num}
|
||||||
|
static int l_get_node_or_nil(lua_State *L)
|
||||||
|
{
|
||||||
|
//infostream<<"EnvRef::l_get_node()"<<std::endl;
|
||||||
|
EnvRef *o = checkobject(L, 1);
|
||||||
|
ServerEnvironment *env = o->m_env;
|
||||||
|
if(env == NULL) return 0;
|
||||||
|
// pos
|
||||||
|
v3s16 pos = readpos(L, 2);
|
||||||
|
// Do it
|
||||||
|
try{
|
||||||
|
MapNode n = env->getMap().getNode(pos);
|
||||||
|
// Return node
|
||||||
|
pushnode(L, n, env->getGameDef()->ndef());
|
||||||
|
return 1;
|
||||||
|
} catch(InvalidPositionException &e)
|
||||||
|
{
|
||||||
|
lua_pushnil(L);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// EnvRef:add_luaentity(pos, entityname)
|
// EnvRef:add_luaentity(pos, entityname)
|
||||||
// pos = {x=num, y=num, z=num}
|
// pos = {x=num, y=num, z=num}
|
||||||
static int l_add_luaentity(lua_State *L)
|
static int l_add_luaentity(lua_State *L)
|
||||||
@ -2476,6 +2499,7 @@ const luaL_reg EnvRef::methods[] = {
|
|||||||
method(EnvRef, add_node),
|
method(EnvRef, add_node),
|
||||||
method(EnvRef, remove_node),
|
method(EnvRef, remove_node),
|
||||||
method(EnvRef, get_node),
|
method(EnvRef, get_node),
|
||||||
|
method(EnvRef, get_node_or_nil),
|
||||||
method(EnvRef, add_luaentity),
|
method(EnvRef, add_luaentity),
|
||||||
method(EnvRef, add_item),
|
method(EnvRef, add_item),
|
||||||
method(EnvRef, add_rat),
|
method(EnvRef, add_rat),
|
||||||
|
Loading…
Reference in New Issue
Block a user