Skip to content

Silicon a0.13.0.1(卫星接管 · 基于第一阶段)

Latest

Choose a tag to compare

@rt334 rt334 released this 02 Oct 08:51
· 235 commits to fork/main since this release

第一阶段(a0.13.0.0)之上的独立补丁版:卫星可被玩家按 Ctrl 接管。

怎么用

按住 Ctrl 点击卫星即可进入。进入后卫星继续沿星下点轨迹飞行,WASD 等输入无效 —— 能进去看,但改不动轨迹。

本次改动

  • 卫星开放 possess 能力(原版接管流程)
  • OrbitSatelliteController 改为继承 AIController:isAI() 的实现是 controller instanceof AIController,不继承则恒假、点不进去
  • controller 字段显式指定:不能只设 aiController —— UnitType.java:281 的默认工厂在 playerControllable=true 时直接返回 CommandAI,aiController 分支不会被走到,卫星会失去唯一运动驱动源而静止
  • 覆盖 UnitType.update(Unit) 在接管期间补位驱动:possess 会把 controller 换成 Player 对象本身(UnitComp.java:950),此后 updateUnit() 不再被调用
  • applyMotion 每帧覆写位置并清零 vel,玩家输入被立刻抹掉,轨迹不可手改

与滚动构建的区别

本版基于第一阶段(a0.13.0.0),不含第二阶段的拦截塔 / 定位器 / LOIC。需要完整功能请用 fork-latest(a0.14.0.0p)。

对应上游 PR:SiliconMod/Silicon#71