summaryrefslogtreecommitdiff
path: root/src/mapgen.h
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2016-06-24 18:15:56 -0400
committerkwolekr <kwolekr@minetest.net>2016-07-03 15:38:36 -0400
commit3c63c3044d5e4ca36c2649c530f31622581d90fd (patch)
treeb7924100f14f5626c11d534e2ad3602e269ac1df /src/mapgen.h
parent92705306bfb4994107a43514f29997cea15d48dc (diff)
downloadminetest-3c63c3044d5e4ca36c2649c530f31622581d90fd.tar.gz
minetest-3c63c3044d5e4ca36c2649c530f31622581d90fd.tar.bz2
minetest-3c63c3044d5e4ca36c2649c530f31622581d90fd.zip
Add MapSettingsManager and new mapgen setting script API functions
This commit refactors the majority of the Mapgen settings system. - MapgenParams is now owned by MapSettingsManager, itself a part of ServerMap, instead of the EmergeManager. - New Script API functions added: core.get_mapgen_setting core.get_mapgen_setting_noiseparams, core.set_mapgen_setting, and core.set_mapgen_setting_noiseparams. - minetest.get/set_mapgen_params are deprecated by the above new functions. - It is now possible to view and modify any arbitrary mapgen setting from a mod, rather than the base MapgenParams structure. - MapgenSpecificParams has been removed.
Diffstat (limited to 'src/mapgen.h')
-rw-r--r--src/mapgen.h20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/mapgen.h b/src/mapgen.h
index 618a2f6b8..5fcf2a365 100644
--- a/src/mapgen.h
+++ b/src/mapgen.h
@@ -119,37 +119,29 @@ enum MapgenType {
MAPGEN_INVALID,
};
-struct MapgenSpecificParams {
- virtual void readParams(const Settings *settings) = 0;
- virtual void writeParams(Settings *settings) const = 0;
- virtual ~MapgenSpecificParams() {}
-};
-
struct MapgenParams {
- std::string mg_name;
+ MapgenType mgtype;
s16 chunksize;
u64 seed;
s16 water_level;
u32 flags;
BiomeParams *bparams;
- MapgenSpecificParams *sparams;
MapgenParams() :
- mg_name(MAPGEN_DEFAULT_NAME),
+ mgtype(MAPGEN_DEFAULT),
chunksize(5),
seed(0),
water_level(1),
flags(MG_CAVES | MG_LIGHT | MG_DECORATIONS),
- bparams(NULL),
- sparams(NULL)
+ bparams(NULL)
{
}
virtual ~MapgenParams();
- void load(const Settings &settings);
- void save(Settings &settings) const;
+ virtual void readParams(const Settings *settings);
+ virtual void writeParams(Settings *settings) const;
};
@@ -217,7 +209,7 @@ public:
static const char *getMapgenName(MapgenType mgtype);
static Mapgen *createMapgen(MapgenType mgtype, int mgid,
MapgenParams *params, EmergeManager *emerge);
- static MapgenSpecificParams *createMapgenParams(MapgenType mgtype);
+ static MapgenParams *createMapgenParams(MapgenType mgtype);
static void getMapgenNames(std::vector<const char *> *mgnames, bool include_hidden);
private: