Admin (обсуждение | вклад) (→Генерация) |
Admin (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
Для подключения данной библиотеки используется следующая строка: | Для подключения данной библиотеки используется следующая строка: | ||
− | <syntaxhighlight lang="Javascript">IMPORT("dimensions");</syntaxhighlight> | + | <syntaxhighlight lang="Javascript">IMPORT("dimensions");</syntaxhighlight><div class="mw-parser-output"><div class="mw-highlight mw-content-ltr" dir="ltr"> |
− | + | <pre><span></span><span class="nx">IMPORT</span><span class="p">(</span><span class="s2">"dimensions"</span><span class="p">);</span></pre></div></div><div class="mceNonEditableOverlay"></div> | |
==Генерация== | ==Генерация== | ||
Для генерации измерения используется объект<span><span class="fctbNone">Dimension. В конструктор передаются параметры, связанные с измерением в следующем формате:</span></span> | Для генерации измерения используется объект<span><span class="fctbNone">Dimension. В конструктор передаются параметры, связанные с измерением в следующем формате:</span></span> | ||
Строка 47: | Строка 47: | ||
}); | }); | ||
</syntaxhighlight></span></span> | </syntaxhighlight></span></span> | ||
+ | ===Слои генерации=== | ||
+ | Основной единицей генерации является слой. Слоев может быть несколько и каждый из них отвечает за отдельную часть генерации ландшафта: различные биомы, слой бедрока, метеориты, парящие в воздухе. Каждый слой представляет из себя json-объект следующего содержания: | ||
+ | <syntaxhighlight lang="Javascript">{ | ||
+ | range: [0, 80], | ||
+ | noise: { | ||
+ | octaves: { | ||
+ | count: 4, | ||
+ | weight: 0.6, | ||
+ | scale: [1, 0.4, 1] | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | gradient: [[-1, 0.8], [-0.6, 0.5], [-0.2, 0.2], [0.2, 0.9], [0.6, 0.7], [1, 0.1]], | ||
+ | terrain: { | ||
+ | base: 1, | ||
+ | cover: { | ||
+ | height: 4, | ||
+ | top: 2, | ||
+ | block: 3 | ||
+ | }, | ||
+ | } | ||
+ | },</syntaxhighlight> | ||
− | | + | <div class="mw-parser-output"><div class="mw-highlight mw-content-ltr" dir="ltr"><p><br class="single_linebreak"/>Рассмотрим каждую часть кода подробнее:<br class="single_linebreak"/></div></div><div class="mw-parser-output"><ul><li class="mw_paragraph">range - диапазон высоты, в котором работает генерация. В данном примере ландшафт будет генерироваться на высоте 0-80 блоков. Единственный обязательный параметр.</li><li class="mw_paragraph">noise - описание [https://ru.wikipedia.org/wiki/Шум_Перлина шума Перлина], лежащего в основе генерации Подробнее в разделе [#h17sjgmldkil1on4brwi27i3pubts6s Карты шума]. Таких шумов может несколько, в таком случае их следует записывать в виде массива и они будут накладываться.</li><li class="mw_paragraph">heights - сродни noise, но накладывается поверх шума. Имеет такой же формат. Используется для генерации мелких биомов (речки, горы)<div class="mw-parser-output"></div><div class="mceNonEditableOverlay"></div></li><li class="mw_paragraph">gradient - описание функции [https://ru.wikipedia.org/wiki/Градиент градиента], которая будет применена к шуму. Отвечает за то, как примерно будет выглядеть ландшафт. Задается в виде набора точек. Между точками интерполируется (соединяется плавной кривой).</li><li class="mw_paragraph"><br class="single_linebreak"/></li></ul></div><h3 class="mw_paragraph" id="h17sjgmldkil1on4brwi27i3pubts6s">Карты шума</h3> |
Dimensions - библиотека, значительно упрощающая процесс создания измерений. В этой документации будут описаны ее основные возможности и функционал.
Для подключения данной библиотеки используется следующая строка:
IMPORT("dimensions");
<span></span><span class="nx">IMPORT</span><span class="p">(</span><span class="s2">"dimensions"</span><span class="p">);</span>
Для генерации измерения используется объектDimension. В конструктор передаются параметры, связанные с измерением в следующем формате:
var dim007 = new Dimension({
name: "dim007", // Название измерения
generation: { //Генерация
layers: [
//Слои генерации
],
decoration: {
}
},
environment: {
},
callbacks: {
// Основные коллбеки измерения
// Здесь приведены все коллбеки измерений, ненужные можно опустить.
tick: function() {
},
generateChunk: function(chunkX, chunkZ) {
// Генерация чанка
},
loaded: function() {
// Загрузка измерения
},
loaded: function() {
// Выгрузка измерения
}
});
Основной единицей генерации является слой. Слоев может быть несколько и каждый из них отвечает за отдельную часть генерации ландшафта: различные биомы, слой бедрока, метеориты, парящие в воздухе. Каждый слой представляет из себя json-объект следующего содержания:
{
range: [0, 80],
noise: {
octaves: {
count: 4,
weight: 0.6,
scale: [1, 0.4, 1]
}
},
gradient: [[-1, 0.8], [-0.6, 0.5], [-0.2, 0.2], [0.2, 0.9], [0.6, 0.7], [1, 0.1]],
terrain: {
base: 1,
cover: {
height: 4,
top: 2,
block: 3
},
}
},
Рассмотрим каждую часть кода подробнее:
</div></div>