summaryrefslogtreecommitdiff
path: root/src/content_cao.cpp
diff options
context:
space:
mode:
authorBlockMen <nmuelll@web.de>2015-11-20 23:46:33 +0100
committerBlockMen <nmuelll@web.de>2015-12-15 23:32:19 +0100
commit9eee3c3f465c071bb9908749cf48be3c131a1bdf (patch)
tree916b11e605c29b789db01d0c775dc0bc7c4c8983 /src/content_cao.cpp
parent19f73e4efc14622b4d020c9d373176cd7801e37f (diff)
downloadminetest-9eee3c3f465c071bb9908749cf48be3c131a1bdf.tar.gz
minetest-9eee3c3f465c071bb9908749cf48be3c131a1bdf.tar.bz2
minetest-9eee3c3f465c071bb9908749cf48be3c131a1bdf.zip
Add option to give every object a nametag
or change the nametag text of players
Diffstat (limited to 'src/content_cao.cpp')
-rw-r--r--src/content_cao.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp
index 72f6145b0..ed4e3b713 100644
--- a/src/content_cao.cpp
+++ b/src/content_cao.cpp
@@ -551,7 +551,6 @@ GenericCAO::GenericCAO(IGameDef *gamedef, ClientEnvironment *env):
m_animated_meshnode(NULL),
m_wield_meshnode(NULL),
m_spritenode(NULL),
- m_nametag_color(video::SColor(255, 255, 255, 255)),
m_textnode(NULL),
m_position(v3f(0,10*BS,0)),
m_velocity(v3f(0,0,0)),
@@ -972,19 +971,19 @@ void GenericCAO::addToScene(scene::ISceneManager *smgr, ITextureSource *tsrc,
updateTextures("");
scene::ISceneNode *node = getSceneNode();
- if (node && m_is_player && !m_is_local_player) {
+ if (node && m_prop.nametag != "" && !m_is_local_player) {
// Add a text node for showing the name
gui::IGUIEnvironment* gui = irr->getGUIEnvironment();
- std::wstring wname = utf8_to_wide(m_name);
+ std::wstring nametag_text = utf8_to_wide(m_prop.nametag);
m_textnode = smgr->addTextSceneNode(gui->getSkin()->getFont(),
- wname.c_str(), m_nametag_color, node);
+ nametag_text.c_str(), m_prop.nametag_color, node);
m_textnode->grab();
m_textnode->setPosition(v3f(0, BS*1.1, 0));
// Enforce hiding nametag,
// because if freetype is enabled, a grey
// shadow can remain.
- m_textnode->setVisible(m_nametag_color.getAlpha() > 0);
+ m_textnode->setVisible(m_prop.nametag_color.getAlpha() > 0);
}
updateNodePos();
@@ -1594,6 +1593,9 @@ void GenericCAO::processMessage(const std::string &data)
m_tx_basepos = m_prop.initial_sprite_basepos;
}
+ if ((m_is_player && !m_is_local_player) && m_prop.nametag == "")
+ m_prop.nametag = m_name;
+
expireVisuals();
}
else if(cmd == GENERIC_CMD_UPDATE_POSITION)
@@ -1772,15 +1774,15 @@ void GenericCAO::processMessage(const std::string &data)
m_armor_groups[name] = rating;
}
} else if (cmd == GENERIC_CMD_UPDATE_NAMETAG_ATTRIBUTES) {
+ // Deprecated, for backwards compatibility only.
readU8(is); // version
- m_nametag_color = readARGB8(is);
+ m_prop.nametag_color = readARGB8(is);
if (m_textnode != NULL) {
- m_textnode->setTextColor(m_nametag_color);
+ m_textnode->setTextColor(m_prop.nametag_color);
// Enforce hiding nametag,
- // because if freetype is enabled, a grey
- // shadow can remain.
- m_textnode->setVisible(m_nametag_color.getAlpha() > 0);
+ // because if freetype is enabled, a grey shadow can remain.
+ m_textnode->setVisible(m_prop.nametag_color.getAlpha() > 0);
}
}
}