高级压印器

基本信息

属性 值
注册名 ae2stuff:Inscriber
英文名 Advanced Inscriber
中文名 高级压印器
TileEntity net.bdew.ae2stuff.machines.inscriber.TileInscriber
硬度 1(BlockInscriber.scala:32)
材质 MachineMaterial(MapColor.ironColor)
GUI ID 3(MachineInscriber.scala:25)
可旋转 否
升级槽 5(仅 AE2 速度卡)
可自动化 是(SidedInventory)

功能

高级压印器是 AE2 原版压印器的替代品:它复用同一套 AE2 压印配方注册表(AEApi.instance().registries().inscriber().getRecipes,TileInscriber.scala:144-149),所以所有 AE2 及附属模组注册的压印配方都能用,但支持 5 张速度卡、AE 缓冲储能、输出可自动化,并且顶/底槽默认上锁防止自动化误取。

槽位

getSizeInventory = 4(TileInscriber.scala:35):

槽号 用途
0 top(印刷版 / 可选)
1 middle(基板,必需)
2 bottom(蚀刻版 / 可选)
3 output

另有 5 格升级槽(TileInscriber.scala:46)。

配方匹配

isMatchingFullRecipe(TileInscriber.scala:151-163)要求 4 个条件同时成立:middle 槽非空、getTopOptional 与 top 槽同物品、getBottomOptional 与 bottom 槽同物品、getInputs 中存在与 middle 槽同物品的项。用的是 ItemUtils.isSameItem(忽略数量与 NBT),所以 null 槽等于 getXxxOptional 为空的情况。

启动时(TileInscriber.scala:66-79)扣掉 middle 槽 1 个;若 InscriberProcessType.Press 则额外各扣 top 与 bottom 1 个。其它 process type 只扣 middle。

槽位锁定

topLocked 与 bottomLocked 两个 DataSlotBoolean 默认值均为 true(TileInscriber.scala:51-54)。persistLoad 监听器在读到不含这两个键的旧存档时强制置 true(TileInscriber.scala:56-60),因此老版本存档升级后必定是锁定态。

解锁条件(canExtractItem,TileInscriber.scala:222-230)三者全部满足:!locked 且 正在加工的 output == null 且 middle 槽为空。锁定状态由客户端发 MsgSetLock 切换,服务端在 openContainer 为 ContainerInscriber 时才接受(MachineInscriber.scala:38-48),否则 sys.error("Invalid slot")。

数值

数值名 值 来源
待机功耗 0 AE/t tuning.cfg Machines/Inscriber/IdlePower
每周期耗电 1000 AE tuning.cfg Machines/Inscriber/CyclePower
内部容量 5000 AE tuning.cfg Machines/Inscriber/PowerCapacity
周期长度 100 tick(5 秒) tuning.cfg Machines/Inscriber/CycleTicks
升级槽数 5 TileInscriber.scala:46
速度卡最高等级 5 MachineInscriber.scala:35 Upgrades.SPEED.registerItem(new ItemStack(BlockInscriber), 5)
槽位总数 4 TileInscriber.scala:35

进度与功耗换算

progressPerTick = (1 / CycleTicks) * (1 + 速度卡数)
powerNeeded     = CyclePower * progressPerTick     // 每 tick 扣

0 张卡:每 tick 进度 0.01、耗电 10 AE/t,100 tick(5 秒)完成,合计 1000 AE。 5 张卡:每 tick 进度 0.06、耗电 60 AE/t,约 17 tick 完成,合计仍为 1000 AE(TileInscriber.scala:84-92)。

即速度卡只压缩耗时,不降低总耗电。缺电时进入 sleep(),下次有电再 wakeup()。

自动化侧限制

槽 可否自动取出 条件
output (3) 是 无条件
top (0) 条件性 !topLocked && output == null && middle 槽为空
bottom (2) 条件性 !bottomLocked && output == null && middle 槽为空
middle (1) 否 恒 false

meta 与外观

onWake → meta 1,onSleep → meta 0(TileInscriber.scala:242-249)。上下面共用 topIcon,侧面按 meta 切 sideIconOn / sideIconOff(BlockInscriber.scala:38-43)。

配方

3×3(recipes.cfg:31-40),I = OD:ingotIron,H = 漏斗,S = AE2 tile.BlockInscriber,P = M:engProcessor:

I H I
P S P
I H I

与 AE2 原版压印器配方相比,AE2 Stuff 版本把「中间 AE2 压印器」换成了「周围 4 个漏斗 + 4 个铁锭」,并把原版 2 个处理器升级为 M:engProcessor。