提交站 (Submit Station, OSS)

基本信息

属性 值
注册名 betterquesting:submit_station
类 betterquesting.blocks.BlockSubmitStation
TileEntity betterquesting.blocks.TileSubmitStation(注册于 BetterQuesting.java:107)
中文名 tile.betterquesting.submit_station.name=提交站(OSS)(assets/betterquesting/lang/zh_CN.lang)
材质 Material.wood
硬度 1.0(setHardness(1),无爆炸抗性覆盖)
材质贴图 betterquesting:submit_station_top / submit_station_side(BlockSubmitStation.java:106-109)
创造标签 BetterQuesting.tabQuesting
GUI ID 0(BlockSubmitStation.onBlockActivated → player.openGui(..., 0, ...),BlockSubmitStation.java:43)
界面 ContainerSubmitStation + GuiSubmitStation(handlers/GuiHandler.java:19-31)

功能

提交站是 BetterQuesting 核心模组(modid betterquesting)注册的两个方块之一。玩家把它放在世界里,右键打开界面,把物品或流体投进槽位,即可用"实体"方式完成一个 IItemTask / IFluidTask 类型的任务 —— 这是给自动化流水线用的;玩家的常规勾选式任务完成走 IQuest 的任务逻辑,不需要经过方块。

方块本体不保存任何任务数据。它只是一个"投递口":任务与任务 ID 由网络包在右键时写入 TileEntity(TileSubmitStation 持有 UUID questID 与 int taskID 字段,TileSubmitStation.java:48-50)。也就是说,提交站的能力完全由"某个任务节点"临时赋予,节点离开后它退回一个空架子。

TileSubmitStation 同时实现 IFluidHandler 与 ISidedInventory(TileSubmitStation.java:37),因此漏斗、管道、物品 hopper 都能自动往里送。

数值

数值名 值 来源
槽位总数 2 SIZE_INVENTORY = 2(TileSubmitStation.java:43)
槽位 0 输入(物品投递) SLOT_INPUT = 0
槽位 1 输出(decrStackSize 之外的回收位) SLOT_OUTPUT = 1
面向许可表 { SLOT_INPUT, SLOT_OUTPUT } SLOTS_FOR_FACE(TileSubmitStation.java:45)
流体任务单次堆叠上限 1 getInventoryStackLimit() → 流体任务时返回 1(TileSubmitStation.java:157-159)
物品任务单次堆叠上限 64 物品任务时返回 64(TileSubmitStation.java:160-161)
未设置任务时堆叠上限 0 无任务时返回 0,等于完全拒绝
使用距离上限 平方距离 256(即 16 格) isUseableByPlayer(TileSubmitStation.java:165-167)

交互

触发 行为
右键 打开 GUI ID 0;仅服务端执行(if (!world.isRemote),BlockSubmitStation.java:42)
放入物品 仅当 questID/taskID 已指向一个 IItemTask,槽 0 为空,任务未完成,且 t.canAcceptItem(...) 为真时才接受(isItemValidForSlot,TileSubmitStation.java:174-181)
槽 1 isItemValidForSlot 对 idx != SLOT_INPUT 直接返回 false,即槽 1 不可由 GUI 手动放入
管道注液 fill() 走 IFluidTask.submitFluid(owner, quest, fluid),返回 remainder 决定消耗量;任务完成时置 needsUpdate = true(TileSubmitStation.java:189-200)
破坏 逐槽把物品以高斯偏移(0.05F)抛出为 EntityItem,并深拷贝 NBT;掉落量随机为 10–30 的整数(BlockSubmitStation.java:49-95)
未初始化访问 getInventoryStackLimit 在 !isSetup() 时返回 0,箱子 GUI 表现为不可用

合成配方

无序(shapeless),且仅在 DreamCraft 未加载时注册(BetterQuesting.java:112):

产物 材料
提交站 书 + 玻璃 + 箱子
提交站 书 + 箱子 + 玻璃(第二个无序排列)

两配方分别写在 BetterQuesting.java:113-122,if (!Loader.isModLoaded("dreamcraft")) 包裹整段。DreamCraft 环境(Hardcore 生存)下改由其任务系统发放。

相关条目

  • 观测站 (OOS) - 同一套「方块代做任务」机制的自动化版本,无需玩家手动投递
  • 占位符组 - 当任务引用的物品已从整合包移除时,提交站投递的缺失内容会以占位符形式留存