API

Dimensionen

Eigene Welten mit eigenem Himmel, Gelände und eigenen Biomen. Spieler und Kreaturen reisen per Teleport dorthin.

Eine Dimension deklarieren

Sie wird mit einer Art und einer Geländeform deklariert:

content/dimensions.craftCraftScript
dimension "ruby_realm" { kind: "overworld", terrain: "normal", biome: "ruby_meadow" }
dimension "flatland" { terrain: "flat" }
Eigenschaft Werte
kind Himmel, Licht und Regeln: overworld, nether oder end
terrain ihre Form, siehe unten
biome optional: überall ein einziges Biom, aus der Mod ("ruby_meadow") oder aus dem Spiel ("minecraft:cherry_grove"). Ohne Angabe gelten die üblichen Biome dieses Geländes

Gelände

Gelände Form
normal Hügel, Höhlen und Ozeane, wie die Oberwelt
flat flach: Grundgestein, Erde und Gras
nether eine geschlossene Höhlenwelt mit Lavameeren
islands schwebende Inseln in der Leere

Die Dimensionen des Spiels umformen

Auch die Oberwelt, der Nether und das End lassen sich verändern, ohne eine eigene Dimension. Eine Mod kann dem Land einer von ihnen eine in Code geschriebene Form geben (terrain "minecraft:the_end" { … }) und festlegen, welches Biom im End wohin kommt (biome_map "minecraft:the_end" { … }). Nur eine Mod darf jede Dimension formen, und nur eine darf ihre Biome festlegen. Beides wird auf der Seite Generierung per Code erklärt.

Reisen

Spieler und Kreaturen reisen, indem sie an einen Ort der Dimension teleportiert werden. Ihre Welt findest du über die ID <Mod-ID>:<Name>. Der Ziel-Chunk wird bei der Ankunft geladen.

Dasselbe funktioniert aus einem Event, zum Beispiel beim Benutzen eines Gegenstands. Ein gutes Beispiel ist ein Befehl /realm, der den Spieler hin und zurück schickt:

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

In Kotlin

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

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

Reise mit entity.teleport(location), mit einem Ort aus dieser Welt.