Give the Mapgen on each EmergeThread its own Biome/Ore/Deco/SchemManager copy
[oweals/minetest.git] / src / mapgen / mapgen.h
index dc325c7916fca071bd3092ab1ac84b616b4c315e..7845c5349fd533aef45a5f83bfe36485f584b1a5 100644 (file)
@@ -51,6 +51,7 @@ class Biome;
 class BiomeGen;
 struct BiomeParams;
 class BiomeManager;
+class EmergeParams;
 class EmergeManager;
 class MapBlock;
 class VoxelManipulator;
@@ -87,10 +88,10 @@ struct GenNotifyEvent {
 class GenerateNotifier {
 public:
        GenerateNotifier() = default;
-       GenerateNotifier(u32 notify_on, std::set<u32> *notify_on_deco_ids);
+       GenerateNotifier(u32 notify_on, const std::set<u32> *notify_on_deco_ids);
 
        void setNotifyOn(u32 notify_on);
-       void setNotifyOnDecoIds(std::set<u32> *notify_on_deco_ids);
+       void setNotifyOnDecoIds(const std::set<u32> *notify_on_deco_ids);
 
        bool addEvent(GenNotifyType type, v3s16 pos, u32 id=0);
        void getEvents(std::map<std::string, std::vector<v3s16> > &event_map);
@@ -98,7 +99,7 @@ public:
 
 private:
        u32 m_notify_on = 0;
-       std::set<u32> *m_notify_on_deco_ids;
+       const std::set<u32> *m_notify_on_deco_ids;
        std::list<GenNotifyEvent> m_notify_events;
 };
 
@@ -176,7 +177,7 @@ public:
        GenerateNotifier gennotify;
 
        Mapgen() = default;
-       Mapgen(int mapgenid, MapgenParams *params, EmergeManager *emerge);
+       Mapgen(int mapgenid, MapgenParams *params, EmergeParams *emerge);
        virtual ~Mapgen() = default;
        DISABLE_CLASS_COPY(Mapgen);
 
@@ -215,7 +216,7 @@ public:
        static MapgenType getMapgenType(const std::string &mgname);
        static const char *getMapgenName(MapgenType mgtype);
        static Mapgen *createMapgen(MapgenType mgtype, MapgenParams *params,
-               EmergeManager *emerge);
+               EmergeParams *emerge);
        static MapgenParams *createMapgenParams(MapgenType mgtype);
        static void getMapgenNames(std::vector<const char *> *mgnames, bool include_hidden);
        static void setDefaultSettings(Settings *settings);
@@ -243,7 +244,7 @@ private:
 */
 class MapgenBasic : public Mapgen {
 public:
-       MapgenBasic(int mapgenid, MapgenParams *params, EmergeManager *emerge);
+       MapgenBasic(int mapgenid, MapgenParams *params, EmergeParams *emerge);
        virtual ~MapgenBasic();
 
        virtual void generateBiomes();
@@ -254,7 +255,7 @@ public:
        virtual void generateDungeons(s16 max_stone_y);
 
 protected:
-       EmergeManager *m_emerge;
+       EmergeParams *m_emerge;
        BiomeManager *m_bmgr;
 
        Noise *noise_filler_depth;