Skip to content

Commit 5130dbc

Browse files
committedOct 4, 2015
Allow setting chunksize in core.set_mapgen_params
1 parent 9f25aba commit 5130dbc

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed
 

Diff for: ‎src/emerge.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,12 @@ void EmergeManager::stopThreads()
256256
}
257257

258258

259+
bool EmergeManager::isRunning()
260+
{
261+
return m_threads_active;
262+
}
263+
264+
259265
bool EmergeManager::enqueueBlockEmerge(
260266
u16 peer_id,
261267
v3s16 blockpos,

Diff for: ‎src/emerge.h

+1
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ class EmergeManager {
115115

116116
void startThreads();
117117
void stopThreads();
118+
bool isRunning();
118119

119120
bool enqueueBlockEmerge(
120121
u16 peer_id,

Diff for: ‎src/script/lua_api/l_mapgen.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,11 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L)
619619
if (!lua_istable(L, 1))
620620
return 0;
621621

622-
MapgenParams *params = &getServer(L)->getEmergeManager()->params;
622+
EmergeManager *emerge = getServer(L)->getEmergeManager();
623+
if (emerge->isRunning())
624+
throw LuaError("Cannot set parameters while mapgen is running");
625+
626+
MapgenParams *params = &emerge->params;
623627
u32 flags = 0, flagmask = 0;
624628

625629
lua_getfield(L, 1, "mgname");
@@ -637,6 +641,10 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L)
637641
if (lua_isnumber(L, -1))
638642
params->water_level = lua_tointeger(L, -1);
639643

644+
lua_getfield(L, 1, "chunksize");
645+
if (lua_isnumber(L, -1))
646+
params->chunksize = lua_tointeger(L, -1);
647+
640648
warn_if_field_exists(L, 1, "flagmask",
641649
"Deprecated: flags field now includes unset flags.");
642650
lua_getfield(L, 1, "flagmask");

0 commit comments

Comments
 (0)
Please sign in to comment.