aboutsummaryrefslogtreecommitdiff
path: root/src/client/client.h
diff options
context:
space:
mode:
authorElias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com>2020-11-04 16:44:42 +0100
committerGitHub <noreply@github.com>2020-11-04 16:44:42 +0100
commit5d9ae5a91c544fc7fbd475decf47cef7e09ef8fc (patch)
treec980d614fec4a5495798be3e79e033229062c3cd /src/client/client.h
parent28f6a79706b088c37268a59d90878220dc4ef9c7 (diff)
parent3af10766fd2b58b068e970266724d7eb10e9316b (diff)
downloaddragonfireclient-5d9ae5a91c544fc7fbd475decf47cef7e09ef8fc.tar.xz
Merge branch 'master' into master
Diffstat (limited to 'src/client/client.h')
-rw-r--r--src/client/client.h277
1 files changed, 129 insertions, 148 deletions
diff --git a/src/client/client.h b/src/client/client.h
index 7455d78dc..f00c331ab 100644
--- a/src/client/client.h
+++ b/src/client/client.h
@@ -49,7 +49,7 @@ class IWritableTextureSource;
class IWritableShaderSource;
class ISoundManager;
class NodeDefManager;
-//class IWritableCraftDefManager;
+// class IWritableCraftDefManager;
class ClientMediaDownloader;
struct MapDrawControl;
class ModChannelMgr;
@@ -60,11 +60,13 @@ class Minimap;
struct MinimapMapblock;
class Camera;
class NetworkPacket;
-namespace con {
+namespace con
+{
class Connection;
}
-enum LocalClientState {
+enum LocalClientState
+{
LC_Created,
LC_Init,
LC_Ready
@@ -88,10 +90,7 @@ public:
n->second++;
}
- void clear()
- {
- m_packets.clear();
- }
+ void clear() { m_packets.clear(); }
u32 sum() const;
void print(std::ostream &o) const;
@@ -111,28 +110,21 @@ public:
NOTE: Nothing is thread-safe here.
*/
- Client(
- const char *playername,
- const std::string &password,
- const std::string &address_name,
- MapDrawControl &control,
- IWritableTextureSource *tsrc,
- IWritableShaderSource *shsrc,
- IWritableItemDefManager *itemdef,
- NodeDefManager *nodedef,
- ISoundManager *sound,
- MtEventManager *event,
- bool ipv6,
- GameUI *game_ui
- );
+ Client(const char *playername, const std::string &password,
+ const std::string &address_name, MapDrawControl &control,
+ IWritableTextureSource *tsrc, IWritableShaderSource *shsrc,
+ IWritableItemDefManager *itemdef, NodeDefManager *nodedef,
+ ISoundManager *sound, MtEventManager *event, bool ipv6,
+ GameUI *game_ui);
~Client();
DISABLE_CLASS_COPY(Client);
// Load local mods into memory
void scanModSubfolder(const std::string &mod_name, const std::string &mod_path,
- std::string mod_subpath);
- inline void scanModIntoMemory(const std::string &mod_name, const std::string &mod_path)
+ std::string mod_subpath);
+ inline void scanModIntoMemory(
+ const std::string &mod_name, const std::string &mod_path)
{
scanModSubfolder(mod_name, mod_path, "");
}
@@ -142,7 +134,6 @@ public:
*/
void Stop();
-
bool isShutdown();
/*
@@ -163,58 +154,58 @@ public:
* Command Handlers
*/
- void handleCommand(NetworkPacket* pkt);
-
- void handleCommand_Null(NetworkPacket* pkt) {};
- void handleCommand_Deprecated(NetworkPacket* pkt);
- void handleCommand_Hello(NetworkPacket* pkt);
- void handleCommand_AuthAccept(NetworkPacket* pkt);
- void handleCommand_AcceptSudoMode(NetworkPacket* pkt);
- void handleCommand_DenySudoMode(NetworkPacket* pkt);
- void handleCommand_AccessDenied(NetworkPacket* pkt);
- void handleCommand_RemoveNode(NetworkPacket* pkt);
- void handleCommand_AddNode(NetworkPacket* pkt);
+ void handleCommand(NetworkPacket *pkt);
+
+ void handleCommand_Null(NetworkPacket *pkt){};
+ void handleCommand_Deprecated(NetworkPacket *pkt);
+ void handleCommand_Hello(NetworkPacket *pkt);
+ void handleCommand_AuthAccept(NetworkPacket *pkt);
+ void handleCommand_AcceptSudoMode(NetworkPacket *pkt);
+ void handleCommand_DenySudoMode(NetworkPacket *pkt);
+ void handleCommand_AccessDenied(NetworkPacket *pkt);
+ void handleCommand_RemoveNode(NetworkPacket *pkt);
+ void handleCommand_AddNode(NetworkPacket *pkt);
void handleCommand_NodemetaChanged(NetworkPacket *pkt);
- void handleCommand_BlockData(NetworkPacket* pkt);
- void handleCommand_Inventory(NetworkPacket* pkt);
- void handleCommand_TimeOfDay(NetworkPacket* pkt);
+ void handleCommand_BlockData(NetworkPacket *pkt);
+ void handleCommand_Inventory(NetworkPacket *pkt);
+ void handleCommand_TimeOfDay(NetworkPacket *pkt);
void handleCommand_ChatMessage(NetworkPacket *pkt);
- void handleCommand_ActiveObjectRemoveAdd(NetworkPacket* pkt);
- void handleCommand_ActiveObjectMessages(NetworkPacket* pkt);
- void handleCommand_Movement(NetworkPacket* pkt);
+ void handleCommand_ActiveObjectRemoveAdd(NetworkPacket *pkt);
+ void handleCommand_ActiveObjectMessages(NetworkPacket *pkt);
+ void handleCommand_Movement(NetworkPacket *pkt);
void handleCommand_Fov(NetworkPacket *pkt);
- void handleCommand_HP(NetworkPacket* pkt);
- void handleCommand_Breath(NetworkPacket* pkt);
- void handleCommand_MovePlayer(NetworkPacket* pkt);
- void handleCommand_DeathScreen(NetworkPacket* pkt);
- void handleCommand_AnnounceMedia(NetworkPacket* pkt);
- void handleCommand_Media(NetworkPacket* pkt);
- void handleCommand_NodeDef(NetworkPacket* pkt);
- void handleCommand_ItemDef(NetworkPacket* pkt);
- void handleCommand_PlaySound(NetworkPacket* pkt);
- void handleCommand_StopSound(NetworkPacket* pkt);
+ void handleCommand_HP(NetworkPacket *pkt);
+ void handleCommand_Breath(NetworkPacket *pkt);
+ void handleCommand_MovePlayer(NetworkPacket *pkt);
+ void handleCommand_DeathScreen(NetworkPacket *pkt);
+ void handleCommand_AnnounceMedia(NetworkPacket *pkt);
+ void handleCommand_Media(NetworkPacket *pkt);
+ void handleCommand_NodeDef(NetworkPacket *pkt);
+ void handleCommand_ItemDef(NetworkPacket *pkt);
+ void handleCommand_PlaySound(NetworkPacket *pkt);
+ void handleCommand_StopSound(NetworkPacket *pkt);
void handleCommand_FadeSound(NetworkPacket *pkt);
- void handleCommand_Privileges(NetworkPacket* pkt);
- void handleCommand_InventoryFormSpec(NetworkPacket* pkt);
- void handleCommand_DetachedInventory(NetworkPacket* pkt);
- void handleCommand_ShowFormSpec(NetworkPacket* pkt);
- void handleCommand_SpawnParticle(NetworkPacket* pkt);
- void handleCommand_AddParticleSpawner(NetworkPacket* pkt);
- void handleCommand_DeleteParticleSpawner(NetworkPacket* pkt);
- void handleCommand_HudAdd(NetworkPacket* pkt);
- void handleCommand_HudRemove(NetworkPacket* pkt);
- void handleCommand_HudChange(NetworkPacket* pkt);
- 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);
- void handleCommand_EyeOffset(NetworkPacket* pkt);
- void handleCommand_UpdatePlayerList(NetworkPacket* pkt);
+ void handleCommand_Privileges(NetworkPacket *pkt);
+ void handleCommand_InventoryFormSpec(NetworkPacket *pkt);
+ void handleCommand_DetachedInventory(NetworkPacket *pkt);
+ void handleCommand_ShowFormSpec(NetworkPacket *pkt);
+ void handleCommand_SpawnParticle(NetworkPacket *pkt);
+ void handleCommand_AddParticleSpawner(NetworkPacket *pkt);
+ void handleCommand_DeleteParticleSpawner(NetworkPacket *pkt);
+ void handleCommand_HudAdd(NetworkPacket *pkt);
+ void handleCommand_HudRemove(NetworkPacket *pkt);
+ void handleCommand_HudChange(NetworkPacket *pkt);
+ 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);
+ void handleCommand_EyeOffset(NetworkPacket *pkt);
+ void handleCommand_UpdatePlayerList(NetworkPacket *pkt);
void handleCommand_ModChannelMsg(NetworkPacket *pkt);
void handleCommand_ModChannelSignal(NetworkPacket *pkt);
void handleCommand_SrpBytesSandB(NetworkPacket *pkt);
@@ -225,31 +216,30 @@ public:
void ProcessData(NetworkPacket *pkt);
- void Send(NetworkPacket* pkt);
+ void Send(NetworkPacket *pkt);
void interact(InteractAction action, const PointedThing &pointed);
- void sendNodemetaFields(v3s16 p, const std::string &formname,
- const StringMap &fields);
- void sendInventoryFields(const std::string &formname,
- const StringMap &fields);
+ void sendNodemetaFields(
+ v3s16 p, const std::string &formname, const StringMap &fields);
+ void sendInventoryFields(const std::string &formname, const StringMap &fields);
void sendInventoryAction(InventoryAction *a);
void sendChatMessage(const std::wstring &message);
void clearOutChatQueue();
- void sendChangePassword(const std::string &oldpassword,
- const std::string &newpassword);
+ void sendChangePassword(
+ const std::string &oldpassword, const std::string &newpassword);
void sendDamage(u16 damage);
void sendRespawn();
void sendReady();
- ClientEnvironment& getEnv() { return m_env; }
+ ClientEnvironment &getEnv() { return m_env; }
ITextureSource *tsrc() { return getTextureSource(); }
ISoundManager *sound() { return getSoundManager(); }
static const std::string &getBuiltinLuaPath();
static const std::string &getClientModsLuaPath();
const std::vector<ModSpec> &getMods() const override;
- const ModSpec* getModSpec(const std::string &modname) const override;
+ const ModSpec *getModSpec(const std::string &modname) const override;
// Causes urgent mesh updates (unlike Map::add/removeNodeWithEvent)
void removeNode(v3s16 p);
@@ -268,7 +258,7 @@ public:
bool updateWieldedItem();
/* InventoryManager interface */
- Inventory* getInventory(const InventoryLocation &loc) override;
+ Inventory *getInventory(const InventoryLocation &loc) override;
void inventoryAction(InventoryAction *a) override;
// Send the item number 'item' as player item to the server
@@ -288,29 +278,40 @@ public:
u16 getHP();
bool checkPrivilege(const std::string &priv) const
- { return g_settings->getBool("priv_bypass") ? true : (m_privileges.count(priv) != 0); }
+ {
+ return g_settings->getBool("priv_bypass")
+ ? true
+ : (m_privileges.count(priv) != 0);
+ }
const std::unordered_set<std::string> &getPrivilegeList() const
- { return m_privileges; }
+ {
+ return m_privileges;
+ }
bool getChatMessage(std::wstring &message);
- void typeChatMessage(const std::wstring& message);
+ void typeChatMessage(const std::wstring &message);
- u64 getMapSeed(){ return m_map_seed; }
+ u64 getMapSeed() { return m_map_seed; }
- void addUpdateMeshTask(v3s16 blockpos, bool ack_to_server=false, bool urgent=false);
+ void addUpdateMeshTask(
+ v3s16 blockpos, bool ack_to_server = false, bool urgent = false);
// Including blocks at appropriate edges
- void addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server=false, bool urgent=false);
- void addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server=false, bool urgent=false);
+ void addUpdateMeshTaskWithEdge(
+ v3s16 blockpos, bool ack_to_server = false, bool urgent = false);
+ void addUpdateMeshTaskForNode(
+ v3s16 nodepos, bool ack_to_server = false, bool urgent = false);
void updateAllMapBlocks();
void updateCameraOffset(v3s16 camera_offset)
- { m_mesh_update_thread.m_camera_offset = camera_offset; }
+ {
+ m_mesh_update_thread.m_camera_offset = camera_offset;
+ }
bool hasClientEvents() const { return !m_client_event_queue.empty(); }
// Get event from queue. If queue is empty, it triggers an assertion failure.
- ClientEvent * getClientEvent();
+ ClientEvent *getClientEvent();
bool accessDenied() const { return m_access_denied; }
@@ -326,17 +327,12 @@ public:
// disconnect client when CSM failed.
const std::string &accessDeniedReason() const { return m_access_denied_reason; }
- const bool itemdefReceived() const
- { return m_itemdef_received; }
- const bool nodedefReceived() const
- { return m_nodedef_received; }
- const bool mediaReceived() const
- { return !m_media_downloader; }
- const bool activeObjectsReceived() const
- { return m_activeobjects_received; }
+ const bool itemdefReceived() const { return m_itemdef_received; }
+ const bool nodedefReceived() const { return m_nodedef_received; }
+ const bool mediaReceived() const { return !m_media_downloader; }
+ const bool activeObjectsReceived() const { return m_activeobjects_received; }
- u16 getProtoVersion()
- { return m_proto_ver; }
+ u16 getProtoVersion() { return m_proto_ver; }
bool connectedToServer();
void confirmRegistration();
@@ -350,28 +346,29 @@ public:
float getRTT();
float getCurRate();
- Minimap* getMinimap() { return m_minimap; }
- void setCamera(Camera* camera) { m_camera = camera; }
+ Minimap *getMinimap() { return m_minimap; }
+ void setCamera(Camera *camera) { m_camera = camera; }
- Camera* getCamera () { return m_camera; }
+ Camera *getCamera() { return m_camera; }
bool shouldShowMinimap() const;
// IGameDef interface
- IItemDefManager* getItemDefManager() override;
- IWritableItemDefManager* getWritableItemDefManager() override;
- const NodeDefManager* getNodeDefManager() override;
- NodeDefManager* getWritableNodeDefManager() override;
- ICraftDefManager* getCraftDefManager() override;
- ITextureSource* getTextureSource();
- virtual IWritableShaderSource* getShaderSource();
+ IItemDefManager *getItemDefManager() override;
+ IWritableItemDefManager *getWritableItemDefManager() override;
+ const NodeDefManager *getNodeDefManager() override;
+ NodeDefManager *getWritableNodeDefManager() override;
+ ICraftDefManager *getCraftDefManager() override;
+ ITextureSource *getTextureSource();
+ virtual IWritableShaderSource *getShaderSource();
u16 allocateUnknownNodeId(const std::string &name) override;
- virtual ISoundManager* getSoundManager();
- MtEventManager* getEventManager();
- virtual ParticleManager* getParticleManager();
- bool checkLocalPrivilege(const std::string &priv){ return checkPrivilege(priv); }
- virtual scene::IAnimatedMesh* getMesh(const std::string &filename, bool cache = false);
- const std::string* getModFile(std::string filename);
+ virtual ISoundManager *getSoundManager();
+ MtEventManager *getEventManager();
+ virtual ParticleManager *getParticleManager();
+ bool checkLocalPrivilege(const std::string &priv) { return checkPrivilege(priv); }
+ virtual scene::IAnimatedMesh *getMesh(
+ const std::string &filename, bool cache = false);
+ const std::string *getModFile(std::string filename);
std::string getModStoragePath() const override;
bool registerModStorage(ModMetadata *meta) override;
@@ -380,7 +377,7 @@ public:
// 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 from_media_push = false);
+ bool from_media_push = false);
// Send a request for conventional media transfer
void request_media(const std::vector<std::string> &file_requests);
@@ -388,10 +385,7 @@ public:
void makeScreenshot();
- inline void pushToChatQueue(ChatMessage *cec)
- {
- m_chat_queue.push(cec);
- }
+ inline void pushToChatQueue(ChatMessage *cec) { m_chat_queue.push(cec); }
ClientScripting *getScript() { return m_script; }
const bool modsLoaded() const { return m_mods_loaded; }
@@ -402,26 +396,17 @@ public:
const Address getServerAddress();
- const std::string &getAddressName() const
- {
- return m_address_name;
- }
+ const std::string &getAddressName() const { return m_address_name; }
- inline u64 getCSMRestrictionFlags() const
- {
- return m_csm_restriction_flags;
- }
+ inline u64 getCSMRestrictionFlags() const { return m_csm_restriction_flags; }
inline bool checkCSMRestrictionFlag(CSMRestrictionFlags flag) const
{
- //return m_csm_restriction_flags & flag;
+ // return m_csm_restriction_flags & flag;
return false;
}
- u32 getCSMNodeRangeLimit() const
- {
- return m_csm_restriction_noderange;
- }
+ u32 getCSMNodeRangeLimit() const { return m_csm_restriction_noderange; }
inline std::unordered_map<u32, u32> &getHUDTranslationMap()
{
@@ -430,19 +415,19 @@ public:
bool joinModChannel(const std::string &channel) override;
bool leaveModChannel(const std::string &channel) override;
- bool sendModChannelMessage(const std::string &channel,
- const std::string &message) override;
+ bool sendModChannelMessage(
+ const std::string &channel, const std::string &message) override;
ModChannel *getModChannel(const std::string &channel) override;
const std::string &getFormspecPrepend() const
{
return m_env.getLocalPlayer()->formspec_prepend;
}
-
+
void sendPlayerPos(v3f pos);
void sendPlayerPos();
MeshUpdateThread m_mesh_update_thread;
-
+
private:
void loadMods();
bool checkBuiltinIntegrity();
@@ -451,13 +436,11 @@ private:
void peerAdded(con::Peer *peer) override;
void deletingPeer(con::Peer *peer, bool timeout) override;
- void initLocalMapSaving(const Address &address,
- const std::string &hostname,
+ void initLocalMapSaving(const Address &address, const std::string &hostname,
bool is_local_server);
void ReceiveAll();
-
void deleteAuthData();
// helper method shared with clientpackethandler
static AuthMechanism choseAuthMech(const u32 mechs);
@@ -470,8 +453,7 @@ private:
void sendRemovedSounds(std::vector<s32> &soundList);
// Helper function
- inline std::string getPlayerName()
- { return m_env.getLocalPlayer()->getName(); }
+ inline std::string getPlayerName() { return m_env.getLocalPlayer()->getName(); }
bool canSendChatMessage() const;
@@ -488,7 +470,6 @@ private:
ISoundManager *m_sound;
MtEventManager *m_event;
-
ClientEnvironment m_env;
ParticleManager m_particle_manager;
std::unique_ptr<con::Connection> m_con;
@@ -516,8 +497,8 @@ private:
int m_crack_level = -1;
v3s16 m_crack_pos;
// 0 <= m_daynight_i < DAYNIGHT_CACHE_COUNT
- //s32 m_daynight_i;
- //u32 m_daynight_ratio;
+ // s32 m_daynight_i;
+ // u32 m_daynight_ratio;
std::queue<std::wstring> m_out_chat_queue;
u32 m_last_chat_message_sent;
float m_chat_message_allowance = 5.0f;
@@ -576,7 +557,7 @@ private:
// Detached inventories
// key = name
- std::unordered_map<std::string, Inventory*> m_detached_inventories;
+ std::unordered_map<std::string, Inventory *> m_detached_inventories;
// Storage for mesh data for creating multiple instances of the same mesh
StringMap m_mesh_data;