# Библиотека hud

```lua
-- Открывает инвентарь.
hud.open_inventory()

-- Закрывает инвентарь.
hud.close_inventory()

-- Открывает инвентарь и UI.
-- Если макет UI не существует - бросается исключение.
-- Если invid не указан, создаётся виртуальный (временный) инвентарь.
-- Возвращает invid или id виртуального инвентаря.
hud.open(
    -- Макет UI
    layoutid: str, 
    -- Не открывать инвентарь игрока
    [опционально] disablePlayerInventory: bool, 
    -- Инвентарь, к которому будет привязан UI макет
    [опционально] invid: int
) -> int


-- Открывает инвентарь и UI блока.
-- Если блок не имеет макета UI - бросается исключение.
-- Возвращает id инвентаря блока 
-- (при *"inventory-size"=0* создаётся виртуальный инвентарь, 
--  который удаляется после закрытия), и id макета UI. 
hud.open_block(x: int, y: int, z: int) -> int, str
```

> [!NOTE]
> Одновременно может быть открыт только один блок

```lua
-- Показывает элемент в режиме оверлея. 
-- Также показывает инвентарь игрока, если playerinv - **true**.
-- Через args можно указать массив значений параметров, что будут переданы
-- в on_open показываемого оверлея.
hud.show_overlay(layoutid: str, playerinv: bool, [опционально] args: table)

-- Добавляет постоянный элемент на экран. Элемент не удаляется при 
-- закрытии инвентаря. Чтобы не перекрывать затенение в режиме 
-- инвентаря нужно установить z-index элемента меньшим чем -1. 
-- В случае тега inventory, произойдет привязка слотов к инвентарю игрока.
hud.open_permanent(layoutid: str)

-- Удаляет элемент с экрана.
hud.close(layoutid: str)

-- Дает ID инвентаря открытого блока или 0.
hud.get_block_inventory() -> int

-- Дает ID игрока, к которому привязан пользовательский интерфейс.
hud.get_player() -> int

-- Открывает меню паузы.
hud.pause()

-- Закрывает меню паузы.
hud.resume()

-- Возвращает true если открыто меню паузы.
hud.is_paused() -> bool

-- Возвращает true если открыт инвентарь или оверлей.
hud.is_inventory_open() -> bool
```
