Dyson Sphere Program
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
Downloads
152
Size
107KB

分子装配枢纽(Molecular Assembly Hub)v0.2.0

中文简介:把 8 个配方槽 + 60 格仓库装进一台建筑。枢纽按配方缺口直接从仓库取料、产物自动回仓, 格子划分、格子筛选与「自动化输入限制」全部跟随配方;兼容原版分拣器、配送器与蓝图,存档内容随 .dsv 一起走。

English:One building that packs 8 recipe slots and a 60-grid storage. The hub pulls ingredients from its own storage on demand, returns products automatically, and keeps grid allocation, per-grid filters and the vanilla automation-input limit in sync with every recipe. Works with vanilla sorters, dispensers and blueprints, and its save data travels inside the .dsv file.

0.2.0(2026-11-01)仓库化改造:枢纽从「制造台类型」改为仓库类型(模型与界面外观不变)。 现在的结构是:内建 60 格仓库 + 8 个脱离实体的配方槽 + 格子分配器 —— 槽位按配方直接从仓库取料、 产物自动回仓,仓库格由分配器按配方自动划分输入/产物/预留区。0.1.x 的「内部总线」的取放料逻辑已删除(busItems/busCounts 仅保留用于读 v2 存档迁移;InterfacePoolId 等为恒 -1 的历史残留字段,不再参与逻辑)。

把一台「分子装配枢纽」加进《戴森球计划》:8 个配方槽 + 内建 60 格仓库的超级制造台, 槽位之间的上下游串联(上游产物回仓、下游槽按需从仓库取)仍然成立,只是原料改由仓库中转, 不占传送带、不占分拣器。

历史版本(详见 CHANGELOG.md):0.1.10 把科技解锁成本降到 10.0K 宇宙矩阵;0.1.9 起支持配方 复制/粘贴、存档内嵌配置(MHUBTRL1 尾块);0.1.x 的「内部总线 / 接口位 / insertfix 短路」架构 已在 0.2.0 作废(busItems/busCounts 仅保留用于读 v2 存档迁移),相关 hot-tune 旧键大多失效 (holdmul/holdfloor 仍生效)。

功能

  • 8 个独立配方槽:制造 / 化工 / 精炼 / 冶炼配方都能放;每个槽按原版制造台 1× 速度生产(界面显示「每槽 1x」,八槽并行)。
  • 内建 60 格仓库(10×6):枢纽本身按原版仓库类型注册,槽位不再各自持有原料,而是每 tick 按配方缺口直接从仓库取料。
  • 自动取放料:取料时把 inc(增产点数)写进槽位 served/incServed,产物优先回仓;仓库满了产物就留在槽位里背压(不丢件、不报错),腾出格子后继续入库。
  • 格子分配器(0.2.0):按配方自动规划 60 格 —— 每种输入物品各占 1 格、产物每种物品共用 1 格(多槽产同一种产物时去重)、最后保留 2 格给换配方时的旧库存;仓库切到 Filtered 并逐格设筛选。 换配方时整张分配表重排、原有物品按原数量/inc 回填;放不下会整体拒绝并说明原因(例如「需要 N(输入)+ M(产物)+ 2(预留)= X 格,超过仓库 60 格」),不会破坏旧布局。
  • 自动化输入限制自动跟随配方(0.2.0):分配表重排后会同步重设原版仓库的「自动化输入限制」(StorageComponent.bans),只允许分拣器把料送进当前配方用到的筛选格:未筛选的尾格与 2 格预留区不会再被自动化塞进杂物;清空配方时限制为 0(自动化输入全停)。重排期间临时全禁、读档重建与打开仓库界面时都会重新校准,可在原版仓库界面右下角的「自动化输入限制」滑条上看到该值。
  • 分拣器入库(0.2.0):分拣器指向枢纽后走原版分拣器逻辑——按仓库格筛选与「自动化输入限制」直接把料送进来,不按配方需求卡料。早先实现过「按缺口把最缺的 ≤6 种原料写进 entityNeeds 广告」的方案,实机回归发现原版 entityNeeds 只有 6 格、会把入库卡在 6 种原料,遂默认关闭(Patches\InserterNeedsPatch.cs 的 InserterNeeds.NeedsEnabled = false,改回 true 即可恢复广告模式)。
  • 配方复制 / 粘贴:Shift 复制建筑、< > 剪贴板、蓝图 —— 8 槽配方都能带上;空枢纽不会被复制成"清空指令",粘贴不吞槽里的物品,未解锁配方跳过;目标不是枢纽时直接不执行,不会误改别的建筑。
  • 产物快速筛选:放分拣器指向枢纽时出现原版多产物配方那样的产物图标条,可直接点选输出哪一条槽位的产物(纯 UI)。
  • 自制界面(0.2.0 接管):点枢纽只打开枢纽窗口(原版仓库窗/制造台窗自动让位);标题栏新增「仓库」按钮,一键打开原版 60 格仓库界面。
  • 配送器(0.2.0,可选):枢纽为仓库类型可直接装配配送器(实机已验证可装并正常投递)。
  • IcarusII 调试字段(0.2.0):若安装了 IcarusII,game_get_entity 返回枢纽实体时会多一个 molecularHub 对象,内容与该枢纽在 hub-debug.json 里的条目一致(仓库格明细 / 分配表 / 各槽 served·incServed·produced / needs 表等)。未安装 IcarusII 时插件照常加载,只打一行跳过日志,功能不受影响。注入已随自检 [P6-TEST] 验证通过(返回体含 molecularHub);游戏内 IcarusII 对话查询尚未实测。
  • 视觉修正:同一实体上的多个组件不再让枢纽动画 8~9 倍速、标志乱闪;旧存档会自动清理历史遗留的孤儿装配组件。
  • 缓存可热调:复制 hot-tune.example.txt 为 hot-tune.txt,游戏运行中改参数约 0.25 秒生效(个别键除外,见下文)。

安装

r2modman / Thunderstore 方式(推荐)

  1. 在 R2 的 Online 列表里安装依赖(本地 zip 导入不会自动补齐依赖,必须先装好):
    • xiaoye97-BepInEx(5.4.17 或更新 5.4.x)
    • CommonAPI(1.6.7) ← 最容易漏装,缺了本 MOD 会报 missing dependencies: dsp.common-api.CommonAPI
    • LDBTool(3.0.3)
  2. 再把本 zip 导入 R2 profile(或下载安装)。
  3. 启动游戏;在仓储建造页找到「分子装配枢纽」(需要宇宙矩阵科技 1993 解锁:10000 宇宙矩阵,即 10.0K)。

IcarusII 是可选的,不属于依赖:装了才多出 molecularHub 调试字段,不装不影响本 MOD 任何功能。

r2modman 导入后 DLL 可能落在 BepInEx\plugins\DSP-DSP-MolecularHub\DSP-MolecularHub\DSP-MolecularHub.dll (多一层目录)——BepInEx 会递归扫描,能正常加载,无需手动搬。

手动安装

  1. 先装好上面 3 个依赖(解压到 <游戏目录>\BepInEx\...)。

  2. 把本压缩包解压到游戏根目录,最终结构应为:

    <游戏目录>\BepInEx\plugins\DSP-MolecularHub\DSP-MolecularHub.dll
    <游戏目录>\BepInEx\plugins\DSP-MolecularHub\hot-tune.example.txt
    

兼容:戴森球计划 0.10.35、BepInEx 5.4.x(实测 5.4.17)、CommonAPI 1.6.7;本 DLL 编译引用 BepInEx.Core 5.4.21 / CommonAPI 1.6.5,在 5.4.17 运行时实测加载正常(仅 BepInEx 打一条『targets a wrong version of BepInEx (5.4.20.0)』的轻微警告,不影响功能)。

使用

  • 点击枢纽打开枢纽窗口(原版仓库窗和原版制造台窗会自动关闭,避免两层窗口打架)。
  • 左键槽位选配方;右键槽位打开原版制造台界面配置该槽;槽位右上角 X 清空。
  • 「仓库」按钮(标题栏):打开原版 60 格仓库界面。此时原版的「筛选器 / 整理 / 容量」按钮会被拦截—— 它们会清掉分配器设好的筛选格;需要临时手动动格子时,把 hot-tune.txt 的 debug=1 打开即可放行。
  • 原料行:显示配方需要的输入物品与仓库现有库存;下方提示行显示 仓库缺料:<物品名>(缺料时)或 原料已齐;左键把该物品收进背包(背包满自动退回,不吞物品)。
  • 产物行:左键把产物收进背包。
  • 入库不再按配方种类卡料:入库走原版分拣器的筛选格/自动化输入限制,配方有几种输入就送几种(原版 entityNeeds 的 6 格上限只影响已默认关闭的 needs 广告模式)。
  • 复制/粘贴配方:Shift 复制建筑(连着放几台都带配方);或对着枢纽按 < 复制、对着另一个枢纽按 > 粘贴;存蓝图时配方一起存进去(旧蓝图没有配方,放下就是空枢纽)。粘贴时目标槽里的缓存物品会退回背包,未解锁的槽会被跳过。
  • 堆叠:枢纽带原版多层堆叠字段(层高 5);配送器可直接装配并正常投递(实机已验证)。枢纽自身多层堆叠建造会提示「与其他物品碰撞」,0.2.0 不做多层吸附; 需要回到单层行为时用 stack=0(重启游戏)。

hot-tune 在线调参

复制 hot-tune.example.txt 为同目录 hot-tune.txt 即可在线调整(约 0.25 秒生效),文件内有全部键的说明; 删除该文件不会重置已生效的值(重启游戏后才回到编译期默认值;想立刻改回就把对应键写成默认值)。

键 默认 说明
tick 1 总开关。0 = 暂停枢纽生产驱动(就地冻结,不取料/不出货)
debug 0 开发者诊断:0 = 发布版静默(默认);1 = 打开全部调试日志、把调试面板追加到枢纽窗口、并每 300 驱动 tick 写 hub-debug.json 快照。0.2.0 发布版在 UI 中已不显示调试面板,示例模板也不再列出该键
selftest 0 开发者自检:自动建枢纽、投料、切配方跑用例(会往存档里建实体,正式游玩时别开)。示例模板中不再列出
stack 1 多层堆叠字段开关。0 = 不写堆叠字段,回到单层(失败退路)。启动期读一次,改了要重启
holdmul 4 旧键保留、仍生效:槽位单次取料上限 = 单次需求件数 × 该倍数(与 holdfloor 取大者)
holdfloor 4 旧键保留、仍生效:槽位单次取料上限的下限(件)
copypaste 1 配方复制/粘贴补丁。0 = 本会话不安装这组补丁。启动期读一次,改了要重启
animfix 1 渲染前归一枢纽实体动画(修 8~9 倍速/标志乱闪)
powerfix 0 把耗电按「任一槽在工作」稳定写成工作/待机功率
probeanim 0 开发者诊断:采样枢纽及相邻实体的标志/动画变化(会刷日志)
probeins 0 开发者诊断:采样指向枢纽的分拣器与 entityNeeds 内容
probestats 0 开发者诊断:一次性 dump 组件池/登记统计/电力

注册类内容(物品 6007 / 配方 163 / 科技 1993 / 模型 666)受加载期约束,不能热调,必须重启游戏。

存档与兼容

  • 枢纽的 8 槽配方与仓库内容写在 .dsv 文件末尾的附加段(MHUBTRL1 尾块)里:跟着存档文件走,拷到别的机器/存档目录 也一起跟随(按「星系种子 + 星球 index」匹配)。原版客户端会忽略存档尾部的附加数据(原理如此,未在纯原版环境实测),因此不装本 MOD 也应能正常读档。
  • 0.2.0 起尾块为 v3:读 v2 存档时会把旧总线存货一次性迁入仓库(inc 记 0,装不下则退还玩家),新档写空数组。
  • 读档用「文件尾 4MB 内倒序扫描」定位尾块,即使别的 MOD 在本 MOD 之后又追加了尾块也不会丢配置。
  • 不依赖 DSPModSave:存档尾块 MHUBTRL1 由本 MOD 自己追加,已实测与 DSPModSave 1.2.2 共存。
  • 插件目录默认不生成任何文件;只有 debug=1 时才会写 hub-debug.json 状态快照(排查问题用,可随时删)。

已知限制 / 说明

  • 入库按原版分拣器的筛选格与自动化输入限制进行,不再按配方种类设硬上限;needs 广告模式默认关闭(原版 entityNeeds 只有 6 格)。
  • 生产统计里枢纽的 8 个槽会显示成「设施[枢纽图标]×N」——原版按装配组件计数,参考速率数值是正确的(0.1.x 实测,0.2.0 未复测)。
  • 旧存档首次载入会自动清理旧版本遗留的"孤儿装配组件"(只删不被任何实体认领的组件,不碰正常机器)。
  • 复制/粘贴只对枢纽生效:剪贴板里没有枢纽载荷时普通制造台/仓储走原版逻辑;剪贴板是枢纽载荷而目标不是枢纽时,粘贴被静默忽略。
  • 若复制/粘贴出问题:hot-tune.txt 写 copypaste=0 并重启游戏,可整组关闭这组补丁,其余功能不受影响。
  • 若堆叠/配送器行为异常:hot-tune.txt 写 stack=0 并重启游戏,回到单层(0.1.x 形状)行为。
  • 枢纽窗口的「仓库」界面复用了原版 60 格仓库 UI,因此原版界面里的筛选/整理/容量按钮被本 MOD 接管(debug=1 可临时放行)。
  • 重入路径:快速反复「打开原版仓库窗 → 关 → 立即打开枢纽窗口」历史上触发过原生崩溃(0xc0000005);0.2.0 只回归了安全子集,遇到同类崩溃请先对照此场景。
  • 1 tick = 1 游戏帧;枢纽按 tick 逐帧驱动,8 槽并行,不改变原版单槽 1× 的生产数值。

版本

  • v0.2.0(2026-11-01)仓库化改造:60 格仓库 + 8 个脱离实体的配方槽 + 格子分配器 + 分拣器 needs 广告 + 点击接管与仓库按钮 + 存档 v3 + 可选多层堆叠/配送器 + IcarusII molecularHub 调试字段。
  • v0.1.10(2026-10-31)解锁成本下调:宇宙矩阵 10.0M → 10.0K(研究哈希 18.0M → 18.0K)。
  • v0.1.9(2026-10-19)配方复制 / 粘贴(Shift 复制建筑、< > 剪贴板、蓝图)。
  • v0.1.9-r2(2026-10-21)实机反馈修复轮:复制/粘贴语义与提示、槽内物品退还、分拣器投料自愈、产物快速筛选 UI。

问题反馈:见 Thunderstore 包页面(或 r2modman 内 mod 页面)。

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.