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();
v3s16 GenericCAO::getLightPosition()
{
- return floatToInt(m_position, BS);
+ return floatToInt(m_position + v3f(0, 0.5 * BS, 0), BS);
}
void GenericCAO::updateNodePos()
if (m_is_visible) {
int old_anim = player->last_animation;
float old_anim_speed = player->last_animation_speed;
- m_position = player->getPosition() + v3f(0,BS,0);
+ m_position = player->getPosition();
m_velocity = v3f(0,0,0);
m_acceleration = v3f(0,0,0);
pos_translator.vect_show = m_position;
if (m_is_local_player) {
LocalPlayer *player = m_env->getLocalPlayer();
player->makes_footstep_sound = m_prop.makes_footstep_sound;
+ player->setCollisionbox(m_selection_box);
}
if ((m_is_player && !m_is_local_player) && m_prop.nametag == "")
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);