API

Измерения

Собственные миры со своим небом, рельефом и биомами. Игроки и существа попадают туда телепортацией.

Объявление измерения

Его объявляют, указав вид и форму рельефа:

content/dimensions.craftCraftScript
dimension "ruby_realm" { kind: "overworld", terrain: "normal", biome: "ruby_meadow" }
dimension "flatland" { terrain: "flat" }
Свойство Значения
kind его небо, свет и правила: overworld, nether или end
terrain его форма, см. ниже
biome необязательно: один биом везде, из мода ("ruby_meadow") или из игры ("minecraft:cherry_grove"). Без него — обычные биомы этого рельефа

Рельеф

Рельеф Форма
normal холмы, пещеры и океаны, как в обычном мире
flat плоский: коренная порода, земля и трава
nether замкнутый мир пещер с морями лавы
islands парящие острова в пустоте

Изменение игровых измерений

Верхний мир, Нижний мир и Край тоже можно менять, не создавая своё измерение. Мод может задать рельефу одного из них форму, написанную кодом (terrain "minecraft:the_end" { … }), и выбрать, какой биом где находится в Краю (biome_map "minecraft:the_end" { … }). Форму каждого измерения может задавать только один мод, и биомы тоже выбирает только один. Оба случая описаны на странице Генерация кодом.

Путешествие

Игроки и существа путешествуют, телепортируясь в точку измерения. Его мир находят по id, <id мода>:<имя>. Чанк назначения загружается по прибытии.

То же работает из события, например при использовании предмета. Хороший пример — команда /realm, которая отправляет игрока туда и обратно:

commands/realm.craftCraftScript
command realm describe "Travel to the Ruby Realm and back" {
    if player == null { return "Players only" }
    let realm = world("rubies:ruby_realm")
    if player.world.id == realm.id {
        player.teleport(world().block_at(0, 100, 0).location)
        return "Back home"
    }
    player.teleport(realm.block_at(0, 100, 0).location)
    return "Welcome to the Ruby Realm"
}

На Kotlin

content/Dimensions.ktKotlin
dimension("ruby_realm") {
    kind = DimensionKind.OVERWORLD
    terrain = Terrain.NORMAL
    biome = "ruby_meadow"
}

dimension("flatland") { terrain = Terrain.FLAT }

Путешествуй через entity.teleport(location), указав точку в этом мире.