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), указавши точку в цьому світі.