Merge pull request #668 from MihailRis/add-hud-is-open

add hud.is_open(layoutid) -> bool
This commit is contained in:
MihailRis
2025-11-09 23:32:28 +03:00
committed by GitHub
5 changed files with 28 additions and 0 deletions
+6
View File
@@ -20,6 +20,12 @@ hud.open(
[optional] invid: int [optional] invid: int
) -> int ) -> int
-- Returns true if specified layout is open.
hud.is_open(
layoutid: str
) -> bool
-- Open block UI and inventory. -- Open block UI and inventory.
-- Throws an exception if block has no UI layout. -- Throws an exception if block has no UI layout.
-- Returns block inventory ID (if *"inventory-size"=0* a virtual -- Returns block inventory ID (if *"inventory-size"=0* a virtual
+4
View File
@@ -20,6 +20,10 @@ hud.open(
[опционально] invid: int [опционально] invid: int
) -> int ) -> int
-- Возвращает true если указаный макет UI открыт.
hud.is_open(
layoutid: str
) -> bool
-- Открывает инвентарь и UI блока. -- Открывает инвентарь и UI блока.
-- Если блок не имеет макета UI - бросается исключение. -- Если блок не имеет макета UI - бросается исключение.
+10
View File
@@ -756,3 +756,13 @@ void Hud::setAllowPause(bool flag) {
} }
allowPause = flag; allowPause = flag;
} }
bool Hud::isOpen(const std::string& layoutid) const {
for (const auto& element : elements) {
auto doc = element.getDocument();
if (doc && doc->getId() == layoutid) {
return true;
}
}
return false;
}
+2
View File
@@ -213,6 +213,8 @@ public:
void setAllowPause(bool flag); void setAllowPause(bool flag);
bool isOpen(const std::string& layoutid) const;
static bool showGeneratorMinimap; static bool showGeneratorMinimap;
/// @brief Runtime updating debug visualization texture /// @brief Runtime updating debug visualization texture
+6
View File
@@ -189,6 +189,11 @@ static int l_reload_script(lua::State* L) {
return 0; return 0;
} }
static int l_is_open(lua::State* L) {
auto layoutid = lua::require_string(L, 1);
return lua::pushboolean(L, hud->isOpen(layoutid));
}
const luaL_Reg hudlib[] = { const luaL_Reg hudlib[] = {
{"open_inventory", wrap_hud<l_open_inventory>}, {"open_inventory", wrap_hud<l_open_inventory>},
{"close_inventory", wrap_hud<l_close_inventory>}, {"close_inventory", wrap_hud<l_close_inventory>},
@@ -208,5 +213,6 @@ const luaL_Reg hudlib[] = {
{"_set_debug_cheats", wrap_hud<l_set_debug_cheats>}, {"_set_debug_cheats", wrap_hud<l_set_debug_cheats>},
{"set_allow_pause", wrap_hud<l_set_allow_pause>}, {"set_allow_pause", wrap_hud<l_set_allow_pause>},
{"reload_script", wrap_hud<l_reload_script>}, {"reload_script", wrap_hud<l_reload_script>},
{"is_open", wrap_hud<l_is_open>},
{nullptr, nullptr} {nullptr, nullptr}
}; };