自定义桶
自定义桶(Bucket)可以与流体方块交互——右键流体方块时收集流体,右键其他方块时倒出流体。桶通常与自定义流体方块配合使用。
前置条件
请先阅读 自定义基础物品 了解通用注册流程(步骤 1-6)。format_version 使用 1.10。
概述
自定义桶的行为与原版桶一致:空桶可以收集流体,装满的桶可以倒出流体。通过 netease:bucket 组件指定桶内的流体方块 identifier。
核心特性:
- 最大堆叠数固定为 1(与原版桶一致)
- 支持与自定义流体方块交互
- 支持所有自定义物品通用组件
netease:bucket 组件
| 字段 | 类型 | 说明 |
|---|---|---|
custom_item_type | string | 设为 "bucket" |
netease:bucket.fill_liquid | string | 倒出时放置的流体方块 identifier |
使用方式
| 操作 | 效果 |
|---|---|
| 右键流体方块 | 收集流体,桶变为装满状态 |
| 右键普通方块表面 | 在目标位置放置 fill_liquid 指定的流体方块 |
注意
netease:bucket 中 fill_liquid 指定的方块 identifier 必须是一个有效的流体方块定义(通常是 base_block: "liquid" 类型的自定义方块),否则倒出时不会放置任何方块。
完整案例:酸液桶
配合自定义流体方块创建一个可以收集和倒出酸液的桶。
行为包
behavior_pack/netease_items_beh/acid_bucket.json:
{
"format_version": "1.10",
"minecraft:item": {
"description": {
"identifier": "mymod:acid_bucket",
"custom_item_type": "bucket",
"category": "items"
},
"components": {
"minecraft:max_stack_size": 1,
"netease:bucket": {
"fill_liquid": "mymod:acid_fluid"
}
}
}
}资源包
resource_pack/netease_items_res/acid_bucket.json:
{
"format_version": "1.10",
"minecraft:item": {
"description": {
"identifier": "mymod:acid_bucket",
"texture": "acid_bucket"
}
}
}item_texture.json
{
"resource_pack_name": "mymod",
"texture_data": {
"acid_bucket": {
"textures": "textures/items/acid_bucket"
}
}
}本地化
item.mymod:acid_bucket.name=酸液桶对应的自定义流体方块
桶需要配合自定义流体方块使用。以下是对应的流体方块定义(简化版):
behavior_pack/netease_blocks/acid_fluid.json:
{
"format_version": "1.10.0",
"minecraft:block": {
"description": {
"identifier": "mymod:acid_fluid",
"base_block": "liquid"
},
"components": {
"netease:liquid": {
"color": [0.2, 0.8, 0.1, 0.7],
"spread": 4
}
}
}
}behavior_pack/netease_blocks/acid_fluid_flow.json:
{
"format_version": "1.10.0",
"minecraft:block": {
"description": {
"identifier": "mymod:acid_fluid_flow",
"base_block": "flowing_liquid"
},
"components": {
"netease:liquid": {
"color": [0.2, 0.8, 0.1, 0.7],
"spread": 4
}
}
}
}流体方块命名规则
自定义流体方块需要成对定义:静态流体(base_block: "liquid")和动态流体(base_block: "flowing_liquid")。动态流体的 identifier 必须是静态流体 identifier + _flow 后缀。详见 特殊方块类型。
常见问题
桶不能交互流体
确认 netease:bucket 中 fill_liquid 指定的方块 identifier 是一个有效的流体方块定义,且静态/动态流体方块已成对定义。
倒出后没有流体效果
检查流体方块的 netease:liquid 组件是否正确配置,spread 值需要大于 0。
