mirror of
https://github.com/moparisthebest/minetest
synced 2024-11-16 14:25:19 -05:00
Add EnvRef:get_node_light(pos, timeofday)
This commit is contained in:
parent
4cc117ddf6
commit
09c48b60bd
@ -146,6 +146,8 @@
|
|||||||
-- ^ Returns {name="ignore", ...} for unloaded area
|
-- ^ Returns {name="ignore", ...} for unloaded area
|
||||||
-- - get_node_or_nil(pos)
|
-- - get_node_or_nil(pos)
|
||||||
-- ^ Returns nil for unloaded area
|
-- ^ Returns nil for unloaded area
|
||||||
|
-- - get_node_light(pos, timeofday) -> 0...15 or nil
|
||||||
|
-- ^ timeofday: nil = current time, 0 = night, 0.5 = day
|
||||||
-- - add_luaentity(pos, name)
|
-- - add_luaentity(pos, name)
|
||||||
-- - add_item(pos, itemstring)
|
-- - add_item(pos, itemstring)
|
||||||
-- - add_rat(pos)
|
-- - add_rat(pos)
|
||||||
|
@ -2402,6 +2402,34 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EnvRef:get_node_light(pos, timeofday)
|
||||||
|
// pos = {x=num, y=num, z=num}
|
||||||
|
// timeofday: nil = current time, 0 = night, 0.5 = day
|
||||||
|
static int l_get_node_light(lua_State *L)
|
||||||
|
{
|
||||||
|
EnvRef *o = checkobject(L, 1);
|
||||||
|
ServerEnvironment *env = o->m_env;
|
||||||
|
if(env == NULL) return 0;
|
||||||
|
// Do it
|
||||||
|
v3s16 pos = readpos(L, 2);
|
||||||
|
u32 time_of_day = env->getTimeOfDay();
|
||||||
|
if(lua_isnumber(L, 3))
|
||||||
|
time_of_day = 24000.0 * lua_tonumber(L, 3);
|
||||||
|
time_of_day %= 24000;
|
||||||
|
u32 dnr = time_to_daynight_ratio(time_of_day);
|
||||||
|
MapNode n = env->getMap().getNodeNoEx(pos);
|
||||||
|
try{
|
||||||
|
MapNode n = env->getMap().getNode(pos);
|
||||||
|
INodeDefManager *ndef = env->getGameDef()->ndef();
|
||||||
|
lua_pushinteger(L, n.getLightBlend(dnr, 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)
|
||||||
@ -2571,6 +2599,7 @@ const luaL_reg EnvRef::methods[] = {
|
|||||||
method(EnvRef, remove_node),
|
method(EnvRef, remove_node),
|
||||||
method(EnvRef, get_node),
|
method(EnvRef, get_node),
|
||||||
method(EnvRef, get_node_or_nil),
|
method(EnvRef, get_node_or_nil),
|
||||||
|
method(EnvRef, get_node_light),
|
||||||
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