diff options
author | kwolekr <kwolekr@minetest.net> | 2016-06-24 18:15:56 -0400 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2016-07-03 15:38:36 -0400 |
commit | 3c63c3044d5e4ca36c2649c530f31622581d90fd (patch) | |
tree | b7924100f14f5626c11d534e2ad3602e269ac1df /src/emerge.h | |
parent | 92705306bfb4994107a43514f29997cea15d48dc (diff) | |
download | minetest-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/emerge.h')
-rw-r--r-- | src/emerge.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/emerge.h b/src/emerge.h index 303a35529..cf0677145 100644 --- a/src/emerge.h +++ b/src/emerge.h @@ -97,8 +97,16 @@ public: u32 gen_notify_on; std::set<u32> gen_notify_on_deco_ids; - // Map generation parameters - MapgenParams params; + // Parameters passed to mapgens owned by ServerMap + // TODO(hmmmm): Remove this after mapgen helper methods using them + // are moved to ServerMap + MapgenParams *mgparams; + + // Hackish workaround: + // For now, EmergeManager must hold onto a ptr to the Map's setting manager + // since the Map can only be accessed through the Environment, and the + // Environment is not created until after script initialization. + MapSettingsManager *map_settings_mgr; // Managers of various map generation-related components BiomeManager *biomemgr; @@ -110,8 +118,7 @@ public: EmergeManager(IGameDef *gamedef); ~EmergeManager(); - void loadMapgenParams(); - void initMapgens(); + bool initMapgens(MapgenParams *mgparams); void startThreads(); void stopThreads(); |