From 0c282d44a03f64072f9fd166718a3f9bf409c6b5 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 16 Oct 2024 05:21:17 +0300 Subject: [PATCH] update world-generator.md --- doc/ru/world-generator.md | 77 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/doc/ru/world-generator.md b/doc/ru/world-generator.md index 6c193ab1..fd697f92 100644 --- a/doc/ru/world-generator.md +++ b/doc/ru/world-generator.md @@ -9,7 +9,6 @@ - **Растение** - случайно расставляемый на поверхности блок. - **Малая структура** - структура, размер которой не превышает размера чанка. Пример: деревья. - ## Файл конфигурации Генератор мира распознается при наличии файла `generators/имя_генератора.toml`. Другие файлы, относящиеся к генератору, должны находиться в директории `generators/имя_генератора.files/`: @@ -24,6 +23,7 @@ - **sea-level** - уровень моря (ниже этого уровня вместо воздуха будут генерироваться слои моря (sea-layers)). По-умолчанию: 0. - **biomes-bpd** - количество блоков на точку карты параметра выбора биомов. По-умолчанию: 8. - **heights-bpd** - количество блоков на точку карты высот. По-умолчанию: 4. +- **wide-structs-chunks-radius** - масимальный радиус размещения 'широких' структур, измеряемый в чанках. ## Фрагменты @@ -166,6 +166,53 @@ Heightmap это класс для работы с картами высот (м local map = Heightmap(ширина, высота) ``` +### Унарные операции + +Операции применяются ко всем значениям высоты. + +```lua +map:abs() +``` + +Приводит значения высот к абсолютным. + + +### Бинарные операции + +Операции с применением второй карты или скаляра. + +Арифметические операции: + +```lua +-- Прибавление +map:add(value: Heightmap|number) + +-- Вычитание +map:sub(value: Heightmap|number) + +-- Умножение +map:mul(value: Heightmap|number) + +-- Возведение в степень +map:pow(value: Heightmap|number) +``` + +Другие операции: + +```lua +-- Минимум +map:min(value: Heightmap|number) + +-- Максимум +map:max(value: Heightmap|number) + +-- Примешивание +map:mixin(value: Heightmap|number, t: Heightmap|number) +-- t - фактор смешивания от 0.0 до 1.0 +-- смешивание производится по формуле: +-- map_value * (1.0 - t) + value * t +``` + ### heightmap:dump(...) Метод используемый для отладки, создает изображение на основе карты высот переводя значения из дипазона `[-1.0, 1.0]` в значения яркости `[0, 255]`, сохраняя в указанный файл. @@ -209,6 +256,34 @@ map:noise( ![image](../images/cell-noise.gif) +### heightmap:resize(...) + +```lua +map:resize(ширина, высота, интерполяция) +``` + +Изменяет размер карты высот. + +Доступные режимы интерполяции: +- 'nearest' - без интерполяции +- 'linear' - билинейная интерполяция + +### heightmap:crop(...) + +```lua +map:crop(x, y, ширина, высота) +``` + +Обрезает карту высот до заданной области. + +## heightmap:at(x, y) + +```lua +map:at(x, y) --> number +``` + +Возвращает значение высота на заданной позиции. + ## VoxelFragment (фрагмент) Фрагмент создается вызовом функции: