工作站定义
合成工作站放在 plugins/EmakiStation/stations/ 下,一个文件一个工作站,文件名与 id 一致。
完整示例
yaml
id: "blacksmith"
display_name: "<gold>铁匠工坊</gold>"
layout: "station_catalog"
preview_layout: "station_preview"
queue_layout: "station_queue"
permission: ""
queue:
base_length: 3
max_length: 16
progress_mode: "offline"
cancel_refund_rate: 1.0
speed_multiplier: 1.0
allow_purchase: false
channels:
backpack: true
storage: true
default: "backpack"
output:
default: "storage_first"
player_switchable: true
condition:
invalid_as_failure: true
entries: []字段
| 字段 | 说明 |
|---|---|
id | 工作站 id,与文件名一致。 |
display_name | 界面标题使用的显示名,支持 MiniMessage。 |
layout | 配方目录页布局,指向 gui/<名字>.yml。省略时为 station_catalog。 |
preview_layout | 材料预览页布局。省略时为 station_preview。 |
queue_layout | 合成队列页布局。省略时为 station_queue。 |
permission | 打开该工作站需要的权限。留空则回落到 emakistation.access.<id>。 |
queue | 队列参数,省略的键继承 config.yml 的 queue 段。 |
channels | 材料来源通道。 |
output | 产物去向。 |
condition | 打开界面前的条件门,语法与其他 Emaki 模块一致。 |
三个布局文件都必须存在,缺任何一个都会在启动预检里报 missing_layout。
物品分解页不属于工作站:分解站是独立配置,见 物品分解。
配方归属
工作站文件没有 recipes 段。开放哪些配方由配方侧决定:在 recipes/<配方>.yml 里用 station_ids 列出所属工作站。配方不写 station_ids 表示它对所有工作站开放。
queue 段
除继承 config.yml 的键之外,工作站独有一个键:
| 字段 | 说明 |
|---|---|
allow_purchase | 本工作站是否出售额外队列位。还需要 config.yml 的 queue.purchase.enabled 为 true。 |
取消条目时,已付的货币按 cancel_refund_rate 折算退还,与材料同一比例。
channels 材料通道
| 字段 | 说明 |
|---|---|
backpack | 是否从玩家背包取材。 |
storage | 是否从 EmakiStorage 仓库取材。 |
default | 保留键,当前不再生效。 |
两个都关会导致该工作站被拒绝加载——能打开但永远用不了,不如启动时就报错。
两个都开时,材料来自「背包 + 仓库」的合并池,优先扣背包。玩家看不到通道切换按钮,也不需要切,界面里显示的「拥有」就是两边的合计。
default 保留是为了让旧配置文件不报未知键,后续版本可能移除。不要把它当作可用配置。
output 产物去向
| 值 | 行为 |
|---|---|
storage_first | 优先进仓库,满了退到背包。 |
backpack_first | 优先进背包,满了退到仓库。 |
storage_only | 只用仓库。 |
backpack_only | 只用背包。 |
player_switchable: true 时玩家可以在界面里切换自己的偏好。
所有目标都放不下时,条目进入「待领取」状态,不会掉落也不会销毁。