Merge branch 'main' into update-particles
This commit is contained in:
@@ -40,6 +40,12 @@
|
||||
Целое число определяющее номер группы отрисовки данного блока.
|
||||
Актуально для полупрозрачных блоков - решает проблемы невидимых сторон блоков за этим блоком.
|
||||
|
||||
### Полупрозрачность - *translucent*
|
||||
|
||||
Включает поддержку полупрозрачности в текстурах блока (примеры: вода, лёд).
|
||||
Следует использовать только при надобности, так как влияет на производительность.
|
||||
Не требуется для полной прозрачности (трава, цветы).
|
||||
|
||||
### Вращение - *rotation*
|
||||
|
||||
Профиль вращения (набор положений, в которые можно установить блок) из списка:
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
}
|
||||
```
|
||||
|
||||
Вместо `creator` можно указать массив `creators`
|
||||
|
||||
Уровни зависимостей указываются с помощью префиксов в имени:
|
||||
- '!' - обязательная зависимость
|
||||
- '?' - опциональная зависимость
|
||||
|
||||
+3
-1
@@ -1,6 +1,8 @@
|
||||
# Документация
|
||||
|
||||
Документация движка версии 0.24.
|
||||
Документация движка разрабатываемой версии 0.25.
|
||||
|
||||
[Документация стабильной версии 0.24.x.](https://github.com/MihailRis/VoxelEngine-Cpp/blob/release-0.24/doc/ru/main-page.md)
|
||||
|
||||
## Разделы
|
||||
|
||||
|
||||
@@ -7,7 +7,11 @@ hud.open_inventory()
|
||||
-- Закрывает инвентарь.
|
||||
hud.close_inventory()
|
||||
|
||||
-- Открывает инвентарь и UI блока.
|
||||
-- Открывает инвентарь и UI.
|
||||
-- Если не имеет макета UI - бросается исключение.
|
||||
hud.open(invid: int, layoutid: str)
|
||||
|
||||
-- Открывает инвентарь и UI блока.
|
||||
-- Если блок не имеет макета UI - бросается исключение.
|
||||
-- Возвращает id инвентаря блока
|
||||
-- (при *"inventory-size"=0* создаётся виртуальный инвентарь,
|
||||
|
||||
@@ -23,7 +23,7 @@ inventory.set(
|
||||
count: int
|
||||
)
|
||||
|
||||
-- Возращает размер инвентаря (число слотов).
|
||||
-- Возвращает размер инвентаря (число слотов).
|
||||
-- Если указанного инвентаря не существует, бросает исключение.
|
||||
inventory.size(invid: int) -> int
|
||||
|
||||
@@ -47,13 +47,19 @@ inventory.bind_block(invid: int, x: int, y: int, z: int)
|
||||
|
||||
-- Отвязывает инвентарь от блока.
|
||||
inventory.unbind_block(x: int, y: int, z: int)
|
||||
|
||||
-- Удаляет инвентарь.
|
||||
inventory.remove(invid: int)
|
||||
```
|
||||
|
||||
> [!WARNING]
|
||||
> Инвентари, не привязанные ни к одному из блоков, удаляются при выходе из мира.
|
||||
|
||||
```lua
|
||||
-- Создает копию инвентаря и возвращает id копии.
|
||||
-- Создаёт инвентарь и возвращает id.
|
||||
inventory.create(size: int) -> int
|
||||
|
||||
-- Создает копию инвентаря и возвращает id копии.
|
||||
-- Если копируемого инвентаря не существует, возвращает 0.
|
||||
inventory.clone(invid: int) -> int
|
||||
|
||||
@@ -62,5 +68,3 @@ inventory.clone(invid: int) -> int
|
||||
-- slotB будет выбран автоматически, если не указывать явно.
|
||||
inventory.move(invA: int, slotA: int, invB: int, slotB: int)
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -27,4 +27,7 @@ utf8.upper(text: str) -> str
|
||||
|
||||
-- Переводит строку в нижний регистр
|
||||
utf8.lower(text: str) -> str
|
||||
|
||||
-- Экранирует строку
|
||||
utf8.escape(text: str) -> str
|
||||
```
|
||||
|
||||
@@ -4,92 +4,109 @@
|
||||
|
||||
## Расширения для table
|
||||
|
||||
Создаёт и возвращает копию переданной таблицы путём создания новой и копирования в неё всех элементов из переданной
|
||||
```lua
|
||||
function table.copy(t: table) -> table
|
||||
table.copy(t: table) -> table
|
||||
```
|
||||
|
||||
Возвращает количество пар в переданной таблице
|
||||
Создаёт и возвращает копию переданной таблицы путём создания новой и копирования в неё всех элементов из переданной.
|
||||
|
||||
```lua
|
||||
function table.count_pairs(t: table) -> integer
|
||||
table.count_pairs(t: table) -> integer
|
||||
```
|
||||
|
||||
Возвращает один элемент из переданной таблицы на случайной позиции
|
||||
Возвращает количество пар в переданной таблице.
|
||||
|
||||
```lua
|
||||
function table.random(t: table) -> object
|
||||
table.random(t: table) -> object
|
||||
```
|
||||
|
||||
Возвращает **true**, если **x** содержится в **t**
|
||||
Возвращает один элемент из переданной таблицы на случайной позиции.
|
||||
|
||||
```lua
|
||||
function table.has(t: table, x: object) -> bool
|
||||
table.has(t: table, x: object) -> bool
|
||||
```
|
||||
|
||||
Возвращает индекс обьекта **x** в **t**. Если переданный обьект не содержится в таблице, то функция вернёт значение **-1**
|
||||
Возвращает **true**, если **x** содержится в **t**.
|
||||
|
||||
```lua
|
||||
function table.index(t: table, x: object) -> integer
|
||||
table.index(t: table, x: object) -> integer
|
||||
```
|
||||
|
||||
Удаляет элемент **x** из **t**
|
||||
Возвращает индекс обьекта **x** в **t**. Если переданный обьект не содержится в таблице, то функция вернёт значение **-1**.
|
||||
|
||||
```lua
|
||||
function table.remove_value(t: table, x: object)
|
||||
table.remove_value(t: table, x: object)
|
||||
```
|
||||
|
||||
Конвертирует переданную таблицу в строку
|
||||
Удаляет элемент **x** из **t**.
|
||||
|
||||
```lua
|
||||
function table.tostring(t: table) -> string
|
||||
table.tostring(t: table) -> string
|
||||
```
|
||||
|
||||
Конвертирует переданную таблицу в строку.
|
||||
|
||||
## Расширения для string
|
||||
|
||||
Разбивает строку **str** на части по указанному разделителю/выражению **separator** и возвращает результат ввиде таблицы из строк. Если **withpattern** равен **true**, то параметр **separator** будет определяться как регулярное выражение
|
||||
```lua
|
||||
function string.explode(separator: string, str: string, withpattern: bool) -> table[string]
|
||||
string.explode(separator: string, str: string, withpattern: bool) -> table[string]
|
||||
```
|
||||
|
||||
Разбивает строку **str** на части по указанному разделителю **delimiter** и возвращает результат ввиде таблицы из строк
|
||||
Разбивает строку **str** на части по указанному разделителю/выражению **separator** и возвращает результат ввиде таблицы из строк. Если **withpattern** равен **true**, то параметр **separator** будет определяться как регулярное выражение.
|
||||
|
||||
```lua
|
||||
function string.split(str: string, delimiter: string) -> table[string]
|
||||
string.split(str: string, delimiter: string) -> table[string]
|
||||
```
|
||||
|
||||
Экранирует специальные символы в строке, такие как `()[]+-.$%^?*` в формате `%символ`. Символ `NUL` (`\0`) будет преобразован в `%z`
|
||||
Разбивает строку **str** на части по указанному разделителю **delimiter** и возвращает результат ввиде таблицы из строк.
|
||||
|
||||
```lua
|
||||
function string.pattern_safe(str: string)
|
||||
string.pattern_safe(str: string)
|
||||
```
|
||||
|
||||
Разбивает секунды на часы, минуты и миллисекунды и форматирует в **format** с следующим порядком параметров: `минуты, секунды, миллисекунды` и после возвращает результат. Если **format** не указан, то возвращает таблицу, где: **h** - hours, **m** - minutes, **s** - seconds, **ms** - milliseconds
|
||||
Экранирует специальные символы в строке, такие как `()[]+-.$%^?*` в формате `%символ`. Символ `NUL` (`\0`) будет преобразован в `%z`.
|
||||
|
||||
```lua
|
||||
function string.formatted_time(seconds: number, format: string) -> string | table
|
||||
string.formatted_time(seconds: number, format: string) -> string | table
|
||||
```
|
||||
|
||||
Заменяет все подстроки в **str**, равные **tofind** на **toreplace** и возвращает строку со всеми измененными подстроками
|
||||
Разбивает секунды на часы, минуты и миллисекунды и форматирует в **format** с следующим порядком параметров: `минуты, секунды, миллисекунды` и после возвращает результат. Если **format** не указан, то возвращает таблицу, где: **h** - hours, **m** - minutes, **s** - seconds, **ms** - milliseconds.
|
||||
|
||||
```lua
|
||||
function string.replace(str: string, tofind: string, toreplace: string) -> string
|
||||
string.replace(str: string, tofind: string, toreplace: string) -> string
|
||||
```
|
||||
|
||||
Заменяет все подстроки в **str**, равные **tofind** на **toreplace** и возвращает строку со всеми измененными подстроками.
|
||||
|
||||
```lua
|
||||
string.trim(str: string, char: string) -> string
|
||||
```
|
||||
|
||||
Удаляет все символы, равные **char** из строки **str** с левого и правого конца и возвращает результат. Если параметр **char** не определен, то будут выбраны все пустые символы.
|
||||
|
||||
```lua
|
||||
function string.trim(str: string, char: string) -> string
|
||||
string.trim_left(str: string, char: string) -> string
|
||||
```
|
||||
|
||||
Удаляет все символы, равные **char** из строки **str** с левого конца и возвращает результат. Если параметр **char** не определен, то будут выбраны все пустые символы.
|
||||
|
||||
```lua
|
||||
function string.trim_left(str: string, char: string) -> string
|
||||
string.trim_right(str: string, char: string) -> string
|
||||
```
|
||||
|
||||
Удаляет все символы, равные **char** из строки **str** с правого конца и возвращает результат. Если параметр **char** не определен, то будут выбраны все пустые символы.
|
||||
|
||||
```lua
|
||||
function string.trim_right(str: string, char: string) -> string
|
||||
string.starts_with(str: string, start: string) -> bool
|
||||
```
|
||||
|
||||
Возвращает **true**, если строка **str** начинается на подстроку **start**
|
||||
|
||||
```lua
|
||||
function string.starts_with(str: string, start: string) -> bool
|
||||
string.ends_with(str: string, endStr: string) -> bool
|
||||
```
|
||||
|
||||
Возвращает **true**, если строка **str** заканчивается на подстроку **endStr**
|
||||
```lua
|
||||
function string.ends_with(str: string, endStr: string) -> bool
|
||||
```
|
||||
|
||||
Также важно подметить, что все выше перечисленные функции, расширяющие **string** можно использовать как мета-методы на экземплярах строк, т.е.:
|
||||
|
||||
@@ -103,39 +120,51 @@ end
|
||||
|
||||
Также функции `string.lower` и `string.upper` переопределены на `utf8.lower` и `utf8.upper`
|
||||
|
||||
```lua
|
||||
string.escape(str: string) -> string
|
||||
```
|
||||
|
||||
Экранирует строку. Является псевдонимом `utf8.escape`.
|
||||
|
||||
## Расширения для math
|
||||
|
||||
Ограничивает число **_in** по лимитам **low** и **high**. Т.е.: Если **_in** больше чем **high** - вернётся **high**, если **_in** меньше чем **low** - вернётся **low**. В противном случае вернётся само число
|
||||
```lua
|
||||
function math.clamp(_in, low, high)
|
||||
math.clamp(_in, low, high)
|
||||
```
|
||||
|
||||
Возвращает случайное дробное число в диапазоне от **low** до **high**
|
||||
Ограничивает число **_in** по лимитам **low** и **high**. Т.е.: Если **_in** больше чем **high** - вернётся **high**, если **_in** меньше чем **low** - вернётся **low**. В противном случае вернётся само число.
|
||||
|
||||
```lua
|
||||
function math.rand(low, high)
|
||||
math.rand(low, high)
|
||||
```
|
||||
|
||||
Возвращает случайное дробное число в диапазоне от **low** до **high**.
|
||||
|
||||
## Дополнительные глобальные функции
|
||||
|
||||
В этом же скрипте также определены и другие глобальные функции которые доступны для использования. Ниже их список
|
||||
|
||||
|
||||
Возвращает **true**, если переданная таблица является массивом, тоесть если каждый ключ это целое число больше или равное единице и если каждый ключ следует за прошлым
|
||||
```lua
|
||||
function is_array(x: table) -> bool
|
||||
is_array(x: table) -> bool
|
||||
```
|
||||
|
||||
Разбивает путь на две части и возвращает их: входную точку и путь к файлу
|
||||
Возвращает **true**, если переданная таблица является массивом, тоесть если каждый ключ это целое число больше или равное единице и если каждый ключ следует за прошлым.
|
||||
|
||||
```lua
|
||||
function parse_path(path: string) -> string, string
|
||||
```
|
||||
|
||||
Вызывает функцию **func** **iters** раз, передавая ей аргументы `...`, а после выводит в консоль время в микросекундах, которое прошло с момента вызова **timeit**
|
||||
Разбивает путь на две части и возвращает их: входную точку и путь к файлу.
|
||||
|
||||
```lua
|
||||
function timeit(iters: integer, func: func, ...)
|
||||
```
|
||||
|
||||
Вызывает остановку корутины до тех пор, пока не пройдёт количество секунд, указанное в **timesec**. Функция может быть использована только внутри корутины
|
||||
Вызывает функцию **func** **iters** раз, передавая ей аргументы `...`, а после выводит в консоль время в микросекундах, которое прошло с момента вызова **timeit**.
|
||||
|
||||
```lua
|
||||
function sleep(timesec: number)
|
||||
```
|
||||
```
|
||||
|
||||
Вызывает остановку корутины до тех пор, пока не пройдёт количество секунд, указанное в **timesec**. Функция может быть использована только внутри корутины.
|
||||
|
||||
@@ -74,17 +74,22 @@ document["worlds-panel"]:clear()
|
||||
| ----------- | ------ | ------ | ------ | ---------------------------------------------------------------------- |
|
||||
| text | string | да | да | введенный текст или заполнитель |
|
||||
| placeholder | string | да | да | заполнитель (используется если ничего не было введено) |
|
||||
| hint | string | да | да | текст, отображаемый, когда ничего не введено |
|
||||
| caret | int | да | да | позиция каретки. `textbox.caret = -1` установит позицию в конец текста |
|
||||
| editable | bool | да | да | изменяемость текста |
|
||||
| multiline | bool | да | да | поддержка многострочности |
|
||||
| lineNumbers | bool | да | да | отображение номеров строк |
|
||||
| textWrap | bool | да | да | автоматический перенос текста (только при multiline: "true") |
|
||||
| valid | bool | да | нет | является ли введенный текст корректным |
|
||||
| textColor | vec4 | да | да | цвет текста |
|
||||
|
||||
Методы:
|
||||
|
||||
| Метод | Описание |
|
||||
| ----------- | -------------------------------------------- |
|
||||
| paste(text) | вставляет указанный текст на позицию каретки |
|
||||
| Метод | Описание |
|
||||
| ------------------------- | -------------------------------------------- |
|
||||
| paste(text: str) | вставляет указанный текст на позицию каретки |
|
||||
| lineAt(pos: int) -> int | определяет номер строки по позиции в тексте |
|
||||
| linePos(line: int) -> int | определяет позицию начала строки в тексте |
|
||||
|
||||
## Ползунок (trackbar)
|
||||
|
||||
|
||||
@@ -72,17 +72,20 @@
|
||||
|
||||
## Структуры
|
||||
|
||||
Структура - набор правил по вставке фрагмента в мир генератором. На данный момент не имеет свойств, создаваясь в виде пустых объектов в файле `generators/имя_генератора.files/structures.toml`. Пример:
|
||||
Структура - набор правил по вставке фрагмента в мир генератором. Структуры объявляются в виде объектов в файле `generators/имя_генератора.files/structures.toml`. Пример:
|
||||
```toml
|
||||
tree0 = {}
|
||||
tree1 = {}
|
||||
tree2 = {}
|
||||
tower = {}
|
||||
tower = {lowering=-2}
|
||||
coal_ore0 = {}
|
||||
```
|
||||
|
||||
На данный момент, имя структуры должно совпадать с именем использованного фрагмента.
|
||||
|
||||
Доступные свойства:
|
||||
- lowering - глубина погружения структуры под поверхность.
|
||||
|
||||
## Биомы
|
||||
|
||||
Биом определяет то, из каких блоков и какими слоями генерируется ландшафт, а так же набор растений, структур.
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
В число контейнеров также входят панели и кнопки.
|
||||
- `padding` - внутренний отступ элемента. Тип: 4D вектор.
|
||||
Порядок: `"left,top,right,bottom"`
|
||||
- `scrollable` - возможность скроллинга. Работает только у Panel. Тип: логический.
|
||||
- `scrollable` - возможность скроллинга. Тип: логический.
|
||||
- `scroll-step` - шаг скроллинга. Тип: целочисленный.
|
||||
|
||||
# Общие атрибуты панелей
|
||||
|
||||
@@ -105,7 +106,9 @@
|
||||
- `multiline` - разрешает отображение многострочного текста.
|
||||
- `text-wrap` - разрешает автоматический перенос текста (работает только при multiline: "true")
|
||||
- `editable`- определяет возможность редактирования текста.
|
||||
- `line-numbers` - включает отображение номеров строк.
|
||||
- `error-color` - цвет при вводе некорректных данных (текст не проходит проверку валидатора). Тип: RGBA цвет.
|
||||
- `text-color` - цвет текста. Тип: RGBA цвет.
|
||||
- `validator` - lua функция, проверяющая текст на корректность. Принимает на вход строку, возвращает true если текст корректен.
|
||||
- `onup` - lua функция вызываемая при нажатии стрелки вверх.
|
||||
- `ondown` - lua функция вызываемая при нажатии стрелки вниз.
|
||||
|
||||
Reference in New Issue
Block a user