#include "network/peerhandler.h"
#include "gameparams.h"
#include <fstream>
+#include "util/numeric.h"
#define CLIENT_CHAT_MESSAGE_LIMIT_PER_10S 10.0f
void addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server=false, bool urgent=false);
void updateCameraOffset(v3s16 camera_offset)
- { m_mesh_update_thread.m_camera_offset = camera_offset; }
+ { m_mesh_update_manager.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.
{ return checkPrivilege(priv); }
virtual scene::IAnimatedMesh* getMesh(const std::string &filename, bool cache = false);
const std::string* getModFile(std::string filename);
- ModMetadataDatabase *getModStorageDatabase() override { return m_mod_storage_database; }
-
- bool registerModStorage(ModMetadata *meta) override;
- void unregisterModStorage(const std::string &name) override;
+ ModStorageDatabase *getModStorageDatabase() override { return m_mod_storage_database; }
// Migrates away old files-based mod storage if necessary
void migrateModStorage();
{
return m_env.getLocalPlayer()->formspec_prepend;
}
+ inline MeshGrid getMeshGrid()
+ {
+ return m_mesh_grid;
+ }
+
private:
void loadMods();
RenderingEngine *m_rendering_engine;
- MeshUpdateThread m_mesh_update_thread;
+ MeshUpdateManager m_mesh_update_manager;
ClientEnvironment m_env;
ParticleManager m_particle_manager;
std::unique_ptr<con::Connection> m_con;
std::vector<std::string> m_remote_media_servers;
// Media downloader, only exists during init
ClientMediaDownloader *m_media_downloader;
- // Set of media filenames pushed by server at runtime
- std::unordered_set<std::string> m_media_pushed_files;
// Pending downloads of dynamic media (key: token)
std::vector<std::pair<u32, std::shared_ptr<SingleMediaDownloader>>> m_pending_media_downloads;
// Client modding
ClientScripting *m_script = nullptr;
- std::unordered_map<std::string, ModMetadata *> m_mod_storages;
- ModMetadataDatabase *m_mod_storage_database = nullptr;
+ ModStorageDatabase *m_mod_storage_database = nullptr;
float m_mod_storage_save_timer = 10.0f;
std::vector<ModSpec> m_mods;
StringMap m_mod_vfs;
u32 m_csm_restriction_noderange = 8;
std::unique_ptr<ModChannelMgr> m_modchannel_mgr;
+
+ // The number of blocks the client will combine for mesh generation.
+ MeshGrid m_mesh_grid;
};