added docs/События-движка.md
This commit is contained in:
@@ -375,126 +375,6 @@ hud.get_block_inventory() -> int
|
|||||||
|
|
||||||
Получить ID инвентаря открытого блока или 0
|
Получить ID инвентаря открытого блока или 0
|
||||||
|
|
||||||
## События блоков
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_placed(x, y, z, playerid)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается после установки блока игроком
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_broken(x, y, z, playerid)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается после разрушения блока игроком
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_interact(x, y, z, playerid) -> bool
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при нажатии на блок ПКМ. Предотвращает установку блоков, если возвращает `true`
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_update(x, y, z)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при обновлении блока (если изменился соседний блок)
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_random_update(x, y, z)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается в случайные моменты времени (рост травы на блоках земли)
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_blocks_tick(tps: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается tps (20) раз в секунду
|
|
||||||
|
|
||||||
## События предметов
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_use(playerid: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при нажатии ПКМ не на блок.
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_use_on_block(x: int, y: int, z: int, playerid: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при нажатии ПКМ на блок. Предотвращает установку блока, прописанного в `placing-block` если возвращает `true`
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_block_break_by(x: int, y: int, z: int, playerid: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при нажатии ЛКМ на блок (в т.ч неразрушимый). Предотвращает разрушение блока, если возвращает `true`
|
|
||||||
|
|
||||||
## События мира
|
|
||||||
|
|
||||||
События мира для контент-пака прописываются в `scripts/world.lua`
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_world_open()
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при загрузке мира
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_world_save()
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается перед сохранением мира
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_world_tick()
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается 20 раз в секунду
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_world_quit()
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при выходе из мира (после сохранения)
|
|
||||||
|
|
||||||
## События макета
|
|
||||||
|
|
||||||
События прописываются в файле `layouts/имя_макета.xml.lua`.
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_open(invid: int, x: int, y: int, z: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при добавлении элемента на экран.
|
|
||||||
При отсутствии привязки к инвентарю invid будет равен 0.
|
|
||||||
При отсутствии привязки к блоку x, y, z так же будут равны 0.
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_close(invid: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при удалении элемента с экрана.
|
|
||||||
|
|
||||||
## События HUD
|
|
||||||
|
|
||||||
События связанные с игровым интерфейсом прописываются в файле `scripts/hud.lua`
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_hud_open(playerid: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается после входа в мир, когда становится доступна библиотека hud. Здесь на экран добавляются постоянные элементы.
|
|
||||||
|
|
||||||
```lua
|
|
||||||
function on_hud_close(playerid: int)
|
|
||||||
```
|
|
||||||
|
|
||||||
Вызывается при выходе из мира, перед его сохранением.
|
|
||||||
|
|
||||||
## Библиотеки движка
|
## Библиотеки движка
|
||||||
|
|
||||||
### time
|
### time
|
||||||
@@ -504,25 +384,3 @@ time.uptime() -> float
|
|||||||
```
|
```
|
||||||
|
|
||||||
Возвращает время с момента запуска движка в секундах
|
Возвращает время с момента запуска движка в секундах
|
||||||
|
|
||||||
## Доступные модули
|
|
||||||
|
|
||||||
### TOML сериализация/десериализация
|
|
||||||
|
|
||||||
```lua
|
|
||||||
local toml = require "core:toml"
|
|
||||||
|
|
||||||
local t = {a=53, b=42, s="test", sub={x=1, y=6}}
|
|
||||||
local s = toml.serialize(t)
|
|
||||||
print(s)
|
|
||||||
local t2 = toml.deserialize(s)
|
|
||||||
```
|
|
||||||
вывод:
|
|
||||||
```toml
|
|
||||||
b = 42
|
|
||||||
s = "test"
|
|
||||||
a = 53
|
|
||||||
[sub]
|
|
||||||
y = 6
|
|
||||||
x = 1
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -0,0 +1,126 @@
|
|||||||
|
# События движка
|
||||||
|
|
||||||
|
## События блоков
|
||||||
|
|
||||||
|
Функции для обработки событий, прописываемые в скрипте блока.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_placed(x, y, z, playerid)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается после установки блока игроком
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_broken(x, y, z, playerid)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается после разрушения блока игроком
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_interact(x, y, z, playerid) -> bool
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при нажатии на блок ПКМ. Предотвращает установку блоков, если возвращает `true`
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_update(x, y, z)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при обновлении блока (если изменился соседний блок)
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_random_update(x, y, z)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается в случайные моменты времени (рост травы на блоках земли)
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_blocks_tick(tps: int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается tps (20) раз в секунду
|
||||||
|
|
||||||
|
## События предметов
|
||||||
|
|
||||||
|
Функции для обработки событий, прописываемые в скрипте предмета.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_use(playerid: int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при нажатии ПКМ не на блок.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
|
||||||
|
function on_use_on_block(x: int, y: int, z: int, playerid: int)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при нажатии ПКМ на блок. Предотвращает установку блока, прописанного в `placing-block` если возвращает `true`
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_block_break_by(x: int, y: int, z: int, playerid: int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при нажатии ЛКМ на блок (в т.ч неразрушимый). Предотвращает разрушение блока, если возвращает `true`
|
||||||
|
|
||||||
|
## События мира
|
||||||
|
|
||||||
|
События мира для контент-пака прописываются в `scripts/world.lua`
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_world_open()
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при загрузке мира
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_world_save()
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается перед сохранением мира
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_world_tick()
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается 20 раз в секунду
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_world_quit()
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при выходе из мира (после сохранения)
|
||||||
|
## События макета
|
||||||
|
|
||||||
|
События прописываются в файле `layouts/имя_макета.xml.lua`.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_open(invid: int, x: int, y: int, z: int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при добавлении элемента на экран.
|
||||||
|
- При отсутствии привязки к инвентарю invid будет равен 0.
|
||||||
|
- При отсутствии привязки к блоку x, y, z так же будут равны 0.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_close(invid: int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при удалении элемента с экрана.
|
||||||
|
|
||||||
|
## События HUD
|
||||||
|
|
||||||
|
События связанные с игровым интерфейсом прописываются в файле `scripts/hud.lua`
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_hud_open(playerid: int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается после входа в мир, когда становится доступна библиотека hud. Здесь на экран добавляются постоянные элементы.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
function on_hud_close(playerid: int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вызывается при выходе из мира, перед его сохранением.
|
||||||
Reference in New Issue
Block a user