Add minetest.get_worldpath() for getting location for custom data

This commit is contained in:
Perttu Ahola 2012-02-28 20:41:26 +02:00
parent b3f4cbe157
commit b7fd3c8669
4 changed files with 15 additions and 0 deletions

View File

@ -118,6 +118,9 @@
-- {type="node", pos={x=, y=, z=}}
-- minetest.get_current_modname() -> string
-- minetest.get_modpath(modname) -> eg. "/home/user/.minetest/usermods/modname"
-- ^ Useful for loading additional .lua modules or static data from mod
-- minetest.get_worldpath(modname) -> eg. "/home/user/.minetest/world"
-- ^ Useful for storing custom data
--
-- minetest.debug(line)
-- ^ Goes to dstream

View File

@ -540,5 +540,6 @@ minetest.register_abm({
print("experimental modname="..dump(minetest.get_current_modname()))
print("experimental modpath="..dump(minetest.get_modpath("experimental")))
print("experimental worldpath="..dump(minetest.get_worldpath()))
-- END

View File

@ -3560,6 +3560,14 @@ static int l_get_modpath(lua_State *L)
return 1;
}
// get_worldpath()
static int l_get_worldpath(lua_State *L)
{
std::string worldpath = get_server(L)->getWorldPath();
lua_pushstring(L, worldpath.c_str());
return 1;
}
static const struct luaL_Reg minetest_f [] = {
{"debug", l_debug},
{"log", l_log},
@ -3576,6 +3584,7 @@ static const struct luaL_Reg minetest_f [] = {
{"get_hitting_properties", l_get_hitting_properties},
{"get_current_modname", l_get_current_modname},
{"get_modpath", l_get_modpath},
{"get_worldpath", l_get_worldpath},
{NULL, NULL}
};

View File

@ -525,6 +525,8 @@ public:
IWritableCraftDefManager* getWritableCraftDefManager();
const ModSpec* getModSpec(const std::string &modname);
std::string getWorldPath(){ return m_mapsavedir; }
private: