Skip to content

自定义桶 ​

自定义桶(Bucket)可以与流体方块交互——右键流体方块时收集流体,右键其他方块时倒出流体。桶通常与自定义流体方块配合使用。

前置条件

请先阅读 自定义基础物品 了解通用注册流程(步骤 1-6)。format_version 使用 1.10。

概述 ​

自定义桶的行为与原版桶一致:空桶可以收集流体,装满的桶可以倒出流体。通过 netease:bucket 组件指定桶内的流体方块 identifier。

核心特性:

  • 最大堆叠数固定为 1(与原版桶一致)
  • 支持与自定义流体方块交互
  • 支持所有自定义物品通用组件

netease:bucket 组件 ​

字段类型说明
custom_item_typestring设为 "bucket"
netease:bucket.fill_liquidstring倒出时放置的流体方块 identifier

使用方式 ​

操作效果
右键流体方块收集流体,桶变为装满状态
右键普通方块表面在目标位置放置 fill_liquid 指定的流体方块

注意

netease:bucket 中 fill_liquid 指定的方块 identifier 必须是一个有效的流体方块定义(通常是 base_block: "liquid" 类型的自定义方块),否则倒出时不会放置任何方块。

完整案例:酸液桶 ​

配合自定义流体方块创建一个可以收集和倒出酸液的桶。

行为包 ​

behavior_pack/netease_items_beh/acid_bucket.json:

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:

json
{
  "format_version": "1.10",
  "minecraft:item": {
    "description": {
      "identifier": "mymod:acid_bucket",
      "texture": "acid_bucket"
    }
  }
}

item_texture.json ​

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:

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:

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。

下一步 ​