方块

创建一个基本方块配置

我们知道,要创建自定义方块,你需要利用方块状态,即使使用这些状态,也不会对游戏产生太大影响。一个很好的例子就是音符盒。

我们需要指定我们打算替换的原始方块状态。对于音符盒的状态包括乐器、音高和是否收到红石信号。

state:
  instrument: harp
  note: 0
  powered: false

如果觉得这太复杂了,你可以通过使用简单的数字 ID 来简化这个过程,插件会为你处理好。状态的上限是由该方块可用的变体数量决定的。

state: 0

你可以使用任何父模型,这些模型可以来自 Minecraft 内置的模型(比如 minecraft:block/cube_all),也可以来自你自定义的模型(比如 my_blocks:block/template)。

blocks:
  example_block:
    behavior:
      type: falling_block
      value:
        dust-color: -8356741
    states:
      default:
        base_block: note_block
        state:
          instrument: harp
          note: 0
          powered: false
        model:
          path: "my_blocks:block/example_block"
          generation:
            parent: "minecraft:block/cube_all"
            textures:
              "all": "my_blocks:block/example_block"
  directional_block:
    behavior:
      type: directional_block
      value:
        directions: 3
    states:
      axis_x:
        base_block: note_block
        state:
          instrument: harp
          note: 0
          powered: false
        model:
          path: "my_blocks:block/example_block_x"
      axis_y:
        base_block: note_block
        state:
          instrument: harp
          note: 1
          powered: false
        model:
          path: "my_blocks:block/example_block_y"
      axis_z:
        base_block: note_block
        state:
          instrument: harp
          note: 2
          powered: false
        model:
          path: "my_blocks:block/example_block_z"

将物品链接到方块

与其他插件不同,这个插件的设计中,物品和方块是分开的。就像 Minecraft 的设计一样,有些方块在库存中以2D物品的形式出现,但放置后会变成3D 的。有些方块放置前后看起来一样,而另一些方块,比如末地传送门方块,甚至没有对应的物品形态。

你会注意到在这种情况下,物品也叫 example_block,但这和方块配置中的 example_block 并不冲突,因为这两个 ID 本质上是注册在不同的注册表中的。

items:
  example_block:
    material: paper
    custom-model-data: 1000
    custom-name: '<lang:block.example_block>'
    model:
      path: "my_items:item/example_block"
      generation:
        parent: "my_blocks:block/example_block"
    behavior:
      type: block_item
      value: example_block

在这个例子中,我们创建了一个与方块关联的物品,它的模型继承自方块的模型,因此看起来和方块一样。在这里,我们使用了 block_item 行为,这是插件提供的默认行为之一,提供了类似于原版 Minecraft 系统的方块放置机制。当然,还有很多其他类型的机制可供选择,包括通过 API 注册的自定义机制,以满足各种需求。

最后更新于