]> git.lizzy.rs Git - minetest.git/blobdiff - src/content_sao.cpp
Revert binary database block position encoding
[minetest.git] / src / content_sao.cpp
index 9b4ae6100e0eec7d422de0f94f4e4558b7576468..095c6b5bf26c969f064e752fe815aa3d272df2aa 100644 (file)
@@ -191,7 +191,7 @@ class ItemSAO : public ServerActiveObject
        }
 
        ItemSAO(ServerEnvironment *env, v3f pos,
-                       const std::string itemstring):
+                       const std::string &itemstring):
                ServerActiveObject(env, pos),
                m_itemstring(itemstring),
                m_itemstring_changed(false),
@@ -350,7 +350,7 @@ class ItemSAO : public ServerActiveObject
 ItemSAO proto_ItemSAO(NULL, v3f(0,0,0), "");
 
 ServerActiveObject* createItemSAO(ServerEnvironment *env, v3f pos,
-               const std::string itemstring)
+                                  const std::string &itemstring)
 {
        return new ItemSAO(env, pos, itemstring);
 }
@@ -527,8 +527,9 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
                        m_velocity += dtime * m_acceleration;
                }
 
-               if(m_prop.automatic_face_movement_dir){
-                       m_yaw = atan2(m_velocity.Z,m_velocity.X) * 180 / M_PI;
+               if((m_prop.automatic_face_movement_dir) &&
+                               (fabs(m_velocity.Z) > 0.001 || fabs(m_velocity.X) > 0.001)){
+                       m_yaw = atan2(m_velocity.Z,m_velocity.X) * 180 / M_PI + m_prop.automatic_face_movement_dir_offset;
                }
        }
 
@@ -968,6 +969,8 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, Player *player_, u16 peer_id_,
        m_physics_override_speed(1),
        m_physics_override_jump(1),
        m_physics_override_gravity(1),
+       m_physics_override_sneak(true),
+       m_physics_override_sneak_glitch(true),
        m_physics_override_sent(false)
 {
        assert(m_player);
@@ -1059,7 +1062,9 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version)
                        os<<serializeLongString(gob_cmd_update_bone_position((*ii).first, (*ii).second.X, (*ii).second.Y)); // m_bone_position.size
                }
                os<<serializeLongString(gob_cmd_update_attachment(m_attachment_parent_id, m_attachment_bone, m_attachment_position, m_attachment_rotation)); // 4
-               os<<serializeLongString(gob_cmd_update_physics_override(m_physics_override_speed, m_physics_override_jump, m_physics_override_gravity)); // 5
+               os<<serializeLongString(gob_cmd_update_physics_override(m_physics_override_speed,
+                               m_physics_override_jump, m_physics_override_gravity, m_physics_override_sneak,
+                               m_physics_override_sneak_glitch)); // 5
        }
        else
        {
@@ -1186,7 +1191,9 @@ void PlayerSAO::step(float dtime, bool send_recommended)
 
        if(m_physics_override_sent == false){
                m_physics_override_sent = true;
-               std::string str = gob_cmd_update_physics_override(m_physics_override_speed, m_physics_override_jump, m_physics_override_gravity);
+               std::string str = gob_cmd_update_physics_override(m_physics_override_speed,
+                               m_physics_override_jump, m_physics_override_gravity,
+                               m_physics_override_sneak, m_physics_override_sneak_glitch);
                // create message and add to list
                ActiveObjectMessage aom(getId(), true, str);
                m_messages_out.push_back(aom);