1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-09-15 18:57:08 +00:00

Give the Mapgen on each EmergeThread its own Biome/Ore/Deco/SchemManager copy

This commit is contained in:
sfan5 2020-04-10 02:05:20 +02:00 committed by Loïc Blot
parent 2062c80e21
commit 3c65d1acec
27 changed files with 225 additions and 77 deletions

View 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;