mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add Lua on_mapgen_init callback, and minetest.set_mapgen_params API
This commit is contained in:
parent
18882a4d26
commit
2e292b67a0
18 changed files with 163 additions and 14 deletions
|
@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
#include "common/c_converter.h"
|
||||
#include "log.h"
|
||||
#include "environment.h"
|
||||
#include "mapgen.h"
|
||||
#include "lua_api/l_env.h"
|
||||
|
||||
extern "C" {
|
||||
|
@ -55,6 +56,33 @@ void ScriptApiEnv::environment_Step(float dtime)
|
|||
runCallbacks(1, RUN_CALLBACKS_MODE_FIRST);
|
||||
}
|
||||
|
||||
void ScriptApiEnv::environment_OnMapgenInit(MapgenParams *mgparams)
|
||||
{
|
||||
SCRIPTAPI_PRECHECKHEADER
|
||||
|
||||
// Get minetest.registered_on_mapgen_inits
|
||||
lua_getglobal(L, "minetest");
|
||||
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);
|
||||
lua_pushstring(L, flagstr.c_str());
|
||||
lua_setfield(L, -2, "flags");
|
||||
|
||||
runCallbacks(1, RUN_CALLBACKS_MODE_FIRST);
|
||||
}
|
||||
|
||||
void ScriptApiEnv::initializeEnvironment(ServerEnvironment *env)
|
||||
{
|
||||
SCRIPTAPI_PRECHECKHEADER
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue