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) 前往,位置取自该世界。