update world-generator.md

This commit is contained in:
MihailRis 2024-10-16 05:21:17 +03:00
parent 7330896eb4
commit 0c282d44a0

View File

@ -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 (фрагмент)
Фрагмент создается вызовом функции: