Биом - mkhropov/Elem GitHub Wiki

Биом - метод генерации мира. Биом определяет характерные слои материалов и характерные преобразования поверхности, а так же (в будущем) гидрографию, флору и фауну. Для каждого чанка мира определяются ближайшие к нему биомы, и их влияние на стратумы и геоморфы будет прямо пропорционально близости к этому чанку.
Поскольку необходима рандомизация, все фактические параметры необходимо указывать как массивы из двух элементов, являющихся нижней и верхней границами диапазона значений параметра. Пример: средняя высота биома может быть указана как [40, 60].

Коды преобразований поверхности
0. Pointfold - купольная складчатость. Параметры : [double l - радиус купола, double h - глубина преобразования от поверхности, double d - амплитуда складки в центре].

  1. Linefold - линейная складчатость. Параметры : [double l - длина складки (поперёк линии складчатости), double h - глубина преобразования от поверхности, double d - амплитуда складки, double w - ширина складки (вдоль линии складчатости)].
  2. Wavefold - волнистая складчатость. Параметры аналогично п.1.
  3. Slipfault - фронт разрыва. Параметры аналогично п.2.

описание формата json
int height - средняя рассчётная высота биома.

String stratumMat[] - имена материалов слоёв, характерных для этого биома, возможны повторения.
double stratumChance[] - весовые коэффициенты вероятностей отспаунить то или иной слой
int stratumHeight[][] - соответствующие именам диапазоны толщин слоёв (например, [[2, 3], [2, 4]] для двух материалов).
int stratumMinR[][] - соотвествующие именам минимальные радиусы слоёв.
int stratumMaxR[][] - соотвествующие именам максимальные радиусы слоёв.
String vein[] - соответствующие именам слоёв имена характерных руд/драгоценных камней. Если в слоях одного материала можно встретить разные руды, необходимо включить имя это материала в список материалов соотвествующее количество раз, и выставить здесь разные "начинки".
double veinChance[] - шанс отспаунить рудную жилу.

double morphDensity - среднее количество морфов на квадратный блок поверхности.
int morph[] - список кодов морфов, характерных для этого биома. Возможны повторения.
double morphParam[][][] - список параметров для каждого кода морфа. Первый индекс - морф, второй - параметр, третий - нижняя/верхняя граница. Параметры для конкретных морфов см. выше.
double morphChance[] - весовые коэффициенты шансов, что морф будет соответствующего типа

String erodeMat - характерный для этого биома материал эррозии. Из него образуется верхний слой.
int erodeWidth - базовая толщина слоя отложений
int erodeStrength - сила выветривания.