X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fremoteplayer.h;h=965dede508f542a57571fde27d71fc95241b8077;hb=3caad3f3c9e319ca67d63231e8c64b2ace855fff;hp=1b1a90de3d7d6205bca20d19bea55d00ae246291;hpb=70f104be076321330a0827010704761a040d8ec7;p=oweals%2Fminetest.git diff --git a/src/remoteplayer.h b/src/remoteplayer.h index 1b1a90de3..965dede50 100644 --- a/src/remoteplayer.h +++ b/src/remoteplayer.h @@ -22,29 +22,32 @@ with this program; if not, write to the Free Software Foundation, Inc., #define REMOTEPLAYER_HEADER #include "player.h" +#include "cloudparams.h" class PlayerSAO; -enum RemotePlayerChatResult { +enum RemotePlayerChatResult +{ RPLAYER_CHATRESULT_OK, RPLAYER_CHATRESULT_FLOODING, RPLAYER_CHATRESULT_KICK, }; + /* Player on the server */ class RemotePlayer : public Player { + friend class PlayerDatabaseFiles; + public: RemotePlayer(const char *name, IItemDefManager *idef); virtual ~RemotePlayer() {} - void save(std::string savedir, IGameDef *gamedef); - void deSerialize(std::istream &is, const std::string &playername); + void deSerialize(std::istream &is, const std::string &playername, PlayerSAO *sao); PlayerSAO *getPlayerSAO() { return m_sao; } void setPlayerSAO(PlayerSAO *sao) { m_sao = sao; } - void setPosition(const v3f &position); const RemotePlayerChatResult canSendChatMessage(); @@ -67,18 +70,9 @@ public: *ratio = m_day_night_ratio; } - // Use a function, if isDead can be defined by other conditions - bool isDead() const { return hp == 0; } + void setHotbarImage(const std::string &name) { hud_hotbar_image = name; } - void setHotbarImage(const std::string &name) - { - hud_hotbar_image = name; - } - - std::string getHotbarImage() const - { - return hud_hotbar_image; - } + std::string getHotbarImage() const { return hud_hotbar_image; } void setHotbarSelectedImage(const std::string &name) { @@ -90,28 +84,31 @@ public: return hud_hotbar_selected_image; } - // Deprecated - f32 getRadPitchDep() const { return -1.0 * m_pitch * core::DEGTORAD; } - - // Deprecated - f32 getRadYawDep() const { return (m_yaw + 90.) * core::DEGTORAD; } - void setSky(const video::SColor &bgcolor, const std::string &type, - const std::vector ¶ms) + const std::vector ¶ms, bool &clouds) { m_sky_bgcolor = bgcolor; m_sky_type = type; m_sky_params = params; + m_sky_clouds = clouds; } void getSky(video::SColor *bgcolor, std::string *type, - std::vector *params) + std::vector *params, bool *clouds) { *bgcolor = m_sky_bgcolor; *type = m_sky_type; *params = m_sky_params; + *clouds = m_sky_clouds; + } + + void setCloudParams(const CloudParams &cloud_params) + { + m_cloud_params = cloud_params; } + const CloudParams &getCloudParams() const { return m_cloud_params; } + bool checkModified() const { return m_dirty || inventory.checkModified(); } void setModified(const bool x) @@ -121,27 +118,6 @@ public: inventory.setModified(x); } - virtual void setBreath(u16 breath) - { - if (breath != m_breath) - m_dirty = true; - Player::setBreath(breath); - } - - virtual void setPitch(f32 pitch) - { - if (pitch != m_pitch) - m_dirty = true; - Player::setPitch(pitch); - } - - virtual void setYaw(f32 yaw) - { - if (yaw != m_yaw) - m_dirty = true; - Player::setYaw(yaw); - } - void setLocalAnimations(v2s32 frames[4], float frame_speed) { for (int i = 0; i < 4; i++) @@ -156,7 +132,10 @@ public: *frame_speed = local_animation_speed; } - u16 protocol_version; + void setDirty(bool dirty) { m_dirty = true; } + + u16 protocol_version = 0; + private: /* serialize() writes a bunch of text that can contain @@ -164,26 +143,30 @@ private: deSerialize stops reading exactly at the right point. */ void serialize(std::ostream &os); + void serializeExtraAttributes(std::string &output); - PlayerSAO *m_sao; - bool m_dirty; + PlayerSAO *m_sao = nullptr; + bool m_dirty = false; static bool m_setting_cache_loaded; static float m_setting_chat_message_limit_per_10sec; static u16 m_setting_chat_message_limit_trigger_kick; - u32 m_last_chat_message_sent; - float m_chat_message_allowance; - u16 m_message_rate_overhead; + u32 m_last_chat_message_sent = std::time(0); + float m_chat_message_allowance = 5.0f; + u16 m_message_rate_overhead = 0; bool m_day_night_ratio_do_override; float m_day_night_ratio; - std::string hud_hotbar_image; - std::string hud_hotbar_selected_image; + std::string hud_hotbar_image = ""; + std::string hud_hotbar_selected_image = ""; std::string m_sky_type; video::SColor m_sky_bgcolor; std::vector m_sky_params; + bool m_sky_clouds; + + CloudParams m_cloud_params; }; #endif