API

ディメンション

独自の空、地形、バイオームを持つ、自分だけのワールド。プレイヤーとモブはテレポートで移動します。

ディメンションを宣言する

種類と地形の形を指定して宣言します。

content/dimensions.craftCraftScript
dimension "ruby_realm" { kind: "overworld", terrain: "normal", biome: "ruby_meadow" }
dimension "flatland" { terrain: "flat" }
プロパティ 値
kind 空、明るさ、ルール:overworld、nether、end
terrain 地形の形。下を参照
biome 省略可:どこでも同じ 1 つのバイオーム。Mod のもの("ruby_meadow")でもゲームのもの("minecraft:cherry_grove")でも可。省略すると、その地形の通常のバイオーム

地形

地形 形
normal 丘、洞窟、海があるオーバーワールドのような地形
flat 平坦:岩盤、土、草
nether 溶岩の海がある、閉じた洞窟の世界
islands 虚空に浮かぶ島々

ゲームのディメンションの形を変える

オーバーワールド、ネザー、エンドも、独自のディメンションを作らずに変えられます。Mod は、それらの地形に、コードで書いた形(terrain "minecraft:the_end" { … })を与えたり、エンドのどこにどのバイオームを置くかを選んだり(biome_map "minecraft:the_end" { … })できます。各ディメンションを形作れる Mod は 1 つだけで、バイオームを選べる Mod も 1 つだけです。どちらもコードによる生成のページで説明しています。

移動する

プレイヤーとモブは、ディメンション内の位置へテレポートして移動します。そのワールドは ID <Mod 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) で、そのワールド内の位置へ移動します。