148 lines
6.4 KiB
Markdown
148 lines
6.4 KiB
Markdown
---
|
||
front:
|
||
hard: 入门
|
||
time: 分钟
|
||
---
|
||
|
||
# 自定义流体
|
||
|
||
## 概述
|
||
|
||
自定义流体需要设置两个方块,一个静态流体,一个动态流体。液体在流动过程中最外层是动态流体,其他都是静态流体,二者会相互转换。当流体扩散完毕后可见的均已转化为静态流体,可以通过设置不同颜色来观察动态流体与静态流体之间的相互转换。
|
||
|
||
|
||
|
||
## base_block设置
|
||
|
||
- 自定义流体的**base_block**,静态流体需要设为**liquid**,动态流体需要设为**flowing_liquid**
|
||
- 命名规则,因为静态流体与动态流体是相互转换的,在引擎层通过flowing去定位,所以需要注册一对才能正常使用
|
||
- 静态流体——**命名空间:流体方块名**,例如`customLiquid:red_water`
|
||
- 动态流体——**命名空间:flowing_流体方块名**,例如`customLiquid:flowing_red_water`
|
||
|
||
|
||
|
||
## 动画纹理
|
||
|
||
- 流体需要在`resource/textures/flipbook_textures.json`中配置动画纹理使其贴图拥有动态流动效果,属于微软功能。
|
||
|
||
|
||
|
||
## 流体方块介绍
|
||
|
||
- 可在netease:liquid中设置流体方块的流动速度、流动范围、颜色以及能否使船浮起来
|
||
- 流体方块与原版水一致,如图所示:
|
||
|
||

|
||
|
||
|
||
|
||
## netease:liquid
|
||
|
||
| 键 | 类型 | 默认值 | 解释 |
|
||
| -------------- | ------------- | ---------------------------------------- | ------------------------------------------------------------ |
|
||
| liquid_color | array | [255, 255, 255, 255] | 可选,流体颜色,4个数依次对应RGBA,取值范围均为0-255。透明度只有在开启了“精美图像”选项时生效。 |
|
||
| spread_range | int | 8 | 可选,流体范围,以动态流体为中心往外扩散的格数,取值范围1-8,仅动态流体有效 |
|
||
| spread_delay | int | 5 | 可选,流体扩散刻数,每经过该刻数扩散一格,每秒20刻,仅动态流体有效 |
|
||
| spread_fire | bool | false | 可选,是否传播火,可参考岩浆效果 |
|
||
| can_float_boat | bool | true | 可选,流体是否能浮起船来,动态流体及静态流体均需要设置 |
|
||
| bucket_name | string | "water_bucket" | 可选,空桶对水源使用使获得的物品,默认是原版的水桶(如果是自定义物品需带上命名空间,输入完整的物品id) |
|
||
| water_splash | string | "minecraft:water_splash_particle_manual" | 可选,实体进入流体时会播放对应的粒子特效,在玩家所在位置附近随机播放若干该特效,特效需采用微软特效 |
|
||
| mob_effects | array(dict) | [] | 可选,实体进入流体时添加状态效果,会触发对应的添加/刷新状态效果的事件 |
|
||
| remove_effects | array(string) | [] | 可选,实体进入流体时移除状态效果,会触发对应的移除状态效果的事件 |
|
||
|
||
- 如果没有注册该组件,液体颜色、范围及扩散延迟默认和原版水一样,**但是将无法使船浮起来**
|
||
|
||
添加状态效果mob_effects各字段配置如下:
|
||
|
||
| 键 | 类型 | 解释 |
|
||
| ------------- | ------ | -------------------------------------------- |
|
||
| effect_name | string | 状态效果名称 |
|
||
| duration | int | 状态效果持续时间 |
|
||
| amplifier | int | 状态效果倍率,比等级小1,例如力量II的倍率为1 |
|
||
| show_particle | bool | 是否显示状态效果的粒子效果,默认不显示 |
|
||
|
||
|
||
|
||
## 自定义流体方块相关特性
|
||
|
||
- 可以在游戏内通过指令/setblock放置方块,静态方块放置后不会向周围扩散,当其周围方块发生变化时会转变成流动方块,继承流动特性
|
||
- 继承自原版水,因此会有原版水的特性,例如和岩浆有互动、玩家进入会有流动效果、溺水、与海绵互动等。
|
||
- 用水桶装载后会生成普通水桶,通过配置bucket_name可实现生成别的物品,可结合自定义桶实现自定义流体的装载与倒出
|
||
|
||
|
||
|
||
## 示例
|
||
|
||
动态流体:
|
||
|
||
```json
|
||
{
|
||
"format_version": "1.16.0",
|
||
"minecraft:block": {
|
||
"description": {
|
||
"identifier": "customblocks:flowing_green_water",
|
||
"base_block": "flowing_liquid"
|
||
},
|
||
"components": {
|
||
"netease:liquid": {
|
||
"liquid_color": [ 0, 128, 0, 254 ],
|
||
"spread_range": 4,
|
||
"spread_delay": 5,
|
||
"bucket_name": "customBucket:green_bucket",
|
||
"spread_fire": true,
|
||
"mob_effects": [
|
||
{
|
||
"effect_name": "slowness",
|
||
"duration": 3,
|
||
"amplifier": 1,
|
||
"show_particle": true
|
||
},
|
||
{
|
||
"effect_name": "weakness",
|
||
"duration": 1,
|
||
"amplifier": 4
|
||
}
|
||
],
|
||
"remove_effects": [ "speed", "jump_boost" ]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
静态流体:
|
||
|
||
```json
|
||
{
|
||
"format_version": "1.16.0",
|
||
"minecraft:block": {
|
||
"description": {
|
||
"identifier": "customblocks:green_water",
|
||
"base_block": "liquid"
|
||
},
|
||
"components": {
|
||
"netease:liquid": {
|
||
"liquid_color": [ 0, 128, 0, 254 ],
|
||
"bucket_name": "customBucket:green_bucket",
|
||
"spread_fire": true,
|
||
"mob_effects": [
|
||
{
|
||
"effect_name": "slowness",
|
||
"duration": 3,
|
||
"amplifier": 1,
|
||
"show_particle": true
|
||
},
|
||
{
|
||
"effect_name": "weakness",
|
||
"duration": 1,
|
||
"amplifier": 4
|
||
}
|
||
],
|
||
"remove_effects": [ "speed", "jump_boost" ]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|