Dimensions — различия между версиями

(Генерация)
Строка 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>

Версия 21:57, 30 апреля 2018

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>

  • range - диапазон высоты, в котором работает генерация. В данном примере ландшафт будет генерироваться на высоте 0-80 блоков. Единственный обязательный параметр.
  • noise - описание шума Перлина, лежащего в основе генерации Подробнее в разделе [#h17sjgmldkil1on4brwi27i3pubts6s Карты шума]. Таких шумов может несколько, в таком случае их следует записывать в виде массива и они будут накладываться.
  • heights - сродни noise, но накладывается поверх шума. Имеет такой же формат. Используется для генерации мелких биомов (речки, горы)
  • gradient - описание функции градиента, которая будет применена к шуму. Отвечает за то, как примерно будет выглядеть ландшафт. Задается в виде набора точек. Между точками интерполируется (соединяется плавной кривой).

Карты шума