Skip to content

多方块结构配方 (Multiblock Recipe) ​

多方块结构配方用于定义复杂的多方块结构,并在其中心产出物品。

基本结构 ​

json
{
  "type": "anvilcraft:multiblock",
  "pattern": {
    "layers": [
      ["   ", " B ", "   "],
      ["BAB", "A A", "BAB"],
      ["BBB", "BBB", "BBB"]
    ],
    "symbols": {
      "A": {
        "predicate": {
          "blocks": "minecraft:iron_block"
        }
      },
      "B": {
        "predicate": {
          "blocks": "minecraft:gold_block"
        }
      }
    }
  },
  "result": {
    "id": "minecraft:diamond",
    "count": 1
  }
}

字段说明 ​

type ​

固定值 anvilcraft:multiblock,标识这是一个多方块结构配方。

pattern ​

定义多方块结构的形状和组成:

  • layers: 由字符串数组组成的层数,每一层都是一个二维的字符网格
  • symbols: 字符与方块谓词的映射关系

layers ​

每一层由相同长度的字符串数组组成,每个字符串代表一行,每个字符代表一个方块位置:

  • 空格字符表示该位置不需要任何方块
  • 其他字符需要在 symbols 中定义对应的方块谓词

symbols ​

字符与方块谓词的映射:

  • 键为在 layers 中使用的字符
  • 值为方块谓词,定义该位置允许的方块类型

result ​

配方的输出物品:

  • id: 物品ID
  • count: 物品数量(可选,默认为1)

方块谓词 ​

方块谓词用于定义某位置允许的方块类型:

基本方块谓词 ​

json
{
  "predicate": {
    "blocks": "minecraft:iron_block"
  }
}

带属性的方块谓词 ​

json
{
  "predicate": {
    "blocks": "minecraft:hopper",
    "properties": {
      "facing": "down"
    }
  }
}

方块标签谓词 ​

json
{
  "predicate": {
    "tag": "minecraft:logs"
  }
}

使用示例 ​

简单的3x3x3结构 ​

json
{
  "type": "anvilcraft:multiblock",
  "pattern": {
    "layers": [
      ["AAA", "AAA", "AAA"],
      ["A A", "A A", "A A"],
      ["AAA", "AAA", "AAA"]
    ],
    "symbols": {
      "A": {
        "predicate": {
          "blocks": "minecraft:iron_block"
        }
      }
    }
  },
  "result": {
    "id": "minecraft:chest",
    "count": 1
  }
}

复杂结构示例 ​

json
{
  "type": "anvilcraft:multiblock",
  "pattern": {
    "layers": [
      ["RAR", "A A", "RAR"],
      ["RGR", "G G", "RGR"],
      ["RRR", "RRR", "RRR"]
    ],
    "symbols": {
      "R": {
        "predicate": {
          "blocks": "minecraft:redstone_block"
        }
      },
      "A": {
        "predicate": {
          "blocks": "minecraft:iron_block"
        }
      },
      "G": {
        "predicate": {
          "blocks": "minecraft:gold_block"
        }
      }
    }
  },
  "result": {
    "id": "minecraft:diamond_block",
    "count": 1
  }
}

注意事项 ​

  1. 多方块结构的中心点位于结构的正中心
  2. 结构必须完整匹配才能触发配方
  3. 空格字符表示该位置不需要任何方块
  4. 符号定义必须覆盖所有在层中使用的字符
  5. 结构大小没有严格的限制,但建议保持在合理的范围内以保证性能

Released under the CC-BY-NC-SA 4.0 License.