mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-16 18:05:22 +02:00
Give the Mapgen on each EmergeThread its own Biome/Ore/Deco/SchemManager copy
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user