X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fclient%2Fclient.h;h=85ca2404994583d07faea0a8f0a5f92731709f2f;hb=a049e8267fabd101cb5c6528b3270214cb0647f0;hp=b9807a11ed723e3125d6d4f3ab0032c7d2d39c40;hpb=ace3c76112a839aaad34f4343cd924412310bbd3;p=dragonfireclient.git diff --git a/src/client/client.h b/src/client/client.h index b9807a11e..85ca24049 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -45,6 +45,7 @@ struct ClientEvent; struct MeshMakeData; struct ChatMessage; class MapBlockMesh; +class RenderingEngine; class IWritableTextureSource; class IWritableShaderSource; class IWritableItemDefManager; @@ -82,34 +83,24 @@ class PacketCounter void add(u16 command) { - std::map::iterator n = m_packets.find(command); - if(n == m_packets.end()) - { + auto n = m_packets.find(command); + if (n == m_packets.end()) m_packets[command] = 1; - } else - { n->second++; - } } void clear() { - for (auto &m_packet : m_packets) { - m_packet.second = 0; - } + m_packets.clear(); } - void print(std::ostream &o) - { - for (const auto &m_packet : m_packets) { - o << "cmd "<< m_packet.first <<" count "<< m_packet.second << std::endl; - } - } + u32 sum() const; + void print(std::ostream &o) const; private: // command, count - std::map m_packets; + std::map m_packets; }; class ClientScripting; @@ -133,6 +124,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef NodeDefManager *nodedef, ISoundManager *sound, MtEventManager *event, + RenderingEngine *rendering_engine, bool ipv6, GameUI *game_ui ); @@ -218,6 +210,9 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef void handleCommand_HudSetFlags(NetworkPacket* pkt); void handleCommand_HudSetParam(NetworkPacket* pkt); void handleCommand_HudSetSky(NetworkPacket* pkt); + void handleCommand_HudSetSun(NetworkPacket* pkt); + void handleCommand_HudSetMoon(NetworkPacket* pkt); + void handleCommand_HudSetStars(NetworkPacket* pkt); void handleCommand_CloudParams(NetworkPacket* pkt); void handleCommand_OverrideDayNightRatio(NetworkPacket* pkt); void handleCommand_LocalPlayerAnimations(NetworkPacket* pkt); @@ -229,6 +224,8 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef void handleCommand_FormspecPrepend(NetworkPacket *pkt); void handleCommand_CSMRestrictionFlags(NetworkPacket *pkt); void handleCommand_PlayerSpeed(NetworkPacket *pkt); + void handleCommand_MediaPush(NetworkPacket *pkt); + void handleCommand_MinimapModes(NetworkPacket *pkt); void ProcessData(NetworkPacket *pkt); @@ -343,7 +340,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef u16 getProtoVersion() { return m_proto_ver; } - bool connectedToServer(); void confirmRegistration(); bool m_is_registration_confirmation_state = false; bool m_simple_singleplayer_mode; @@ -351,6 +347,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef float mediaReceiveProgress(); void afterContentReceived(); + void showUpdateProgressTexture(void *args, u32 progress, u32 max_progress); float getRTT(); float getCurRate(); @@ -359,6 +356,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef void setCamera(Camera* camera) { m_camera = camera; } Camera* getCamera () { return m_camera; } + scene::ISceneManager *getSceneManager(); bool shouldShowMinimap() const; @@ -367,7 +365,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef const NodeDefManager* getNodeDefManager() override; ICraftDefManager* getCraftDefManager() override; ITextureSource* getTextureSource(); - virtual IShaderSource* getShaderSource(); + virtual IWritableShaderSource* getShaderSource(); u16 allocateUnknownNodeId(const std::string &name) override; virtual ISoundManager* getSoundManager(); MtEventManager* getEventManager(); @@ -383,7 +381,9 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef // The following set of functions is used by ClientMediaDownloader // Insert a media file appropriately into the appropriate manager - bool loadMedia(const std::string &data, const std::string &filename); + bool loadMedia(const std::string &data, const std::string &filename, + bool from_media_push = false); + // Send a request for conventional media transfer void request_media(const std::vector &file_requests); @@ -420,16 +420,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef return m_csm_restriction_flags & flag; } - u32 getCSMNodeRangeLimit() const - { - return m_csm_restriction_noderange; - } - - inline std::unordered_map &getHUDTranslationMap() - { - return m_hud_server_to_client; - } - bool joinModChannel(const std::string &channel) override; bool leaveModChannel(const std::string &channel) override; bool sendModChannelMessage(const std::string &channel, @@ -442,7 +432,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef } private: void loadMods(); - bool checkBuiltinIntegrity(); // Virtual methods from con::PeerHandler void peerAdded(con::Peer *peer) override; @@ -485,6 +474,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef NodeDefManager *m_nodedef; ISoundManager *m_sound; MtEventManager *m_event; + RenderingEngine *m_rendering_engine; MeshUpdateThread m_mesh_update_thread; @@ -495,6 +485,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef Camera *m_camera = nullptr; Minimap *m_minimap = nullptr; bool m_minimap_disabled_by_server = false; + // Server serialization version u8 m_server_ser_ver; @@ -536,7 +527,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef AuthMechanism m_chosen_auth_mech; void *m_auth_data = nullptr; - bool m_access_denied = false; bool m_access_denied_reconnect = false; std::string m_access_denied_reason = ""; @@ -545,7 +535,10 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef bool m_nodedef_received = false; bool m_activeobjects_received = false; bool m_mods_loaded = false; + ClientMediaDownloader *m_media_downloader; + // Set of media filenames pushed by server at runtime + std::unordered_set m_media_pushed_files; // time_of_day speed approximation for old protocol bool m_time_of_day_set = false; @@ -564,9 +557,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef // Relation of client id to object id std::unordered_map m_sounds_to_objects; - // Map server hud ids to client hud ids - std::unordered_map m_hud_server_to_client; - // Privileges std::unordered_set m_privileges; @@ -589,7 +579,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef // Client modding ClientScripting *m_script = nullptr; - bool m_modding_enabled; std::unordered_map m_mod_storages; float m_mod_storage_save_timer = 10.0f; std::vector m_mods;