跳到正文
烈焰甘蔗Wiki

TileEntityOven

事实基准:harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。

注册信息

属性 值 来源
TileEntity 注册名 PamOven HarvestCraft.java:97
类 TileEntityOven implements IFuelHandler TileEntityOven.java:20
关联方块 Oven(harvestcraft:oven) BlockRegistry.java:645
GUI ID 5 BlockPamOven.java:55
容器类 ContainerOven GuiHandler.java:64
GUI 类 GuiOven GuiHandler.java:104

槽位数量与布局

private ItemStack[] inventory = new ItemStack[3](TileEntityOven.java:15)

槽位 内容 槽位类 GUI 坐标(ContainerOven.java:32-35)
0 待烧制原料 Slot (80, 17)
1 燃料 Slot (80, 53)
2 成品 SlotOven(只可取出) (80, 35)

共 3 槽,每槽堆叠上限 64(TileEntityOven.java:16)。加上玩家背包 36 槽,容器共 39 槽。

可处理的操作

操作 说明 行
查产物 OvenRecipes.getSmeltingResult(ItemStack) :173
查经验 OvenRecipes.getSmeltExperience(ItemStack) :175
匹配方式 PamUtils.areItemStacksEqualWithWildcard(Short.MAX_VALUE 元数据 = 通配) PamUtils.java:9-14
燃料判定 isItemFuel 先查橄榄油,再 GameRegistry.getFuelValue :167-176
getFuelTime 作为 IFuelHandler 实现,橄榄油 = 1600,否则 0 :167-170

配方条数(集合运算)

来源 条数 位置
字面 this.addSmelting(Item, …) 48 OvenRecipes 私有构造器(:23-88)
字面 this.addSmeltingRecipeForBlock(…) 3 OvenRecipes.java:27,32,33
ItemFishFood.FishType.values() 循环 = 该枚举中 func_150973_i() 为真的常量数 OvenRecipes.java:51-54
绞肉 meta 循环 迭代 8 次,实际只产生 1 条有效映射 OvenRecipes.java:79-83

静态可数 = 51 条。FishType 循环的常量个数无法从本仓库核实(无 Minecraft 源码与 MCP 映射)。

处理耗时 / 速率

参数 值 行
完成判定 ovenCookTime == 100 → 100 tick = 5 秒 TileEntityOven.java:180
每 tick 燃料消耗 -1 :164
并行产能 可容纳物品数 > 1 时每轮同时烤 2 件 :176-178
进度条分母 200 :143
GUI 进度条像素 48 GuiOven.java:43
燃料值 橄榄油 1600 tick :172

Oven 是本作最快的烹饪机器(100 tick),比 Churn / Quern(均 200 tick)快一倍。

源码缺陷

  1. 进度条永远只填一半。GuiOven.java:43 传 getCookProgressScaled(48),公式为 ovenCookTime * 48 / 200(TileEntityOven.java:143),而完成阈值是 100(:180)—— 分母 200 与阈值 100 不一致,箭头动画停在 24/48 像素处。Churn/Quern 的分母与阈值都是 200,无此问题。
  2. 绞肉配方元数据丢失。OvenRecipes.java:81 在循环内调 .func_77973_b() 取回 Item(丢掉 meta),而 addSmelting 以 new ItemStack(input, 1, Short.MAX_VALUE) 建键。8 个 meta 写入同一个键互相覆盖;叠加 areItemStacksEqualWithWildcard 把 Short.MAX_VALUE 当通配 → 任意绞肉元都匹配到最后写入的那一条输出(meta 7,鹿肉)。8 次迭代 → 1 条有效映射。该分支还需 enablemeatGrinder 与 forcecookinginmeatrecipes 同时开启。
  3. 多方块 / 控制器 / 可否旋转:源码未定义。

相关条目

浏览全部模组