Files
netease-modsdk-wiki/docs/mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/0-自定义方块概述.md
2025-03-18 14:46:12 +08:00

84 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
front:
hard: 入门
time: 分钟
---
# 自定义方块概述
<span id="customBlockJump"></span>
该功能不需要开启实验性玩法。
开发者可以通过在addon中配置json来添加自定义方块。添加的自定义方块支持ModAPI中与方块及物品相关的所有事件及接口。
## 注册
以demo [CustomBlocksMod](../../13-模组SDK编程/60-Demo示例.md#CustomBlocksMod)为例:
1. 在行为包中新建`netease_blocks`目录
![reg-1](./picture/customblock/reg_1.png)
2. 在目录下新建一个json用于编写方块的定义。
![reg-2](./picture/customblock/reg-2.png)
![reg-3](./picture/customblock/reg-3.png)
- json中至少有一个component
- **identifier**的格式为:命名空间[冒号]方块名。identifier必须全局唯一命名空间推荐与mod名称一致。
- **mod中其他地方都是用这个identifier与这个自定义方块对应上**。
3. 将方块的贴图放到`textures\blocks`
可以支持高于16×16分辨率的高清贴图但需要注意过高的分辨率会导致手机端尤其是低端机上无法进入游戏。
![reg-4](./picture/customblock/reg-4.png)
4. 在textures中新建`terrain_texture.json`编写资源名与贴图的对应关系。资源名的命名必须满足全局唯一。json格式可参考“Mod PC开发包”的`data\resource_packs\vanilla\textures\terrain_texture.json`
![reg-5](./picture/customblock/reg-5.png)
![reg-6](./picture/customblock/reg-6.png)
5. 在resource中新建一个`blocks.json`,编写方块贴图及声音,贴图的值需要与上一步`terrain_texture.json`中配置的资源名对应。json格式可参考“Mod PC开发包”的`data\resource_packs\vanilla\blocks.json`
![reg-7](./picture/customblock/reg-7.png)
![reg-8](./picture/customblock/reg-8.png)
6.`texts\zh_CN.lang`中配置方块中文名称:
键的格式为`tile.方块identifier.name`
![reg-9](./picture/customblock/reg-9.png)
![reg-10](./picture/customblock/reg-10.png)
7. 重复1-6编写其他自定义方块
## 卸载
若使用了自定义方块的存档卸载mod后再进入时
1. 对地图上已存在的自定义方块:
1自定义方块会变为未知的方块。如果用GetBlockNew接口获取它的信息indentifier是之前的自定义方块。生存模式下玩家可以用手瞬间破坏这个未知的方块生成掉落物且可以拾取。拾取到背包后显示的物品名字为”未知“且无法放置到世界中。
2若某个subchunk未进行过方块更新那么重新加载mod时自定义方块会保留。但一旦subchunk进行了方块更新即使重新加载mod自定义方块会永远消失。
2. 对玩家背包中的自定义方块:
物品会消失。若重新加载mod对卸载期间登录过的玩家物品不会恢复没登录过的玩家物品可以保留。
3. 对地图上容器内的自定义方块:
物品会消失。若重新加载mod对卸载期间进行探索过的区域内的容器物品不会恢复未探索区域的容器物品可以保留。
4. 对地图上未捡起的掉落物:
掉落物会消失。若重新加载mod对卸载期间进行探索过的区域掉落物不会恢复除非subchunk内没有其他任何entity未探索区域的掉落物可以保留。