]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/emerge.h
Fix shift key producing space in console (#5777)
[dragonfireclient.git] / src / emerge.h
index 303a35529531673c95de0a04c2c80f343fec4f88..76653e6cdf84d5da2e2db71a5b6c6bf8d1943b95 100644 (file)
@@ -42,6 +42,7 @@ class BiomeManager;
 class OreManager;
 class DecorationManager;
 class SchematicManager;
+class Server;
 
 // Structure containing inputs/outputs for chunk generation
 struct BlockMakeData {
@@ -97,8 +98,16 @@ class EmergeManager {
        u32 gen_notify_on;
        std::set<u32> gen_notify_on_deco_ids;
 
-       // Map generation parameters
-       MapgenParams params;
+       // Parameters passed to mapgens owned by ServerMap
+       // TODO(hmmmm): Remove this after mapgen helper methods using them
+       // are moved to ServerMap
+       MapgenParams *mgparams;
+
+       // Hackish workaround:
+       // For now, EmergeManager must hold onto a ptr to the Map's setting manager
+       // since the Map can only be accessed through the Environment, and the
+       // Environment is not created until after script initialization.
+       MapSettingsManager *map_settings_mgr;
 
        // Managers of various map generation-related components
        BiomeManager *biomemgr;
@@ -107,11 +116,10 @@ class EmergeManager {
        SchematicManager *schemmgr;
 
        // Methods
-       EmergeManager(IGameDef *gamedef);
+       EmergeManager(Server *server);
        ~EmergeManager();
 
-       void loadMapgenParams();
-       void initMapgens();
+       bool initMapgens(MapgenParams *mgparams);
 
        void startThreads();
        void stopThreads();
@@ -149,7 +157,7 @@ class EmergeManager {
 
        Mutex m_queue_mutex;
        std::map<v3s16, BlockEmergeData> m_blocks_enqueued;
-       std::map<u16, u16> m_peer_queue_count;
+       UNORDERED_MAP<u16, u16> m_peer_queue_count;
 
        u16 m_qlimit_total;
        u16 m_qlimit_diskonly;