Churn(搅乳器)
事实基准:
harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。
基本信息
Churn 有两个注册名(关/开两种状态),共用同一个类。
| 属性 | 关闭态 | 开启态 | 来源 |
|---|---|---|---|
| 注册名 | harvestcraft:churn |
harvestcraft:churnon |
BlockRegistry.java:647 / :648 |
| 构造参数 | new BlockPamChurn(false) |
new BlockPamChurn(true) |
BlockRegistry.java:458 / :459 |
| 字段 | pamChurn |
pamChurnon |
BlockRegistry.java:47 / :44 |
| 公共属性 | 值 | 来源 |
|---|---|---|
| 类 | BlockPamChurn extends BlockContainer implements IFuelHandler |
BlockPamChurn.java:29-30 |
| 显示名 | tile.churn.name / tile.churnon.name 均为 Churn |
en_US.lang:51-52 |
| 硬度 / 抗爆 | 1.5f / 10.0f |
BlockRegistry.java:458-459 |
| TileEntity | TileEntityChurn | BlockPamChurn.java:40 |
| GUI ID | 6 |
BlockPamChurn.java:55 |
| 多方块 | 否,源码未定义任何多方块结构 | — |
| 朝向 | 放置时设 0–3 朝向 | BlockPamChurn.java:78-83 |
槽位布局(TileEntityChurn.java:15,inventory = new ItemStack[3])
| 槽位 | 内容 | 容器槽(ContainerChurn.java:32-35) |
|---|---|---|
| 0 | 待加工原料 | GUI (80,17) |
| 1 | 燃料 | GUI (80,53) |
| 2 | 成品(结果槽,只可取出) | GUI (80,35) |
每槽堆叠上限 64。玩家背包 36 槽。
处理什么 / 产什么
配方表 ChurnRecipes。
配方条数(集合运算)
私有构造器位于 ChurnRecipes.java:19-34,其中只有 1 处注册调用:
ChurnRecipes.java:20—this.addSmelting(ItemRegistry.freshmilkItem, new ItemStack(ItemRegistry.butterItem), 0.1f),即 鲜奶 → 黄油。
必须排除的干扰项::28 与 :32 虽同为 this.addSmelting(...) / this.addSmeltingRecipe(...) 字面调用,但它们分别是 addSmeltingRecipeForBlock 与 addSmeltingRecipe 两个私有辅助方法的方法体,不是配方注册点。另 :41 与 :57 的 for (Map.Entry …) 是读取循环。
无枚举/循环注册,故 Churn 配方总数 = 1。与随包文档 HarvestCraft 1.7.10Lb Recipes.txt 的 //CHURN RECIPES 段落(1 条)一致。
处理耗时 / 速率
| 参数 | 值 | 来源 |
|---|---|---|
| 烹饪判定 | churnCookTime == 200 → 200 tick = 10 秒 |
TileEntityChurn.java:192 |
| 每 tick 燃料消耗 | -1 |
TileEntityChurn.java func_145845_h |
| 进度条分母 | 200,GUI 传 24 → 可填满 |
GuiChurn.java:43 |
| 多物品同时处理 | 有(可容纳物品数 > 1 时每次同时烤 2 个) | TileEntityChurn.java func_145845_h |
Churn 比 Oven 慢一倍(200 vs 100 tick)。
耗什么(燃料)
- 专属燃料:盐——依次匹配
dustSalt(:55)、itemSalt(:56)、foodSalt(:57)三个矿辞典名称,盐本身烧 1600 tick(TileEntityChurn.java:40)。 - 通用燃料:
GameRegistry.getFuelValue(stack)(TileEntityChurn.java:42)。 - 本类实现
IFuelHandler(TileEntityChurn.java:22),getFuelTime只做上表判定,不额外注册燃料值。
交互
| 触发 | 行为 | 来源 |
|---|---|---|
| 右键 | openGui(..., 6, ...) |
BlockPamChurn.java:55 |
| 放置 | 设 0–3 朝向 | BlockPamChurn.java:78-83 |
| 破坏 | 掉落 Item.func_150898_a(BlockRegistry.pamChurn) —— 注意是关闭态方块 |
BlockPamChurn.java:59-61 |
源码缺陷
- 进度条与完成阈值一致(200/200),无 Oven 那样的半格 bug。
- 多方块 / 控制器 / 可否旋转:源码未定义。
- 矿辞典三名称回退(
dustSalt/itemSalt/foodSalt)意味着与其它模组盐物品互通,但也意味着普通矿辞典盐无法点燃搅乳器——只有这 3 个具名物品行。
相关条目
订正记录
- 本条目为新增。旧版 1.12.2 fork 的类名与行号不适用于 1.7.10,已作废。