Quern(磨盘)
事实基准:
harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。
基本信息
Quern 有两个注册名(关/开两种状态),共用同一个类。
| 属性 | 关闭态 | 开启态 | 来源 |
|---|---|---|---|
| 注册名 | harvestcraft:quern |
harvestcraft:quernon |
BlockRegistry.java:649 / :650 |
| 构造参数 | new BlockPamQuern(false) |
new BlockPamQuern(true) |
BlockRegistry.java:460 / :461 |
| 字段 | pamQuern |
pamQuernon |
BlockRegistry.java:48 / :44 |
| 公共属性 | 值 | 来源 |
|---|---|---|
| 类 | BlockPamQuern extends BlockContainer implements IFuelHandler |
BlockPamQuern.java:29-30 |
| 显示名 | tile.quern.name / tile.quernon.name 均为 Quern |
en_US.lang:53-54 |
| 硬度 / 抗爆 | 1.5f / 10.0f |
BlockRegistry.java:460-461 |
| TileEntity | TileEntityQuern | BlockPamQuern.java:40 |
| GUI ID | 7 |
BlockPamQuern.java:55 |
| 多方块 | 否,源码未定义任何多方块结构 | — |
| 朝向 | 放置时设 0–3 朝向 | BlockPamQuern.java:78-83 |
槽位布局(TileEntityQuern.java:32,quernItemStacks = new ItemStack[3])
| 槽位 | 内容 | 容器槽(ContainerQuern.java:32-35) |
|---|---|---|
| 0 | 待加工原料 | GUI (80,17) |
| 1 | 燃料 | GUI (80,53) |
| 2 | 成品(结果槽,只可取出) | GUI (80,35) |
玩家背包 36 槽。
处理什么 / 产什么
配方表 QuernRecipes。
配方条数 = 11(集合运算)
私有构造器 QuernRecipes.java:19-35 内共 11 处注册调用,无任何枚举/循环注册:
| # | 行 | 原料 → 产物 |
|---|---|---|
| 1 | :21 |
Items.field_151015_O → 面粉 flourItem |
| 2 | :22 |
Items.field_151174_bG → 面粉 flourItem |
| 3 | :23 |
riceItem → 面粉 flourItem |
| 4 | :24 |
barleyItem → 面粉 flourItem |
| 5 | :25 |
oatsItem → 面粉 flourItem |
| 6 | :26 |
ryeItem → 面粉 flourItem |
| 7 | :27 |
new ItemStack(Items.field_151100_aR, 0, 3) → 可可粉 cocoapowderItem |
| 8 | :28 |
cinnamonItem → 磨碎肉桂 groundcinnamonItem |
| 9 | :29 |
nutmegItem → 磨碎肉豆蔻 groundnutmegItem |
| 10 | :30 |
peppercornItem → 黑胡椒 blackpepperItem |
| 11 | :31 |
curryleafItem → 咖喱粉 currypowderItem |
必须排除的干扰项::39 与 :43 是两个私有辅助方法(addSmeltingRecipeForBlock / addSmeltingRecipe)的方法体,不是配方点;:52 与 :68 的 for (Map.Entry …) 是读取循环。
11 条与随包文档 HarvestCraft 1.7.10Lb Recipes.txt 的 //QUERN RECIPES 段落(6 条谷物→面粉 + 可可 + 4 条香料)吻合。
处理耗时 / 速率
| 参数 | 值 | 来源 |
|---|---|---|
| 烹饪判定 | quernCookTime == 200 → 200 tick = 10 秒 |
TileEntityQuern.java:181 |
| 每 tick 燃料消耗 | -1 |
TileEntityQuern.java func_145845_h |
| 进度条分母 | 200,GUI 传 24 → 可填满 |
GuiQuern.java:43 |
| 多物品同时处理 | 有 | TileEntityQuern.java func_145845_h |
Quern 与 Churn 同为 200 tick,比 Oven 的 100 tick 慢一倍。
耗什么(燃料)
- 专属燃料:代码判据是
Item.func_150898_a((Block)Blocks.field_150456_au)(TileEntityQuern.java:40),命中返回 1600 tick(:41)。Blocks.field_150456_au是未反混淆的 SRG 名。本仓库内无 Minecraft 源码与 MCP 映射,无法从源码直接确定它是哪个原版方块,此处不做断言。- 随包文档
HarvestCraft 1.7.10Lb Recipes.txt在//Quern Block段落写明Fuel Item: Stone Pressure Plates(石质压力板),与「一个原版方块、燃烧值 1600」这一形态自洽,可作为参考但不构成源码级证明。
- 通用燃料:
GameRegistry.getFuelValue(stack)(TileEntityQuern.java:43)。 - 本类实现
IFuelHandler(TileEntityQuern.java:23)。
交互
| 触发 | 行为 | 来源 |
|---|---|---|
| 右键 | openGui(..., 7, ...) |
BlockPamQuern.java:55 |
| 放置 | 设 0–3 朝向 | BlockPamQuern.java:78-83 |
| 破坏 | 掉落 Item.func_150898_a(BlockRegistry.pamQuern) —— 注意是关闭态方块 |
BlockPamQuern.java:59-61 |
源码缺陷
- 无多方块、无控制器、可否旋转:源码未定义(
BlockPamQuern.java无结构判定代码)。 - 唯一可疑点即上文 SRG 名未解析——这是反编译环境的局限,不是 mod 的缺陷,不应记为源码缺陷。
相关条目
订正记录
- 本条目为新增。旧版 1.12.2 fork 的类名与行号不适用于 1.7.10,已作废。