mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-13 06:51:51 +00:00
Updated Скриптинг (markdown)
parent
38b1caa103
commit
09785395ab
1 changed files with 102 additions and 84 deletions
186
Скриптинг.md
186
Скриптинг.md
|
|
@ -10,104 +10,32 @@ load_script("контентпак:scripts/имя_скрипта.lua", true) --
|
||||||
require "контентпак:имя_модуля" -- загружает lua модуль из папки modules (расширение не указывается)
|
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
|
## Библиотека player
|
||||||
```lua
|
```lua
|
||||||
player.get_pos(id)
|
player.get_pos(id)
|
||||||
```
|
```
|
||||||
Возвращает x, y, z координаты игрока
|
Возвращает x, y, z координаты игрока
|
||||||
|
|
||||||
```lua
|
```python
|
||||||
player.set_pos(id, x, y, z)
|
player.set_pos(id: int, x: float, y: float, z: float)
|
||||||
```
|
```
|
||||||
|
|
||||||
Устанавливает x, y, z координаты игрока
|
Устанавливает x, y, z координаты игрока
|
||||||
|
|
||||||
```lua
|
```python
|
||||||
player.get_rot(id) -> number, number
|
player.get_rot(id: int) -> float, float
|
||||||
```
|
```
|
||||||
|
|
||||||
Возвращает x, y вращения камеры (в радианах), где значение X не ограничено
|
Возвращает x, y вращения камеры (в радианах), где значение X не ограничено
|
||||||
|
|
||||||
```lua
|
```python
|
||||||
player.set_rot(id, x, y, z)
|
player.set_rot(id: int, x: float, y: float, z: float)
|
||||||
```
|
```
|
||||||
|
|
||||||
Устанавливает x, y вращения камеры (в радианах)
|
Устанавливает x, y вращения камеры (в радианах)
|
||||||
|
|
||||||
```lua
|
```python
|
||||||
player.get_inventory(playerid) -> integer, integer
|
player.get_inventory(playerid: int) -> int, int
|
||||||
```
|
```
|
||||||
|
|
||||||
Возвращает id инвентаря игрока и индекс выбранного слота (от 0 до 9)
|
Возвращает id инвентаря игрока и индекс выбранного слота (от 0 до 9)
|
||||||
|
|
@ -203,13 +131,103 @@ inventory.clone(invid: integer) -> integer
|
||||||
|
|
||||||
Создает копию инвентаря и возвращает id копии. Если копируемого инвентаря не существует, возвращает 0.
|
Создает копию инвентаря и возвращает 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
|
## Библиотека item
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
item.name(itemid: integer) -> string
|
item.name(itemid: integer) -> string
|
||||||
```
|
```
|
||||||
|
|
||||||
Возвращает строковый id предмета по его числовому id (как block_name)
|
Возвращает строковый id предмета по его числовому id (как block.name)
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
item.index(name: string) -> integer
|
item.index(name: string) -> integer
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue