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

MihailRis 2024-03-12 14:50:04 +03:00
parent 38b1caa103
commit 09785395ab

@ -10,104 +10,32 @@ load_script("контентпак:scripts/имя_скрипта.lua", true) --
require "контентпак:имя_модуля" -- загружает lua модуль из папки modules (расширение не указывается)
```
```lua
block_name(id)
```
Возвращает строковый id блока, принимая в качестве агрумента числовой
```lua
block_index(id)
```
Возвращает числовой id блока, принимая в качестве агрумента строковый
```lua
get_block(x, y, z)
```
Возвращает числовой id блока на указанных координатах
```lua
get_block_states(x, y, z)
```
Возвращает состояние (поворот + доп. информация) в виде целого числа
```lua
set_block(x, y, z, id, states)
```
Устанавливает блок с заданным числовым id и состоянием (0 - по-умолчанию) на заданных координатах.
НЕ вызывает событие on_placed
```lua
is_solid_at(x, y, z)
```
Проверяет, является ли блок на указанных координатах полным
```lua
is_replaceable_at(x, y, z)
```
Проверяет, можно ли на заданных координатах поставить блок (примеры: воздух, трава, цветы, вода)
```lua
blocks_count()
```
Возвращает количество id доступных в движке блоков
Следующие три функции используется для учёта вращения блока при обращении к соседним блокам или других целей, где направление блока имеет решающее значение.
```lua
get_block_X(x, y, z)
```
Возвращает целочисленный единичный вектор X блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 1, 0, 0
```lua
get_block_Y(x, y, z)
```
Возвращает целочисленный единичный вектор Y блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 0, 1, 0
```lua
get_block_Z(x, y, z)
```
Возвращает целочисленный единичный вектор Z блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 0, 0, 1
### Пользовательские биты
Выделенная под использования в скриптах часть поля `voxel.states` хранящего доп-информацию о вокселе, такую как вращение блока. На данный момент выделенная часть составляет 8 бит.
```lua
get_block_user_bits(x, y, z, offset, bits)
```
Возвращает выбранное число бит с указанного смещения в виде целого беззнакового числа
```lua
set_block_user_bits(x, y, z, offset, bits, value)
```
Записывает указанное число бит значения value в user bits по выбранному смещению
## Библиотека player
```lua
player.get_pos(id)
```
Возвращает x, y, z координаты игрока
```lua
player.set_pos(id, x, y, z)
```python
player.set_pos(id: int, x: float, y: float, z: float)
```
Устанавливает x, y, z координаты игрока
```lua
player.get_rot(id) -> number, number
```python
player.get_rot(id: int) -> float, float
```
Возвращает x, y вращения камеры (в радианах), где значение X не ограничено
```lua
player.set_rot(id, x, y, z)
```python
player.set_rot(id: int, x: float, y: float, z: float)
```
Устанавливает x, y вращения камеры (в радианах)
```lua
player.get_inventory(playerid) -> integer, integer
```python
player.get_inventory(playerid: int) -> int, int
```
Возвращает id инвентаря игрока и индекс выбранного слота (от 0 до 9)
@ -203,13 +131,103 @@ inventory.clone(invid: integer) -> integer
Создает копию инвентаря и возвращает id копии. Если копируемого инвентаря не существует, возвращает 0.
## Библиотека block
```python
block.name(blockid: int) -> str
```
Возвращает строковый id блока по его числовому id
```python
block.index(name: str) -> int
```
Возвращает числовой id блока, принимая в качестве агрумента строковый
```lua
block.get(x: integer, y: integer, z: integer) -> integer
```
Возвращает числовой id блока на указанных координатах. Если чанк на указанных координатах не загружен, возвращает -1.
```lua
block.get_states(x: integer, y: integer, z: integer) -> integer
```
Возвращает состояние (поворот + доп. информация) в виде целого числа
```lua
block.set(x: integer, y: integer, z: integer, id: integer, states: integer)
```
Устанавливает блок с заданным числовым id и состоянием (0 - по-умолчанию) на заданных координатах.
>[!ATTENTION]
> `block.set` не вызывает событие on_placed.
```python
block.is_solid_at(x: int, y: int, z: int) -> bool
```
Проверяет, является ли блок на указанных координатах полным
```python
block.is_replaceable_at(x: int, y: int, z: int) -> bool
```
Проверяет, можно ли на заданных координатах поставить блок (примеры: воздух, трава, цветы, вода)
```python
block.defs_count() -> int
```
Возвращает количество id доступных в движке блоков
Следующие три функции используется для учёта вращения блока при обращении к соседним блокам или других целей, где направление блока имеет решающее значение.
```python
block.get_X(x: int, y: int, z: int) -> int, int, int
```
Возвращает целочисленный единичный вектор X блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 1, 0, 0
```python
block.get_Y(x: int, y: int, z: int) -> int, int, int
```
Возвращает целочисленный единичный вектор Y блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 0, 1, 0
```python
block.get_Z(x: int, y: int, z: int) -> int, int, int
```
Возвращает целочисленный единичный вектор Z блока на указанных координатах с учётом его вращения (три целых числа).
Если поворот отсутствует, возвращает 0, 0, 1
### Пользовательские биты
Выделенная под использования в скриптах часть поля `voxel.states` хранящего доп-информацию о вокселе, такую как вращение блока. На данный момент выделенная часть составляет 8 бит.
```python
block.get_user_bits(x: int, y: int, z: int, offset: int, bits: int) -> int
```
Возвращает выбранное число бит с указанного смещения в виде целого беззнакового числа
```python
block.set_user_bits(x: int, y: int, z: int, offset: int, bits: int, value: int) -> int
```
Записывает указанное число бит значения value в user bits по выбранному смещению
## Библиотека item
```lua
item.name(itemid: integer) -> string
```
Возвращает строковый id предмета по его числовому id (как block_name)
Возвращает строковый id предмета по его числовому id (как block.name)
```lua
item.index(name: string) -> integer