Dimensions

Dimensions - библиотека, значительно упрощающая процесс создания измерений. В этой документации будут описаны ее основные возможности и функционал.

Подключение

Для подключения данной библиотеки используется следующая строка:

IMPORT("dimensions");

Генерация

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

</div>

Карты шума