Beispiel #1
0
void ScriptApiEnv::environment_OnMapgenInit(MapgenParams *mgparams)
{
	SCRIPTAPI_PRECHECKHEADER
	
	// Get core.registered_on_mapgen_inits
	lua_getglobal(L, "core");
	lua_getfield(L, -1, "registered_on_mapgen_inits");

	// Call callbacks
	lua_newtable(L);
	
	lua_pushstring(L, mgparams->mg_name.c_str());
	lua_setfield(L, -2, "mgname");
	
	lua_pushinteger(L, mgparams->seed);
	lua_setfield(L, -2, "seed");
	
	lua_pushinteger(L, mgparams->water_level);
	lua_setfield(L, -2, "water_level");
	
	std::string flagstr = writeFlagString(mgparams->flags,
		flagdesc_mapgen, (u32)-1);
	lua_pushstring(L, flagstr.c_str());
	lua_setfield(L, -2, "flags");
	
	script_run_callbacks(L, 1, RUN_CALLBACKS_MODE_FIRST);
}
int ModApiMapgen::l_get_mapgen_params(lua_State *L)
{
	MapgenParams *params = &getServer(L)->getEmergeManager()->params;

	lua_newtable(L);

	lua_pushstring(L, params->mg_name.c_str());
	lua_setfield(L, -2, "mgname");

	lua_pushinteger(L, params->seed);
	lua_setfield(L, -2, "seed");

	lua_pushinteger(L, params->water_level);
	lua_setfield(L, -2, "water_level");

	lua_pushinteger(L, params->liquid_pressure);
	lua_setfield(L, -2, "liquid_pressure");

	lua_pushinteger(L, params->chunksize);
	lua_setfield(L, -2, "chunksize");

	std::string flagstr = writeFlagString(params->flags, flagdesc_mapgen, (u32)-1);
	lua_pushstring(L, flagstr.c_str());
	lua_setfield(L, -2, "flags");

	return 1;
}
Beispiel #3
0
bool Settings::setFlagStr(const std::string &name, u32 flags,
	const FlagDesc *flagdesc, u32 flagmask)
{
	return set(name, writeFlagString(flags, flagdesc, flagmask));
}
Beispiel #4
0
void push_flags_string(lua_State *L, FlagDesc *flagdesc, u32 flags, u32 flagmask)
{
	std::string flagstring = writeFlagString(flags, flagdesc, flagmask);
	lua_pushlstring(L, flagstring.c_str(), flagstring.size());
}