Updated Скриптинг (markdown)

MihailRis 2024-01-04 15:47:50 +03:00
parent 52afa42768
commit 3546d91368

@ -5,102 +5,124 @@
## Функции, доступные в скриптах (0.16)
```lua
block_name(id) -- возвращает строковый id блока, принимая в качестве агрумента числовой
block_name(id)
```
Возвращает строковый id блока, принимая в качестве агрумента числовой
```lua
block_index(id) -- возвращает числовой id блока, принимая в качестве агрумента строковый
block_index(id)
```
Возвращает числовой id блока, принимая в качестве агрумента строковый
```lua
get_block(x, y, z) -- возвращает числовой id блока на указанных координатах
get_block(x, y, z)
```
Возвращает числовой id блока на указанных координатах
```lua
get_block_states(x, y, z) -- возвращает состояние (поворот + доп. информация) в виде целого числа
get_block_states(x, y, z)
```
Возвращает состояние (поворот + доп. информация) в виде целого числа
```lua
set_block(x, y, z, id, states) -- устанавливает блок с заданным числовым id и состоянием (0 - по-умолчанию) на заданных координатах
-- НЕ вызывает событие on_placed
set_block(x, y, z, id, states)
```
Устанавливает блок с заданным числовым id и состоянием (0 - по-умолчанию) на заданных координатах.
НЕ вызывает событие on_placed
```lua
is_solid_at(x, y, z) -- проверяет, является ли блок на указанных координатах полным
is_solid_at(x, y, z)
```
Проверяет, является ли блок на указанных координатах полным
```lua
is_replaceable_at(x, y, z) -- проверяет, можно ли на заданных координатах поставить блок (примеры: воздух, трава, цветы, вода)
is_replaceable_at(x, y, z)
```
Проверяет, можно ли на заданных координатах поставить блок (примеры: воздух, трава, цветы, вода)
```lua
blocks_count() -- возвращает количество id доступных в движке блоков
blocks_count()
```
Возвращает количество id доступных в движке блоков
```lua
get_player_pos() -- возвращает x, y, z координаты игрока
get_player_pos()
```
Возвращает x, y, z координаты игрока
```lua
set_player_pos(x, y, z) -- устанавливает x, y, z координаты игрока
set_player_pos(x, y, z)
```
Устанавливает x, y, z координаты игрока
```lua
get_player_rot() -- возвращает x, y вращения камеры (в радианах), где значение X не ограничено
get_player_rot()
```
Возвращает x, y вращения камеры (в радианах), где значение X не ограничено
```lua
set_player_rot(x, y, z) -- устанавливает x, y вращения камеры (в радианах)
set_player_rot(x, y, z)
```
Устанавливает x, y вращения камеры (в радианах)
## События блоков
```lua
function on_placed(x, y, z) -- вызывается после установки блока игроком
function on_placed(x, y, z)
```
Вызывается после установки блока игроком
```lua
function on_broken(x, y, z) -- вызывается после разрушения блока игроком
function on_broken(x, y, z)
```
Вызывается после разрушения блока игроком
```lua
function on_interact(x, y, z) -- вызывается при нажатии на блок ПКМ
function on_interact(x, y, z)
```
Вызывается при нажатии на блок ПКМ
```lua
function on_update(x, y, z) -- вызывается при обновлении блока (если изменился соседний блок)
function on_update(x, y, z)
```
Вызывается при обновлении блока (если изменился соседний блок)
```lua
function on_random_update(x, y, z) -- вызывается в случайные моменты времени (рост травы на блоках земли)
function on_random_update(x, y, z)
```
Вызывается в случайные моменты времени (рост травы на блоках земли)
## Функции, доступные в версии 0.17 (будущая версия)
Следующие три функции используется для учёта вращения блока при обращении к соседним блокам или других целей, где направление блока имеет решающее значение.
```lua
get_block_X(x, y, z) -- возвращает целочисленный единичный вектор X блока на указанных координатах с учётом его вращения (три целых числа)
-- если поворот отсутствует, возвращает 1, 0, 0
get_block_X(x, y, z)
```
Возвращает целочисленный единичный вектор X блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 1, 0, 0
```lua
get_block_Y(x, y, z) -- возвращает целочисленный единичный вектор Y блока на указанных координатах с учётом его вращения (три целых числа)
-- если поворот отсутствует, возвращает 0, 1, 0
get_block_Y(x, y, z)
```
Возвращает целочисленный единичный вектор Y блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 0, 1, 0
```lua
get_block_Z(x, y, z) -- возвращает целочисленный единичный вектор Z блока на указанных координатах с учётом его вращения (три целых числа)
-- если поворот отсутствует, возвращает 0, 0, 1
get_block_Z(x, y, z)
```
Возвращает целочисленный единичный вектор Z блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 0, 0, 1
Пользовательские биты - выделенная под использования в скриптах часть поля `voxel.states` хранящего доп-информацию о вокселе, такую как вращение блока. На данный момент выделенная часть составляет 8 бит.
```lua
get_block_user_bits(x, y, z, offset, bits) -- возвращает выбранное число бит с указанного смещения в виде целого беззнакового числа
get_block_user_bits(x, y, z, offset, bits)
```
Возвращает выбранное число бит с указанного смещения в виде целого беззнакового числа
```lua
set_block_user_bits(x, y, z, offset, bits, value) -- записывает указанное число бит значения value в user bits по выбранному смещению
set_block_user_bits(x, y, z, offset, bits, value)
```
Записывает указанное число бит значения value в user bits по выбранному смещению