aboutsummaryrefslogtreecommitdiff
path: root/src/script/common
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2014-02-15 18:20:15 -0500
committerkwolekr <kwolekr@minetest.net>2014-02-15 19:13:14 -0500
commit3570f3e396acad4a6b5381d06c2dae5cf4e95fbd (patch)
tree1ce53a41271802efdd9f88de83b2c68e06cd2f33 /src/script/common
parentc87316487840fd176662207acef4fb15286e32e8 (diff)
downloadminetest-3570f3e396acad4a6b5381d06c2dae5cf4e95fbd.tar.gz
minetest-3570f3e396acad4a6b5381d06c2dae5cf4e95fbd.tar.bz2
minetest-3570f3e396acad4a6b5381d06c2dae5cf4e95fbd.zip
Add minetest.set_noiseparam_defaults() Lua API
Diffstat (limited to 'src/script/common')
-rw-r--r--src/script/common/c_content.cpp27
-rw-r--r--src/script/common/c_content.h3
2 files changed, 22 insertions, 8 deletions
diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp
index 8e4da1b05..74e1b0956 100644
--- a/src/script/common/c_content.cpp
+++ b/src/script/common/c_content.cpp
@@ -959,24 +959,35 @@ void luaentity_get(lua_State *L, u16 id)
/******************************************************************************/
NoiseParams *read_noiseparams(lua_State *L, int index)
{
+ NoiseParams *np = new NoiseParams;
+
+ if (!read_noiseparams_nc(L, index, np)) {
+ delete np;
+ np = NULL;
+ }
+
+ return np;
+}
+
+bool read_noiseparams_nc(lua_State *L, int index, NoiseParams *np)
+{
if (index < 0)
index = lua_gettop(L) + 1 + index;
if (!lua_istable(L, index))
- return NULL;
+ return false;
- NoiseParams *np = new NoiseParams;
+ np->offset = getfloatfield_default(L, index, "offset", 0.0);
+ np->scale = getfloatfield_default(L, index, "scale", 0.0);
+ np->persist = getfloatfield_default(L, index, "persist", 0.0);
+ np->seed = getintfield_default(L, index, "seed", 0);
+ np->octaves = getintfield_default(L, index, "octaves", 0);
- np->offset = getfloatfield_default(L, index, "offset", 0.0);
- np->scale = getfloatfield_default(L, index, "scale", 0.0);
lua_getfield(L, index, "spread");
np->spread = read_v3f(L, -1);
lua_pop(L, 1);
- np->seed = getintfield_default(L, index, "seed", 0);
- np->octaves = getintfield_default(L, index, "octaves", 0);
- np->persist = getfloatfield_default(L, index, "persist", 0.0);
- return np;
+ return true;
}
/******************************************************************************/
diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h
index 61617d7ab..9aed5ccfa 100644
--- a/src/script/common/c_content.h
+++ b/src/script/common/c_content.h
@@ -144,6 +144,9 @@ bool string_to_enum (const EnumString *spec,
NoiseParams* read_noiseparams (lua_State *L, int index);
+bool read_noiseparams_nc (lua_State *L, int index,
+ NoiseParams *np);
+
bool read_schematic (lua_State *L, int index,
DecoSchematic *dschem,
Server *server);