diff options
author | TeTpaAka <TeTpaAka@users.noreply.github.com> | 2015-05-14 15:54:54 +0200 |
---|---|---|
committer | est31 <MTest31@outlook.com> | 2015-05-15 11:03:27 +0200 |
commit | 86a963caca9604ad57904e9acd9bef7c46ca47d8 (patch) | |
tree | ebe637727aeb7479c3cd327fba5dbc7dce0c9b5c /src/script | |
parent | 99cf53c9087671d0a2130d2272b9a4f61d680517 (diff) | |
download | minetest-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.cpp | 44 | ||||
-rw-r--r-- | src/script/lua_api/l_object.h | 6 |
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); |