mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-11 17:51:04 +00:00
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.
This commit is contained in:
parent
92705306bf
commit
3c63c3044d
31 changed files with 890 additions and 315 deletions
|
@ -266,9 +266,6 @@ Server::Server(
|
|||
//lock environment
|
||||
MutexAutoLock envlock(m_env_mutex);
|
||||
|
||||
// Load mapgen params from Settings
|
||||
m_emerge->loadMapgenParams();
|
||||
|
||||
// Create the Map (loads map_meta.txt, overriding configured mapgen params)
|
||||
ServerMap *servermap = new ServerMap(path_world, this, m_emerge);
|
||||
|
||||
|
@ -331,8 +328,11 @@ Server::Server(
|
|||
|
||||
m_clients.setEnv(m_env);
|
||||
|
||||
if (!servermap->settings_mgr.makeMapgenParams())
|
||||
FATAL_ERROR("Couldn't create any mapgen type");
|
||||
|
||||
// Initialize mapgens
|
||||
m_emerge->initMapgens();
|
||||
m_emerge->initMapgens(servermap->getMapgenParams());
|
||||
|
||||
m_enable_rollback_recording = g_settings->getBool("enable_rollback_recording");
|
||||
if (m_enable_rollback_recording) {
|
||||
|
@ -402,11 +402,8 @@ Server::~Server()
|
|||
m_emerge->stopThreads();
|
||||
|
||||
// Delete things in the reverse order of creation
|
||||
delete m_env;
|
||||
|
||||
// N.B. the EmergeManager should be deleted after the Environment since Map
|
||||
// depends on EmergeManager to write its current params to the map meta
|
||||
delete m_emerge;
|
||||
delete m_env;
|
||||
delete m_rollback;
|
||||
delete m_banmanager;
|
||||
delete m_event;
|
||||
|
@ -655,7 +652,7 @@ void Server::AsyncRunStep(bool initial_step)
|
|||
m_env->getGameTime(),
|
||||
m_lag,
|
||||
m_gamespec.id,
|
||||
m_emerge->params.mg_name,
|
||||
Mapgen::getMapgenName(m_emerge->mgparams->mgtype),
|
||||
m_mods);
|
||||
counter = 0.01;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue