if (m_digging_button != -1)
{
- f32 offset = dtime * 4.5;
+ f32 offset = dtime * 3.5;
float m_digging_anim_was = m_digging_anim;
m_digging_anim += offset;
if (m_digging_anim >= 1)
m_playernode->setRotation(v3f(0, -1 * player->getYaw(), 0));
m_playernode->updateAbsolutePosition();
+ //Get camera tilt timer (hurt animation)
+ float cameratilt = fabs(fabs(player->hurt_tilt_timer-0.75)-0.75);
+
// Set head node transformation
- m_headnode->setPosition(player->getEyeOffset());
- m_headnode->setRotation(v3f(player->getPitch(), 0, 0));
+ m_headnode->setPosition(player->getEyeOffset()+v3f(0,cameratilt*-player->hurt_tilt_strength,0));
+ m_headnode->setRotation(v3f(player->getPitch(), 0, cameratilt*player->hurt_tilt_strength));
m_headnode->updateAbsolutePosition();
// Compute relative camera position and target
void Camera::wield(const ItemStack &item)
{
IItemDefManager *idef = m_gamedef->idef();
- scene::IMesh *wield_mesh = item.getDefinition(idef).wield_mesh;
+ scene::IMesh *wield_mesh = idef->getWieldMesh(item.getDefinition(idef).name, m_gamedef);
if(wield_mesh)
{
m_wieldnode->setMesh(wield_mesh);
void Camera::drawWieldedTool()
{
// Set vertex colors of wield mesh according to light level
- u8 li = decode_light(m_wieldlight);
+ u8 li = m_wieldlight;
video::SColor color(255,li,li,li);
setMeshColor(m_wieldnode->getMesh(), color);