Skip to content

SFS-Agent v0.6.3

Choose a tag to compare

@LShangPiao LShangPiao released this 18 Oct 09:37
· 2 commits to main since this release

修好了「分级读不到 / 发动机读不到 / 点火没反应」

这次的问题一半在模组、一半在老的接口约定,逐条说:

1. 分级列表是空的(最要命)

模组加载蓝图时只把零件 spawn 出来,没把蓝图里的 StageSave[] 应用给新火箭 —— 火箭的 Staging.stages 是空列表,游戏不知道哪台引擎属于哪一级,于是一台引擎都不点火、推力恒 0、油门拉满也没用。
现在 Spawn() 之后会调 ApplyStages():优先 Staging.Load(StageSave[], Part[], bool),失败退 CreateStages(StageSave[], Part[])。

2. /build 的 stage_count 恒为 0

原判定写的是 stages is Array,而 Staging.stages 是 List<Stage>。改成按 ICollection.Count 计数,建造场景改读 StagingDrawer.main.staging。

3. /state 顶层 stage 永远是 -1

它取自 Staging.stageId,而 SFS.World.Staging 上根本没有这个成员。已废弃,请改用 stages 对象(count / current_index / current_parts / summary)。

4. 引擎数虚高、燃料读不到

  • engines_total:partHolder.modules 是 Dictionary,同一 EngineModule 挂在多个 key 下被重复计数(24 件报 30、182 件报 150)。改用引用去重。
  • fuel_percent:之前只读 BoosterModule(固体助推器),液体燃料在 Rocket.resources 的 globalGroups 里,新增 ReadLiquidFuel()。

5. 点火指令错得最离谱:空格不是点火,回车才是

实测 SFS 1.6.00.16 里 空格只切换油门闸门,回车才执行分级程序(点火、分离、点燃下一级)。所以过去「油门 79%、引擎一台没醒」不是错觉。

  • stage / ignite / staging_program → 回车
  • 新增 throttle_toggle → 空格,保留原语义

验证

实机 蓝星1号:分级 11 级(此前恒 0)、25 台引擎(此前 150)、燃料 99.4%(此前 null)。基础火箭 执行 ignite 后 engines_on 1/1、thrust 120 kN。

安装

把 zip 解压到 Mods,或用 SFS-Agent.dll 覆盖 Mods/SFS-Agent/ 下同名文件。配置文件 sfs-agent.ini 首次运行自动生成,已有配置不会被覆盖(想保留就只换 dll)。