From 09785395abef2ef51465024dfadb4a11f87dd3d4 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 12 Mar 2024 14:50:04 +0300 Subject: [PATCH] =?UTF-8?q?Updated=20=D0=A1=D0=BA=D1=80=D0=B8=D0=BF=D1=82?= =?UTF-8?q?=D0=B8=D0=BD=D0=B3=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Скриптинг.md | 186 ++++++++++++++++++++++++++++----------------------- 1 file changed, 102 insertions(+), 84 deletions(-) diff --git a/Скриптинг.md b/Скриптинг.md index 2a0514a..bdb27c1 100644 --- a/Скриптинг.md +++ b/Скриптинг.md @@ -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