Apply various fixes to several things

master
kwolekr 2013-06-27 22:33:31 -04:00
parent 6b3169e4d0
commit 9e100bc42b
4 changed files with 15 additions and 6 deletions

View File

@ -1123,7 +1123,7 @@ minetest.get_mapgen_object(objectname)
^ Return requested mapgen object if available (see Mapgen objects) ^ Return requested mapgen object if available (see Mapgen objects)
minetest.set_mapgen_params(MapgenParams) minetest.set_mapgen_params(MapgenParams)
^ Set map generation parameters ^ Set map generation parameters
^ Function can *only* be called within a minetest.on_mapgen_init() callback ^ Function cannot be called after the registration period; only initialization and on_mapgen_init
^ Takes a table as an argument with the fields mgname, seed, water_level, flags, and flagmask. ^ Takes a table as an argument with the fields mgname, seed, water_level, flags, and flagmask.
^ Leave field unset to leave that parameter unchanged ^ Leave field unset to leave that parameter unchanged
^ flagmask field must be set to all mapgen flags that are being modified ^ flagmask field must be set to all mapgen flags that are being modified

View File

@ -59,9 +59,9 @@ EmergeManager::EmergeManager(IGameDef *gamedef) {
this->biomedef = new BiomeDefManager(); this->biomedef = new BiomeDefManager();
this->params = NULL; this->params = NULL;
this->luaoverride_params = NULL; this->luaoverride_params = NULL;
this->luaoverride_params_modified = 0; this->luaoverride_params_modified = 0;
this->luaoverride_flagmask = 0; this->luaoverride_flagmask = 0;
mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info"); mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info");

View File

@ -579,6 +579,8 @@ int ModApiEnvMod::l_get_mapgen_object(lua_State *L)
EmergeManager *emerge = getServer(L)->getEmergeManager(); EmergeManager *emerge = getServer(L)->getEmergeManager();
Mapgen *mg = emerge->getCurrentMapgen(); Mapgen *mg = emerge->getCurrentMapgen();
if (!mg)
return 0;
size_t maplen = mg->csize.X * mg->csize.Z; size_t maplen = mg->csize.X * mg->csize.Z;
@ -614,7 +616,7 @@ int ModApiEnvMod::l_get_mapgen_object(lua_State *L)
} }
break; } break; }
case MGOBJ_BIOMEMAP: { case MGOBJ_BIOMEMAP: {
if (!mg->heightmap) if (!mg->biomemap)
return 0; return 0;
lua_newtable(L); lua_newtable(L);
@ -625,6 +627,9 @@ int ModApiEnvMod::l_get_mapgen_object(lua_State *L)
break; } break; }
case MGOBJ_HEATMAP: { // Mapgen V7 specific objects case MGOBJ_HEATMAP: { // Mapgen V7 specific objects
case MGOBJ_HUMIDMAP: case MGOBJ_HUMIDMAP:
if (strcmp(emerge->params->mg_name.c_str(), "v7"))
return 0;
MapgenV7 *mgv7 = (MapgenV7 *)mg; MapgenV7 *mgv7 = (MapgenV7 *)mg;
float *arr = (mgobj == MGOBJ_HEATMAP) ? float *arr = (mgobj == MGOBJ_HEATMAP) ?

View File

@ -88,7 +88,7 @@ int LuaVoxelManip::l_set_data(lua_State *L)
int volume = vm->m_area.getVolume(); int volume = vm->m_area.getVolume();
for (int i = 0; i != volume; i++) { for (int i = 0; i != volume; i++) {
lua_rawgeti(L, 2, i + 1); lua_rawgeti(L, 2, i + 1);
content_t c = lua_tonumber(L, -1); content_t c = lua_tointeger(L, -1);
vm->m_data[i].setContent(c); vm->m_data[i].setContent(c);
@ -224,7 +224,11 @@ int LuaVoxelManip::create_object(lua_State *L)
{ {
NO_MAP_LOCK_REQUIRED; NO_MAP_LOCK_REQUIRED;
Map *map = &(get_scriptapi(L)->getEnv()->getMap()); Environment *env = get_scriptapi(L)->getEnv();
if (!env)
return 0;
Map *map = &(env->getMap());
LuaVoxelManip *o = new LuaVoxelManip(map); LuaVoxelManip *o = new LuaVoxelManip(map);
*(void **)(lua_newuserdata(L, sizeof(void *))) = o; *(void **)(lua_newuserdata(L, sizeof(void *))) = o;