NUM_GENNOTIFY_TYPES
};
+// TODO(hmmmm/paramat): make stone type selection dynamic
+enum MgStoneType {
+ STONE,
+ DESERT_STONE,
+ SANDSTONE,
+};
+
struct GenNotifyEvent {
GenNotifyType type;
v3s16 pos;
private:
u32 m_notify_on;
std::set<u32> *m_notify_on_deco_ids;
- std::vector<GenNotifyEvent> m_notify_events;
+ std::list<GenNotifyEvent> m_notify_events;
};
struct MapgenSpecificParams {
virtual ~MapgenSpecificParams() {}
};
-class MapgenParams {
-public:
+struct MapgenParams {
std::string mg_name;
s16 chunksize;
u64 seed;
u32 flags;
NoiseParams np_biome_heat;
+ NoiseParams np_biome_heat_blend;
NoiseParams np_biome_humidity;
+ NoiseParams np_biome_humidity_blend;
MapgenSpecificParams *sparams;
seed(0),
water_level(1),
flags(MG_TREES | MG_CAVES | MG_LIGHT),
- np_biome_heat(NoiseParams(50, 50, v3f(500.0, 500.0, 500.0), 5349, 3, 0.5, 2.0)),
- np_biome_humidity(NoiseParams(50, 50, v3f(500.0, 500.0, 500.0), 842, 3, 0.5, 2.0)),
+ np_biome_heat(NoiseParams(50, 50, v3f(750.0, 750.0, 750.0), 5349, 3, 0.5, 2.0)),
+ np_biome_heat_blend(NoiseParams(0, 1.5, v3f(8.0, 8.0, 8.0), 13, 2, 1.0, 2.0)),
+ np_biome_humidity(NoiseParams(50, 50, v3f(750.0, 750.0, 750.0), 842, 3, 0.5, 2.0)),
+ np_biome_humidity_blend(NoiseParams(0, 1.5, v3f(8.0, 8.0, 8.0), 90003, 2, 1.0, 2.0)),
sparams(NULL)
{}
static u32 getBlockSeed2(v3s16 p, int seed);
s16 findGroundLevelFull(v2s16 p2d);
s16 findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax);
- void initHeightMap(s16 *dest, size_t len);
void updateHeightmap(v3s16 nmin, v3s16 nmax);
void updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nmax);
virtual ~MapgenFactory() {}
};
-class GenElement {
-public:
- virtual ~GenElement() {}
- u32 id;
- std::string name;
-};
-
-class GenElementManager {
-public:
- static const char *ELEMENT_TITLE;
- static const size_t ELEMENT_LIMIT = -1;
-
- GenElementManager(IGameDef *gamedef);
- virtual ~GenElementManager();
-
- virtual GenElement *create(int type) = 0;
-
- virtual u32 add(GenElement *elem);
- virtual GenElement *get(u32 id);
- virtual GenElement *update(u32 id, GenElement *elem);
- virtual GenElement *remove(u32 id);
- virtual void clear();
-
- virtual GenElement *getByName(const std::string &name);
-
-protected:
- INodeDefManager *m_ndef;
- std::vector<GenElement *> m_elements;
-};
-
#endif