• 论坛

导航

  • 主页
  • 样式指南
  • 入门
    • 概述
    • Mod的结构
    • Forge更新检查器
  • 概念
    • Sides
    • 资源
    • 注册表
    • Jar签名
  • 方块
    • 概述
    • 方块互动
  • 方块状态
    • 方块状态介绍
    • 方块状态JSON介绍
    • Forge方块状态JSON
  • TileEntity
    • 特殊渲染器
  • 物品
    • 主页
    • 战利品表
  • 事件
    • 基本用法
  • 网络
    • 主页
    • 概述
    • SimpleImpl
  • 数据储存
    • 能力系统
    • World Saved Data
    • 拓展实体属性
  • 工具
    • 矿物词典
  • 效果
    • 音效
  • 惯例
    • 版本命名
    • 文件位置
    • 加载阶段
  • 参与Forge开发
    • 入门
    • PR指南

方块状态JSON简介

方块状态(Blockstate)JSON根据方块的方块状态属性(Blockstate Properties)值告诉游戏其应当使用哪一个模型。
一个简单的无属性方块只有标准(normal)一个默认的方块状态。
一个有多种显示方式的更加复杂的方块(译注: 比如能够旋转的方块)有变种(variants)。

举个例子,我们来看一看原版的 oak_log.json:

{
    "variants": {
        "axis=y":    { "model": "oak_log" },
        "axis=z":     { "model": "oak_log_side" },
        "axis=x":     { "model": "oak_log_side", "y": 90 },
        "axis=none":   { "model": "oak_bark" }
    }
}

你可以看到它并没有标准状态,只有依赖于”axis”值的不同的变种。根据木头被对齐的轴,它会使用正立的模型,横向的模型(旋转90°或者没有旋转的),或者是,如果这个方块的轴没有被设定,六面全是树皮的模型。

这个例子中木头只有一个属性: axis。定义一个状态必须使用一个方块的所有的属性。这会很快导致变种组合的爆炸。我们来看一看原版中栅栏的其中一个变种:

"east=false,north=false,south=false,west=false": { "model": "oak_fence_post" }

要注意的是,在原版的Blockstate JSON中,属性的名称必须按照字母表顺序排列,而且资源和属性名称都必须是小写的。这也包括Blockstate的变种("east=false")。

而这仅仅是其16个变种中的一个。这会很快导致非常大并且冗长的blockstate文件,这也是Minecraft 1.8的主要问题。Minecraft 1.9将会引入一个系统使这个问题得到控制。Forge’s Blockstate Json让你能在1.8里面解决这个问题。

基于 MkDocs 使用自定义主题构建. 托管于 Read the Docs.
启用夜间模式