mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add nametag background setting and object property (#10937)
This commit is contained in:
parent
a8f6befd39
commit
f85e9ab925
17 changed files with 254 additions and 58 deletions
|
@ -312,6 +312,17 @@ void read_object_properties(lua_State *L, int index,
|
|||
prop->nametag_color = color;
|
||||
}
|
||||
lua_pop(L, 1);
|
||||
lua_getfield(L, -1, "nametag_bgcolor");
|
||||
if (!lua_isnil(L, -1)) {
|
||||
if (lua_toboolean(L, -1)) {
|
||||
video::SColor color;
|
||||
if (read_color(L, -1, &color))
|
||||
prop->nametag_bgcolor = color;
|
||||
} else {
|
||||
prop->nametag_bgcolor = nullopt;
|
||||
}
|
||||
}
|
||||
lua_pop(L, 1);
|
||||
|
||||
lua_getfield(L, -1, "automatic_face_movement_max_rotation_per_sec");
|
||||
if (lua_isnumber(L, -1)) {
|
||||
|
@ -403,6 +414,13 @@ void push_object_properties(lua_State *L, ObjectProperties *prop)
|
|||
lua_setfield(L, -2, "nametag");
|
||||
push_ARGB8(L, prop->nametag_color);
|
||||
lua_setfield(L, -2, "nametag_color");
|
||||
if (prop->nametag_bgcolor) {
|
||||
push_ARGB8(L, prop->nametag_bgcolor.value());
|
||||
lua_setfield(L, -2, "nametag_bgcolor");
|
||||
} else {
|
||||
lua_pushboolean(L, false);
|
||||
lua_setfield(L, -2, "nametag_bgcolor");
|
||||
}
|
||||
lua_pushnumber(L, prop->automatic_face_movement_max_rotation_per_sec);
|
||||
lua_setfield(L, -2, "automatic_face_movement_max_rotation_per_sec");
|
||||
lua_pushlstring(L, prop->infotext.c_str(), prop->infotext.size());
|
||||
|
|
|
@ -50,22 +50,26 @@ bool LuaHelper::isNaN(lua_State *L, int idx)
|
|||
/*
|
||||
* Read template functions
|
||||
*/
|
||||
template <> bool LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
bool LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
return lua_toboolean(L, index) != 0;
|
||||
}
|
||||
|
||||
template <> s16 LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
s16 LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
return lua_tonumber(L, index);
|
||||
}
|
||||
|
||||
template <> int LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
int LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
return luaL_checkint(L, index);
|
||||
}
|
||||
|
||||
template <> float LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
float LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
if (isNaN(L, index))
|
||||
throw LuaError("NaN value is not allowed.");
|
||||
|
@ -73,7 +77,8 @@ template <> float LuaHelper::readParam(lua_State *L, int index)
|
|||
return (float)luaL_checknumber(L, index);
|
||||
}
|
||||
|
||||
template <> v2s16 LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
v2s16 LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
v2s16 p;
|
||||
CHECK_POS_TAB(index);
|
||||
|
@ -88,7 +93,8 @@ template <> v2s16 LuaHelper::readParam(lua_State *L, int index)
|
|||
return p;
|
||||
}
|
||||
|
||||
template <> v2f LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
v2f LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
v2f p;
|
||||
CHECK_POS_TAB(index);
|
||||
|
@ -103,7 +109,8 @@ template <> v2f LuaHelper::readParam(lua_State *L, int index)
|
|||
return p;
|
||||
}
|
||||
|
||||
template <> v3f LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
v3f LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
v3f p;
|
||||
CHECK_POS_TAB(index);
|
||||
|
@ -122,7 +129,8 @@ template <> v3f LuaHelper::readParam(lua_State *L, int index)
|
|||
return p;
|
||||
}
|
||||
|
||||
template <> std::string LuaHelper::readParam(lua_State *L, int index)
|
||||
template <>
|
||||
std::string LuaHelper::readParam(lua_State *L, int index)
|
||||
{
|
||||
size_t length;
|
||||
std::string result;
|
||||
|
|
|
@ -38,7 +38,8 @@ protected:
|
|||
* @param index Lua Index to read
|
||||
* @return read value from Lua
|
||||
*/
|
||||
template <typename T> static T readParam(lua_State *L, int index);
|
||||
template <typename T>
|
||||
static T readParam(lua_State *L, int index);
|
||||
|
||||
/**
|
||||
* Read a value using a template type T from Lua State L and index
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue