跳到正文
烈焰甘蔗Wiki

TileEntityPamPresser

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

注册信息

属性 值 来源
TileEntity 注册名 PamPresser HarvestCraft.java:95
类 TileEntityPamPresser —
关联方块 Presser(harvestcraft:presser) BlockRegistry.java:639
GUI ID 1 BlockPamPresser.java:91
容器类 ContainerPamPresser GuiHandler.java:52
GUI 类 GuiPamPresser GuiHandler.java:92

槽位数量与布局

private ItemStack[] combPresserItemStacks = new ItemStack[3](TileEntityPamPresser.java:27)

槽位 内容 槽位类 GUI 坐标(ContainerPamPresser.java:28-30)
0 待压榨原料 SlotPamPresser (80, 23)
1 主产物 SlotPamResult(只可取出) (62, 54)
2 副产物 SlotPamResult(只可取出) (98, 54)

共 3 槽,是双产出布局:一次压榨同时给出 2 件物品(可为空 —— 配方允许 output2 == null)。

可处理的操作

操作 说明 行
查询配方 PresserRecipes.getPressingResult(ItemStack) → ItemStack[2] :131 附近
canRun() 原料存在 且 两个产物槽均可接收产物 :131-…
执行 扣 1 原料,产物入槽 :157 附近

处理耗时 / 速率

参数 值 行
完成判定 combPresserCookTime >= 125 → 125 tick = 6.25 秒 TileEntityPamPresser.java:109
进度条换算 combPresserCookTime * par1 / 125 :97
GUI 进度条像素 24 GuiPamPresser.java:36
燃料 无(不实现 IFuelHandler,没有燃料槽) :20 类声明
驱动 持续 tick,无需玩家在旁 :107

配方条数 = 43(PresserRecipes.java:20-62 连续 43 处 registerItemRecipe,无循环注册;:70 是辅助方法体,不计)。

Presser 是本作最快的机器之一(125 tick),快于 Oven(100 tick 之外唯一省燃料的)与 Churn/Quern(200 tick)。

源码缺陷

  1. canRun() 使用 >= 比较产物堆叠余量(TileEntityPamPresser.java)。判据形如 products[0].stackSize + results[0].stackSize >= func_77976_d()(结果最大堆叠量)。当产物槽剩余容量恰好等于产出量时,条件成立,属边界包含而非 off-by-one bug,但与「必须严格大于 0 才可放入」的直觉不同,且两个产物槽是「与」关系,任一槽满即整轮停摆。
  2. 多方块 / 控制器 / 可否旋转:源码未定义(本类无结构判定代码)。

相关条目

  • 方块:Presser
  • 兄弟:Grinder(同为 125 tick / 3 槽 / 双产出 / 无燃料)
浏览全部模组