]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mapgen.h
queued_commands must be a std::deque. RunCommandQueues needs to push packet on front...
[dragonfireclient.git] / src / mapgen.h
index 5bbdd724dd139fbb6c4934575c34adcce19970d9..5b5ed19a28b172d24e4cdac99db6a0a4e898ef34 100644 (file)
@@ -95,8 +95,8 @@ class GenerateNotifier {
 };
 
 struct MapgenSpecificParams {
-       virtual void readParams(Settings *settings) = 0;
-       virtual void writeParams(Settings *settings) = 0;
+       virtual void readParams(const Settings *settings) = 0;
+       virtual void writeParams(Settings *settings) const = 0;
        virtual ~MapgenSpecificParams() {}
 };
 
@@ -112,17 +112,19 @@ struct MapgenParams {
 
        MapgenSpecificParams *sparams;
 
-       MapgenParams()
-       {
-               mg_name     = DEFAULT_MAPGEN;
-               seed        = 0;
-               water_level = 1;
-               chunksize   = 5;
-               flags       = MG_TREES | MG_CAVES | MG_LIGHT;
-               sparams     = NULL;
-               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);
-       }
+       MapgenParams() :
+               mg_name(DEFAULT_MAPGEN),
+               chunksize(5),
+               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)),
+               sparams(NULL)
+       {}
+
+       void load(const Settings &settings);
+       void save(Settings &settings) const;
 };
 
 class Mapgen {
@@ -202,6 +204,8 @@ class GenElementManager {
 
        virtual GenElement *getByName(const std::string &name);
 
+       INodeDefManager *getNodeDef() { return m_ndef; }
+
 protected:
        INodeDefManager *m_ndef;
        std::vector<GenElement *> m_elements;