TileEntityChurn
事实基准:
harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。
注册信息
| 属性 | 值 | 来源 |
|---|---|---|
| TileEntity 注册名 | PamChurn |
HarvestCraft.java:98 |
| 类 | TileEntityChurn implements IFuelHandler |
TileEntityChurn.java:22 |
| 关联方块 | Churn(harvestcraft:churn) |
BlockRegistry.java:647 |
| GUI ID | 6 |
BlockPamChurn.java:55 |
| 容器类 | ContainerChurn |
GuiHandler.java:67 |
| GUI 类 | GuiChurn |
GuiHandler.java:107 |
槽位数量与布局
private ItemStack[] churnItemStacks = new ItemStack[3](TileEntityChurn.java:31)
| 槽位 | 内容 | 槽位类 | GUI 坐标(ContainerChurn.java:32-35) |
|---|---|---|---|
| 0 | 待加工原料 | Slot |
(80, 17) |
| 1 | 燃料 | Slot |
(80, 53) |
| 2 | 成品 | 结果槽(只可取出) | (80, 35) |
共 3 槽(原料 / 燃料 / 成品),结构与 Oven 完全同型。
可处理的操作
| 操作 | 说明 | 行 |
|---|---|---|
| 查产物 | ChurnRecipes.getSmeltingResult(ItemStack) |
— |
| 燃料判定 | 先查矿辞典盐,再 GameRegistry.getFuelValue |
:40-42 |
| 盐的矿辞典名 | 依次 dustSalt → itemSalt → foodSalt |
:55-57 |
配方条数 = 1
私有构造器 ChurnRecipes.java:19-34 内只有 1 处注册调用:ChurnRecipes.java:20 —— 鲜奶 → 黄油(freshmilkItem → butterItem)。
必须排除的干扰项::28 与 :32 虽同为 this.addSmelting(...) / this.addSmeltingRecipe(...) 字面调用,但它们分别是 addSmeltingRecipeForBlock 与 addSmeltingRecipe 两个私有辅助方法的方法体;:41 与 :57 的 for (Map.Entry …) 是读取循环。无枚举/循环注册。
结论:Churn 只有 1 条配方,与随包文档 HarvestCraft 1.7.10Lb Recipes.txt 的 //CHURN RECIPES 段落吻合。
处理耗时 / 速率
| 参数 | 值 | 行 |
|---|---|---|
| 完成判定 | churnCookTime == 200 → 200 tick = 10 秒 |
TileEntityChurn.java:192 |
| 每 tick 燃料消耗 | -1 |
func_145845_h |
| 进度条分母 | 200 | 同上 |
| GUI 进度条像素 | 24 | GuiChurn.java:43 |
| 盐的燃料值 | 1600 tick | TileEntityChurn.java:40 |
| 并行产能 | 有(可容纳物品数 > 1 时每轮同时烤 2 件) | func_145845_h |
进度条分母 200 与阈值 200 一致,箭头可填满 —— 这是 Churn 相对 Oven 少一个 bug 的地方。
Churn 比 Oven 慢一倍(200 vs 100 tick)。
源码缺陷
- 本类未发现独立的源码缺陷。其「配方少」是设计事实而非 bug:Churn 专精乳品加工。
- 多方块 / 控制器 / 可否旋转:源码未定义。
- 矿辞典三名称回退意味着只有
dustSalt/itemSalt/foodSalt三个具名物品能点燃 Churn,其它矿辞典盐无效 —— 这是实现限制,不是缺陷,但容易被误认为 bug。