diff --git a/doc/en/scripting/builtins/libworld.md b/doc/en/scripting/builtins/libworld.md index afd8c240..349e9106 100644 --- a/doc/en/scripting/builtins/libworld.md +++ b/doc/en/scripting/builtins/libworld.md @@ -1,6 +1,9 @@ # *world* library ```lua +-- Checks if world is open +world.is_open() -> bool + -- Returns worlds information. world.get_list() -> tables array { -- world name diff --git a/doc/ru/scripting/builtins/libworld.md b/doc/ru/scripting/builtins/libworld.md index 31806de4..b82f3b53 100644 --- a/doc/ru/scripting/builtins/libworld.md +++ b/doc/ru/scripting/builtins/libworld.md @@ -1,6 +1,9 @@ # Библиотека *world* ```lua +-- Проверяет, открыт ли мир +world.is_open() -> bool + -- Возвращает информацию о мирах. world.get_list() -> массив таблиц { -- название мира diff --git a/src/logic/scripting/lua/libs/libworld.cpp b/src/logic/scripting/lua/libs/libworld.cpp index 04249299..06da877c 100644 --- a/src/logic/scripting/lua/libs/libworld.cpp +++ b/src/logic/scripting/lua/libs/libworld.cpp @@ -20,6 +20,10 @@ static WorldInfo& require_world_info() { return level->getWorld()->getInfo(); } +static int l_is_open(lua::State* L) { + return lua::pushboolean(L, level != nullptr); +} + static int l_get_list(lua::State* L) { auto paths = engine->getPaths(); auto worlds = paths->scanForWorlds(); @@ -98,6 +102,7 @@ static int l_get_generator(lua::State* L) { } const luaL_Reg worldlib[] = { + {"is_open", lua::wrap}, {"get_list", lua::wrap}, {"get_total_time", lua::wrap}, {"get_day_time", lua::wrap},