#include "network/connection.h"
#include "environment.h"
#include "irrlichttypes_extrabloated.h"
-#include "jthread/jmutex.h"
+#include "threading/mutex.h"
#include <ostream>
#include <map>
#include <set>
u32 size()
{
- JMutexAutoLock lock(m_mutex);
+ MutexAutoLock lock(m_mutex);
return m_queue.size();
}
private:
std::vector<QueuedMeshUpdate*> m_queue;
std::set<v3s16> m_urgents;
- JMutex m_mutex;
+ Mutex m_mutex;
};
struct MeshUpdateResult
}
};
-class MeshUpdateThread : public JThread
+class MeshUpdateThread : public UpdateThread
{
-public:
+private:
+ MeshUpdateQueue m_queue_in;
- MeshUpdateThread(IGameDef *gamedef):
- m_gamedef(gamedef)
- {
- }
+protected:
+ virtual void doUpdate();
- void * Thread();
+public:
- MeshUpdateQueue m_queue_in;
+ MeshUpdateThread() : UpdateThread("Mesh") {}
+ void enqueueUpdate(v3s16 p, MeshMakeData *data,
+ bool ack_block_to_server, bool urgent);
MutexedQueue<MeshUpdateResult> m_queue_out;
- IGameDef *m_gamedef;
-
v3s16 m_camera_offset;
};
bool accessDenied()
{ return m_access_denied; }
+ bool reconnectRequested() { return m_access_denied_reconnect; }
+
std::string accessDeniedReason()
{ return m_access_denied_reason; }
Mapper* getMapper ()
{ return m_mapper; }
+ bool isMinimapDisabledByServer()
+ { return m_minimap_disabled_by_server; }
+
// IGameDef interface
virtual IItemDefManager* getItemDefManager();
virtual INodeDefManager* getNodeDefManager();
con::Connection m_con;
IrrlichtDevice *m_device;
Mapper *m_mapper;
+ bool m_minimap_disabled_by_server;
// Server serialization version
u8 m_server_ser_ver;
+
// Used version of the protocol with server
+ // Values smaller than 25 only mean they are smaller than 25,
+ // and aren't accurate. We simply just don't know, because
+ // the server didn't send the version back then.
+ // If 0, server init hasn't been received yet.
u8 m_proto_ver;
+
u16 m_playeritem;
bool m_inventory_updated;
Inventory *m_inventory_from_server;
bool m_access_denied;
+ bool m_access_denied_reconnect;
std::string m_access_denied_reason;
std::queue<ClientEvent> m_client_event_queue;
bool m_itemdef_received;
// TODO: Add callback to update these when g_settings changes
bool m_cache_smooth_lighting;
bool m_cache_enable_shaders;
+
+ DISABLE_CLASS_COPY(Client);
};
#endif // !CLIENT_HEADER