From: Perttu Ahola Date: Sun, 1 Apr 2012 07:08:52 +0000 (+0300) Subject: Allow getting the path of builtin.lua using minetest.get_modpath("__builtin") X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=56ba193c77109687b9115be0ccb1730922caef65;p=zefram%2Fminetest%2Fminetest_engine.git Allow getting the path of builtin.lua using minetest.get_modpath("__builtin") --- diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index a86c56f9..ac514220 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -3928,8 +3928,13 @@ static int l_get_current_modname(lua_State *L) // get_modpath(modname) static int l_get_modpath(lua_State *L) { - const char *modname = luaL_checkstring(L, 1); + std::string modname = luaL_checkstring(L, 1); // Do it + if(modname == "__builtin"){ + std::string path = get_server(L)->getBuiltinLuaPath(); + lua_pushstring(L, path.c_str()); + return 1; + } const ModSpec *mod = get_server(L)->getModSpec(modname); if(!mod){ lua_pushnil(L); diff --git a/src/server.cpp b/src/server.cpp index b015e103..c06fcb0f 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -964,8 +964,7 @@ Server::Server( } // Path to builtin.lua - std::string builtinpath = porting::path_share + DIR_DELIM + "builtin" - + DIR_DELIM + "builtin.lua"; + std::string builtinpath = getBuiltinLuaPath() + DIR_DELIM + "builtin.lua"; // Create world if it doesn't exist if(!initializeWorld(m_path_world, m_gamespec.id)) @@ -4410,6 +4409,10 @@ const ModSpec* Server::getModSpec(const std::string &modname) } return NULL; } +std::string Server::getBuiltinLuaPath() +{ + return porting::path_share + DIR_DELIM + "builtin"; +} v3f findSpawnPos(ServerMap &map) { diff --git a/src/server.h b/src/server.h index abe466b1..9cbefa64 100644 --- a/src/server.h +++ b/src/server.h @@ -553,6 +553,7 @@ public: IWritableCraftDefManager* getWritableCraftDefManager(); const ModSpec* getModSpec(const std::string &modname); + std::string getBuiltinLuaPath(); std::string getWorldPath(){ return m_path_world; }