Modernize client code (#6250)
[oweals/minetest.git] / src / content_cao.cpp
index 2cc675573c26076cf94b7cbfa88f02557b4740db..771820cb09c1003cc5c1a61dab10d15b4f4b47bf 100644 (file)
@@ -895,8 +895,11 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
        scene::ISceneNode *node = getSceneNode();
        if (node && m_prop.nametag != "" && !m_is_local_player) {
                // Add nametag
+               v3f pos;
+               pos.Y = m_prop.collisionbox.MaxEdge.Y + 0.3f;
                m_nametag = m_client->getCamera()->addNametag(node,
-                       m_prop.nametag, m_prop.nametag_color);
+                       m_prop.nametag, m_prop.nametag_color,
+                       pos);
        }
 
        updateNodePos();
@@ -943,7 +946,7 @@ void GenericCAO::updateLightNoCheck(u8 light_at_pos)
 
 v3s16 GenericCAO::getLightPosition()
 {
-       return floatToInt(m_position, BS);
+       return floatToInt(m_position + v3f(0, 0.5 * BS, 0), BS);
 }
 
 void GenericCAO::updateNodePos()
@@ -1700,6 +1703,9 @@ void GenericCAO::processMessage(const std::string &data)
                m_prop.nametag_color = readARGB8(is);
                if (m_nametag != NULL) {
                        m_nametag->nametag_color = m_prop.nametag_color;
+                       v3f pos;
+                       pos.Y = m_prop.collisionbox.MaxEdge.Y + 0.3f;
+                       m_nametag->nametag_pos = pos;
                }
        } else if (cmd == GENERIC_CMD_SPAWN_INFANT) {
                u16 child_id = readU16(is);