Skip to content

Commit

Permalink
Rename and repurpose minetest.set_noiseparam_defaults to set_noiseparams
Browse files Browse the repository at this point in the history
  • Loading branch information
kwolekr committed Dec 10, 2014
1 parent f2c1851 commit d50878d
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 29 deletions.
8 changes: 4 additions & 4 deletions doc/lua_api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1547,10 +1547,10 @@ minetest.set_mapgen_params(MapgenParams)
^ Leave field unset to leave that parameter unchanged
^ flags contains a comma-delimited string of flags to set, or if the prefix "no" is attached, clears instead.
^ flags is in the same format and has the same options as 'mg_flags' in minetest.conf
minetest.set_noiseparam_defaults({np1=NoiseParams, np2= NoiseParams, ...})
^ Sets the default value of a noiseparam setting
^ Takes a table as an argument that maps one or more setting names to NoiseParams structures
^ Possible setting names consist of any NoiseParams setting exposed through the global settings
minetest.set_noiseparams(name, noiseparams, set_default)
^ Sets the noiseparams setting of 'name' to the noiseparams table specified in 'noiseparams'.
^ 'set_default', is an optional boolean (default of true) that specifies whether the setting
^ should be applied to the default config or current active config
minetest.clear_objects()
^ clear all objects in the environments
minetest.line_of_sight(pos1, pos2, stepsize) -> true/false, pos
Expand Down
33 changes: 10 additions & 23 deletions src/script/lua_api/l_mapgen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -262,32 +262,19 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L)
return 0;
}

// set_noiseparam_defaults({np1={noise params}, ...})
// set default values for noise parameters if not present in global settings
int ModApiMapgen::l_set_noiseparam_defaults(lua_State *L)
// set_noiseparams(name, noiseparams, set_default)
// set global config values for noise parameters
int ModApiMapgen::l_set_noiseparams(lua_State *L)
{
NoiseParams np;
std::string val, name;
const char *name = luaL_checkstring(L, 1);

if (!lua_istable(L, 1))
NoiseParams np;
if (!read_noiseparams(L, 2, &np))
return 0;

lua_pushnil(L);
while (lua_next(L, 1)) {
if (read_noiseparams(L, -1, &np)) {
/// TODO(hmmmm): Update this for newer noiseparam formats
/// Right now this is safe because serializeStructToString() won't
/// touch memory outside of what the format string specifies
if (!serializeStructToString(&val, NOISEPARAMS_FMT_STR, &np))
continue;
if (!lua_isstring(L, -2))
continue;

name = lua_tostring(L, -2);
g_settings->setDefault(name, val);
}
lua_pop(L, 1);
}
bool set_default = lua_isboolean(L, 3) ? lua_toboolean(L, 3) : true;

g_settings->setNoiseParams(name, np, set_default);

return 0;
}
Expand Down Expand Up @@ -682,7 +669,7 @@ void ModApiMapgen::Initialize(lua_State *L, int top)
API_FCT(get_mapgen_object);

API_FCT(set_mapgen_params);
API_FCT(set_noiseparam_defaults);
API_FCT(set_noiseparams);
API_FCT(set_gen_notify);

API_FCT(register_biome);
Expand Down
4 changes: 2 additions & 2 deletions src/script/lua_api/l_mapgen.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ class ModApiMapgen : public ModApiBase {
// set mapgen parameters
static int l_set_mapgen_params(lua_State *L);

// set_noiseparam_defaults({np1={noise params}, ...})
static int l_set_noiseparam_defaults(lua_State *L);
// set_noiseparam_defaults(name, noiseparams, set_default)
static int l_set_noiseparams(lua_State *L);

// set_gen_notify(flagstring)
static int l_set_gen_notify(lua_State *L);
Expand Down

0 comments on commit d50878d

Please sign in to comment.