feat:上传mcguide-开发指南部份
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
---
|
||||
front:
|
||||
hard: 入门
|
||||
time: 40分钟
|
||||
---
|
||||
|
||||
# 自定义方块Demo详解
|
||||
|
||||
## 概要
|
||||
[示例Demo](../99-下载内容.html#示例demo)中的CustomBlockDemo包含客户端Mod
|
||||
|
||||
客户端Mod自定义了四种方块:
|
||||
|
||||
- custom:custom_block_squirrel
|
||||
|
||||
使用了自定义松鼠模型的方块
|
||||
|
||||
- custom:my_block1
|
||||
|
||||
破坏时间为10s的自定义方块
|
||||
|
||||
- custom:my_block2
|
||||
|
||||
自发光方块,发光强度为1.0
|
||||
|
||||
- custom:my_block3
|
||||
|
||||
四面向方块,根据玩家摆放方向不同而不同
|
||||
|
||||
## 开发流程
|
||||
- 自定义方块1-3
|
||||
1. 参照[自定义方块实体概述](../../../20-玩法开发/15-自定义游戏内容/2-自定义方块/0-自定义方块概述.md) 、[自定义方块Json组件](../../../20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.md),增加对应方块定义、Json组件
|
||||

|
||||
|
||||
2. 使用原生Spigot命令,获取带SkullOwner的头颅
|
||||
```
|
||||
/give @s minecraft:skull 64 3 {SkullOwner: { "Name" : "geyser_custom_block_custom:my_block1"}}
|
||||
/give @s minecraft:skull 64 3 {SkullOwner: { "Name" : "geyser_custom_block_custom:my_block2"}}
|
||||
/give @s minecraft:skull 64 3 {SkullOwner: { "Name" : "geyser_custom_block_custom:my_block3"}}
|
||||
```
|
||||
|
||||
3. 最终效果如下:
|
||||

|
||||
|
||||
- 自定义松鼠方块
|
||||
1. 参照[自定义方块实体外观](../../../20-玩法开发/15-自定义游戏内容/2-自定义方块/4.1-自定义方块实体外观.md),定义方块实体、动画controller、动画、骨骼模型、贴图等
|
||||

|
||||
|
||||
2. 需要注意的是,基于头颅换皮的情况下,方块本身即带有服务端方块实体。若加上**netease:block_entity**字段,则同时会生成客户端方块实体;不加**netease:block_entity**字段则无客户端方块实体。
|
||||
```
|
||||
"netease:block_entity": {
|
||||
"tick": true, // 无效字段,可以不填
|
||||
"movable": false // 无效字段,可以不填
|
||||
},
|
||||
```
|
||||
|
||||
3. 使用Spigot原生命令
|
||||
```
|
||||
/give @s minecraft:skull 64 3 {SkullOwner: { "Name" : "geyser_custom_block_custom:custom_block_squirrel"}}
|
||||
```
|
||||
|
||||
4. 最终效果如下:
|
||||

|
||||
|
||||
## 目前支持组件详解
|
||||
|
||||
1. Q: **netease:aabb** 组件在使用上有没有限制?
|
||||
|
||||
A: 由于方块实际上为头颅换皮,因此目前**netease:aabb**设置值应大于头颅的aabb,否则会出现服务端客户端不一致的挖掘表现,头颅aabb具体为
|
||||
```json
|
||||
{
|
||||
"netease:aabb": {
|
||||
"collision": {
|
||||
"min": [0.25, 0.0, 0.25],
|
||||
"max": [0.75, 0.5, 0.75]
|
||||
},
|
||||
"clip": {
|
||||
"min": [0.25, 0.0, 0.25],
|
||||
"max": [0.75, 0.5, 0.75]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
PS:另外需要注意的是,在apollo2.0中**collision**和**clip**均为必须字段,缺少时Geyser会报错!
|
||||
|
||||
2. Q: **netease:face_directional** 组件在使用上有没有限制?
|
||||
|
||||
A: 由于头颅方块并没有细致到上下朝向的区分,因此目前组件只支持四方向类型,即只支持 **type: "direction"**
|
||||
|
||||
3. Q:**netease:block_entity**使用时有什么需要注意的地方?
|
||||
|
||||
A:对于Apollo2.0来说,服务端本身就自带了Skull方块实体,而只需要有这个组件即可保证客户端同时生成方块实体。
|
||||
|
||||
由于子字段中的 **tick** 、 **moveable** 为服务端逻辑,在Apollo2.0中为无效字段,需要自行通过Spigot插件的方式,修改Skull方块实体进行兼容。
|
||||
|
||||
**tick** 、 **moveable** 为无效字段可以理解成不配置相应字段也不会出现问题
|
||||
|
||||
4. Q:**minecraft:destory_time**使用时有什么需要注意的地方吗?
|
||||
|
||||
A:目前**destory_time** 可以设置方块所需的挖掘时间,由于服务端仍然是头颅 **destory_time**设置小于原生头颅时,会出现挖掘纹理和挖掘时间不一致问题。
|
||||
|
||||
因此,不建议**destory_time**值小于 **1.5**
|
||||
Reference in New Issue
Block a user