API

Dimensiones

Mundos propios, con su cielo, su terreno y sus biomas. Jugadores y criaturas viajan a ellos teletransportándose.

Declarar una dimensión

Se declara con un tipo y una forma de terreno:

content/dimensions.craftCraftScript
dimension "ruby_realm" { kind: "overworld", terrain: "normal", biome: "ruby_meadow" }
dimension "flatland" { terrain: "flat" }
Propiedad Valores
kind su cielo, luz y reglas: overworld, nether o end
terrain su forma, ver más abajo
biome opcional: un solo bioma en todas partes, de tu mod ("ruby_meadow") o del juego ("minecraft:cherry_grove"). Sin él, los biomas habituales de ese terreno

Terreno

Terreno Forma
normal colinas, cuevas y océanos, como el mundo normal
flat plano: roca madre, tierra y hierba
nether un mundo cerrado de cavernas con mares de lava
islands islas flotantes en el vacío

Remodelar las dimensiones del juego

El Overworld, el Nether y el End también se pueden cambiar, sin una dimensión propia. Un mod puede dar al terreno de una de ellas una forma escrita en código (terrain "minecraft:the_end" { … }), y elegir qué bioma va dónde en el End (biome_map "minecraft:the_end" { … }). Solo un mod puede dar forma a cada dimensión, y solo uno puede elegir sus biomas. Ambas cosas se explican en la página Generación por código.

Viajar

Jugadores y criaturas viajan teletransportándose a una ubicación de la dimensión. Su mundo se obtiene con su id, <id del mod>:<nombre>. El chunk de destino se carga al llegar.

Lo mismo sirve desde un evento, por ejemplo al usar un ítem. Un buen ejemplo es un comando /realm que lleva al jugador allí y de vuelta:

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

En Kotlin

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

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

Viaja con entity.teleport(location), con una ubicación de ese mundo.