aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
authorTeTpaAka <TeTpaAka@users.noreply.github.com>2015-05-14 15:54:54 +0200
committerest31 <MTest31@outlook.com>2015-05-15 11:03:27 +0200
commit86a963caca9604ad57904e9acd9bef7c46ca47d8 (patch)
treeebe637727aeb7479c3cd327fba5dbc7dce0c9b5c /src/script
parent99cf53c9087671d0a2130d2272b9a4f61d680517 (diff)
downloadminetest-86a963caca9604ad57904e9acd9bef7c46ca47d8.tar.gz
minetest-86a963caca9604ad57904e9acd9bef7c46ca47d8.tar.bz2
minetest-86a963caca9604ad57904e9acd9bef7c46ca47d8.zip
Add get and set functions for the nametag color
Diffstat (limited to 'src/script')
-rw-r--r--src/script/lua_api/l_object.cpp44
-rw-r--r--src/script/lua_api/l_object.h6
2 files changed, 50 insertions, 0 deletions
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp
index d913019b1..c639a4834 100644
--- a/src/script/lua_api/l_object.cpp
+++ b/src/script/lua_api/l_object.cpp
@@ -1274,6 +1274,48 @@ int ObjectRef::l_override_day_night_ratio(lua_State *L)
return 1;
}
+// set_nametag_color(self, color)
+int ObjectRef::l_set_nametag_color(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ ObjectRef *ref = checkobject(L, 1);
+ PlayerSAO *playersao = getplayersao(ref);
+ if (playersao == NULL)
+ return 0;
+
+ video::SColor color(255,255,255,255);
+ if (!lua_isnil(L, 2))
+ color = readARGB8(L, 2);
+ playersao->setNametagColor(color);
+
+ lua_pushboolean(L, true);
+ return 1;
+}
+
+// get_nametag_color(self)
+int ObjectRef::l_get_nametag_color(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ ObjectRef *ref = checkobject(L, 1);
+ PlayerSAO *playersao = getplayersao(ref);
+ if (playersao == NULL)
+ return 0;
+
+ video::SColor color = playersao->getNametagColor();
+
+ lua_newtable(L);
+ lua_pushnumber(L, color.getAlpha());
+ lua_setfield(L, -2, "a");
+ lua_pushnumber(L, color.getRed());
+ lua_setfield(L, -2, "r");
+ lua_pushnumber(L, color.getGreen());
+ lua_setfield(L, -2, "g");
+ lua_pushnumber(L, color.getBlue());
+ lua_setfield(L, -2, "b");
+
+ return 1;
+}
+
ObjectRef::ObjectRef(ServerActiveObject *object):
m_object(object)
{
@@ -1396,5 +1438,7 @@ const luaL_reg ObjectRef::methods[] = {
luamethod(ObjectRef, override_day_night_ratio),
luamethod(ObjectRef, set_local_animation),
luamethod(ObjectRef, set_eye_offset),
+ luamethod(ObjectRef, set_nametag_color),
+ luamethod(ObjectRef, get_nametag_color),
{0,0}
};
diff --git a/src/script/lua_api/l_object.h b/src/script/lua_api/l_object.h
index daf91ce56..1f2931f29 100644
--- a/src/script/lua_api/l_object.h
+++ b/src/script/lua_api/l_object.h
@@ -240,6 +240,12 @@ private:
// set_eye_offset(self, v3f first pv, v3f third pv)
static int l_set_eye_offset(lua_State *L);
+ // set_nametag_color(self, color)
+ static int l_set_nametag_color(lua_State *L);
+
+ // get_nametag_color(self)
+ static int l_get_nametag_color(lua_State *L);
+
public:
ObjectRef(ServerActiveObject *object);