Files
netease-bedrock-wiki/mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/3-特殊方块/5-自定义流体.md
2025-08-25 18:36:29 +08:00

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