跳到正文
烈焰甘蔗Wiki

TileEntityPamAnimalTrap

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

注册信息

属性 值 来源
TileEntity 注册名 PamAnimalTrap HarvestCraft.java:100
类 TileEntityPamAnimalTrap —
关联方块 Animal Trap(harvestcraft:animaltrap) BlockRegistry.java:652
GUI ID 8 BlockPamAnimalTrap.java:77
容器类 ContainerPamAnimalTrap GuiHandler.java:73
GUI 类 GuiPamAnimalTrap GuiHandler.java:113

槽位数量与布局

private ItemStack[] inventory = new ItemStack[19](TileEntityPamAnimalTrap.java:30)

槽位 内容 数量
0–17 捕获物(产物区,自动填充) 18
18 诱饵 1

run() 每次取 0–17 中第一个空槽放入产物,并调 func_70298_a(18, 1) 扣 1 个诱饵(:203)。

可处理的操作

操作 判定 行
canRun() (槽18 是 grainbait / fruitbait / veggiebait 之一) && countFlowers() >= 5 :187
countFlowers() 半径 2 圆内、同 Y 层的 BlockDirt 或 BlockGrass 数量 :124-134
抽取产物 TrapRecipes.getRandomOutputForBait(ANIMAL_TRAP_RECIPES, 槽18 的 Item) → 加权随机 :193

半径判定为半径 2 的圆并排除 4 个角格(:112),最多 20 格。

处理耗时 / 速率(两个数字,勿混)

概念 公式 行 含义
getRunTime() 环境速率 起始 3500 tick;每个 BlockDirt/BlockGrass ×0.95;每个相邻 pamanimalTrap ÷0.85 :103-118 越小越快
getRunTime(ItemStack) 诱饵续航 三种诱饵之一 → 3200 tick :209-214 诱饵提供的总工作时长

产出判定 produceTime >= Math.floor(getRunTime())(:167)。runTime 归零且 canRun() 时按 getRunTime(bait) 续期(:149-150)。

推算(源码常量):20 格全是泥土/草 → 3500 × 0.95^20 ≈ 2357 tick ≈ 118 秒/件;空旷处 3500 tick = 175 秒/件。

⚠ 语义易写反:3500 是产出间隔,不是冷却时间。周围越「肥沃」产得越快。

产物(TrapRecipes.ANIMAL_TRAP_RECIPES,加权随机)

诱饵 条数 行
grainbaitItem 7 TrapRecipes.java:26-32
fruitbaitItem 6 TrapRecipes.java:33-38
veggiebaitItem 8 TrapRecipes.java:39-46
合计 21 TrapRecipes.java:26-46

两参重载 addAnimalRecipe(bait, out) 把权重默认为 1(TrapRecipes.java:86-88);显式权重最高为 3(:28、:34、:42)与 2(:30、:36、:44)。

其中 6 个产物是未反混淆的原版物品(Items.field_151082_bd、field_151076_bf、field_151116_aA、field_151008_G、field_151110_aK、field_151103_aS、field_151147_al)——本仓库无 MCP 映射,不断言其具体名称。

源码缺陷

  1. isStackValidForSlot 恒返回 false(:240-242)、func_94041_b 恒返回 false(:244-246)→ 完全不支持漏斗/管道自动化,19 格捕获物只能手动开 GUI 取。
  2. 方法名残留:取产物的私有方法被命名为 getComb(),与 Apiary 的蜂蜡产物方法同名,纯复制粘贴。
  3. 局部变量未改名:queenBee(:150)在本类中指代的是诱饵,不是蜂王。
  4. countFlowers() 名实不符:统计泥土/草,与花无关(:124)。
  5. 多方块 / 控制器 / 可否旋转:源码未定义。

相关条目

浏览全部模组