API

Dimensões

Mundos próprios, com seu céu, seu terreno e seus biomas. Jogadores e criaturas viajam até lá por teletransporte.

Declarando uma dimensão

Ela é declarada com um tipo e uma forma de terreno:

content/dimensions.craftCraftScript
dimension "ruby_realm" { kind: "overworld", terrain: "normal", biome: "ruby_meadow" }
dimension "flatland" { terrain: "flat" }
Propriedade Valores
kind seu céu, luz e regras: overworld, nether ou end
terrain sua forma, veja abaixo
biome opcional: um único bioma em toda parte, do mod ("ruby_meadow") ou do jogo ("minecraft:cherry_grove"). Sem ele, os biomas usuais desse terreno

Terreno

Terreno Forma
normal colinas, cavernas e oceanos, como o mundo comum
flat plano: bedrock, terra e grama
nether um mundo fechado de cavernas com mares de lava
islands ilhas flutuantes no vazio

Remodelando as dimensões do jogo

O Overworld, o Nether e o End também podem ser alterados, sem uma dimensão própria. Um mod pode dar ao terreno de uma delas um formato escrito em código (terrain "minecraft:the_end" { … }), e escolher qual bioma vai onde no End (biome_map "minecraft:the_end" { … }). Só um mod pode dar forma a cada dimensão, e só um pode escolher os seus biomas. As duas coisas são explicadas na página Geração por código.

Viajando

Jogadores e criaturas viajam se teletransportando para um local da dimensão. O mundo dela é obtido pelo id, <id do mod>:<nome>. O chunk de destino é carregado na chegada.

O mesmo vale a partir de um evento, por exemplo ao usar um item. Um bom exemplo é um comando /realm que leva o jogador até lá e de volta:

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"
}

Em Kotlin

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

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

Viaje com entity.teleport(location), com um local desse mundo.