X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fcontent_sao.cpp;h=4ee92f4d34255408e83f1159cfadb73f359fb26b;hb=8852333eb3042580592ade478e5def20f8ed5d4c;hp=9b4ae6100e0eec7d422de0f94f4e4558b7576468;hpb=787b43b2183262a08726434e2597638ad85bfb72;p=oweals%2Fminetest.git diff --git a/src/content_sao.cpp b/src/content_sao.cpp index 9b4ae6100..4ee92f4d3 100644 --- a/src/content_sao.cpp +++ b/src/content_sao.cpp @@ -191,7 +191,7 @@ public: } 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 @@ private: 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); @@ -1024,6 +1027,8 @@ void PlayerSAO::removingFromEnvironment() { m_player->setPlayerSAO(NULL); m_player->peer_id = 0; + m_env->savePlayer(m_player->getName()); + m_env->removePlayer(m_player->getName()); } } @@ -1059,7 +1064,9 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version) os<