# Библиотека *input*

```lua
input.keycode(keyname: str) --> int
```

Возвращает код клавиши по имени, либо -1

```lua
input.mousecode(mousename: str) --> int
```

Возвращает код кнопки мыши по имени, либо -1

```lua
input.add_callback(bindname: str, callback: function)
```

Назначает функцию, которая будет вызываться при активации привязки. Пример:

```lua
input.add_callback("hud.inventory", function ()
    print("Inventory open key pressed")
end)
```

Можно назначить функцию на нажатие клавиши.

```lua
input.add_callback("key:space", function ()
    print("Space pressed")
end)
```

Также можно привязать время жизни функции к UI контейнеру, вместо HUD.
В таком случае, `input.add_callback` можно использовать до вызова `on_hud_open`.

```lua
input.add_callback("key:escape", function ()
    print("NO")
    return true -- предотвращает вызов назначенных ранее функций
end, document.root)
```

```lua
input.get_mouse_pos() --> {int, int}
```

Возвращает позицию курсора на экране.

```lua
input.get_mouse_delta() --> {int, int}
```

Возращает дельту позиции курсора.

```lua
input.get_bindings() --> массив строк
```

Возвращает названия всех доступных привязок.

```lua
input.get_binding_text(bindname: str) --> str
```

Возвращает текстовое представление кнопки по имени привязки.

```lua
input.is_active(bindname: str) --> bool
```

Проверяет активность привязки.

```lua
input.set_enabled(bindname: str, flag: bool)
```

Включает/выключает привязку до выхода из мира.

```lua
input.is_pressed(code: str) --> bool
```

Проверяет активность ввода по коду, состоящему из:
- типа ввода: key (клавиша) или mouse (кнопка мыши)
- код ввода: [имя клавиши](#имена-клавиш) или имя кнопки мыши (left, middle, right)

Пример: 
```lua
if input.is_pressed("key:enter") then
    ...
end
```
