diff options
author | kwolekr <kwolekr@minetest.net> | 2014-12-10 00:37:09 -0500 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2014-12-10 00:37:09 -0500 |
commit | fb2bc956b18bd70a47bff00d5726d4754867856a (patch) | |
tree | 1e8cb37de5f6b4db15cedec2e1b036e807710c06 /src/script/lua_api/l_mapgen.cpp | |
parent | 88c28414f4a88c8d66f9cadb150896f9e25527ae (diff) | |
download | minetest-fb2bc956b18bd70a47bff00d5726d4754867856a.tar.gz minetest-fb2bc956b18bd70a47bff00d5726d4754867856a.tar.bz2 minetest-fb2bc956b18bd70a47bff00d5726d4754867856a.zip |
Noise: Create a deep copy of NoiseParams
Diffstat (limited to 'src/script/lua_api/l_mapgen.cpp')
-rw-r--r-- | src/script/lua_api/l_mapgen.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 0e3d219a4..3176b920c 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -546,7 +546,14 @@ int ModApiMapgen::l_register_ore(lua_State *L) getflagsfield(L, index, "flags", flagdesc_ore, &ore->flags, NULL); lua_getfield(L, index, "noise_params"); - ore->np = get_noiseparams(L, -1); + if (read_noiseparams(L, -1, &ore->np)) { + ore->flags |= OREFLAG_USE_NOISE; + } else if (ore->NEEDS_NOISE) { + errorstream << "register_ore: specified ore type requires valid " + "noise parameters" << std::endl; + delete ore; + return 0; + } lua_pop(L, 1); u32 id = oremgr->add(ore); |