Files
netease-bedrock-wiki/mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/0-自定义方块概述.md
2024-12-23 10:57:59 +08:00

3.7 KiB
Raw Blame History

front, hard, time
front hard time
入门 分钟

自定义方块概述

该功能不需要开启实验性玩法。

开发者可以通过在addon中配置json来添加自定义方块。添加的自定义方块支持ModAPI中与方块及物品相关的所有事件及接口。

注册

以demo CustomBlocksMod为例:

  1. 在行为包中新建netease_blocks目录

    reg-1

  2. 在目录下新建一个json用于编写方块的定义。json的格式可参考官方wiki

    reg-2

    reg-3

    • json中至少有一个component
    • identifier的格式为:命名空间[冒号]方块名。命名空间推荐与mod名称一致。而冒号后的方块名必须全局唯一为避免与原版方块以及其他mod重复请加上命名空间作为前缀来保证唯一

    例如图中的customblocks:customblocks_test0 而不要写成customblocks:test0。

    • mod中其他地方都是用这个identifier与这个自定义方块对应上
  3. 将方块的贴图放到textures\blocks

    可以支持高于16x16分辨率的高清贴图但需要注意过高的分辨率会导致手机端尤其是低端机上无法进入游戏。

    reg-4

  4. 在textures中新建terrain_texture.json编写资源名与贴图的对应关系。资源名的命名必须满足全局唯一。json格式可参考“Mod PC开发包”的data\resource_packs\vanilla\textures\terrain_texture.json

    reg-5

    reg-6

  5. 在resource中新建一个blocks.json,编写方块贴图及声音,贴图的值需要与上一步terrain_texture.json中配置的资源名对应。json格式可参考“Mod PC开发包”的data\resource_packs\vanilla\blocks.json

    reg-7

    reg-8

  6. texts\zh_CN.lang中配置方块中文名称:

    键的格式为tile.方块identifier.name

    reg-9

    reg-10

  7. 重复1-6编写其他自定义方块

卸载

若使用了自定义方块的存档卸载mod后再进入时

  1. 对地图上已存在的自定义方块:

    1自定义方块会变为未知的方块。如果用GetBlockNew接口获取它的信息indentifier是之前的自定义方块。生存模式下玩家可以用手瞬间破坏这个未知的方块生成掉落物且可以拾取。拾取到背包后显示的物品名字为”未知“且无法放置到世界中。

    2若某个subchunk未进行过方块更新那么重新加载mod时自定义方块会保留。但一旦subchunk进行了方块更新即使重新加载mod自定义方块会永远消失。

  2. 对玩家背包中的自定义方块:

    物品会消失。若重新加载mod对卸载期间登录过的玩家物品不会恢复没登录过的玩家物品可以保留。

  3. 对地图上容器内的自定义方块:

    物品会消失。若重新加载mod对卸载期间进行探索过的区域内的容器物品不会恢复未探索区域的容器物品可以保留。

  4. 对地图上未捡起的掉落物:

    掉落物会消失。若重新加载mod对卸载期间进行探索过的区域掉落物不会恢复除非subchunk内没有其他任何entity未探索区域的掉落物可以保留。