2024-11-07 20:44:00 +03:00

74 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Библиотека *rules*
```lua
rules.create(
-- имя правила
name: str,
-- значение по-умолчанию
default: bool,
-- функция-обработчик изменения значения
[опционально] handler: function
) -> int
```
Создаёт правило. Если указан обработчик, возвращает id для возможности удаления.
> [!NOTE]
> Созданием правила считается вызов rules.create с назначением значения по-умолчанию.
> Не созданные правила могут быть использованы, но сброс через rules.reset приведёт
> к установке значения nil.
```lua
rules.listen(
-- имя правила
name: str,
-- функция-обработчик изменения значения
handler: function
) -> int
```
Добавляет обработчик изменения значения правила.
Возвращает id для возможности удаления.
Также позволяет подписаться на правило до его создания.
```lua
rules.unlisten(name: str, id: int)
```
Удаляет обработчик правила по id, если он существует.
```lua
rules.get(name: str) -> bool | nil
```
Возвращает значение правила или nil, если оно ещё не было создано.
```lua
rules.set(name: str, value: bool)
```
Устанавливает значение правила, вызывая обработчики. Может использоваться и
до создания правила.
```lua
rules.reset(name: str)
```
Сбрасывает значение правила к значению по-умолчанию.
## Стандартные правила
| Имя | Описание | По-умолчанию |
| ---------------------- | --------------------------------------------------------------- | ------------ |
| cheat-commands | Разрешить команды, имена которых есть в массиве console.cheats. | true |
| allow-content-access | Разрешить панель доступа к контенту. | true |
| allow-flight | Разрешить полёт | true |
| allow-noclip | Разрешить включение noclip. | true |
| allow-attack | Разрешить атаковать сущности. | true |
| allow-destroy | Разрешить разрушение блоков. | true |
| allow-cheat-movement | Разрешить специальные клавиши быстрого перемещения. | true |
| allow-debug-cheats | Разрешить нечестные элементы управления на дебаг-панели. | true |
| allow-fast-interaction | Разрешить быстрое взаимодействие. | true |