XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

AutoMiningScript

【SpaceEngineer】全自动挖矿脚本

公开
关注 0 Fork 0 Star 0
返回提交历史

SpaceEngineersModDev/AutoMiningScript

Continue assignment searches each frame within the instruction budget

baf9e5a
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

4 个文件 +20 -2
Modified AutoMiningScript.Tests/BulkMiningTests.cs +11 -0
@@ -39,6 +39,17 @@ namespace AutoMiningScript.Tests
39 39 for(int n=0;n<p.Jobs.Count;n++)Assert.True(Vector3D.Distance(p.Jobs[n].Direction,after.Jobs[n].Direction)<1e-12);
40 40 Assert.Equal(Math.Max(7,ships),after.Jobs.Select(j=>j.Entry).Distinct().Count());
41 41 }
42 [Fact]
43 public void TwelveMinerSearchDoesNotSleepBetweenEveryAssignmentBatch()
44 {
45 var r=new FleetStateTests.Rig(12,true);r.RegisterAll();r.Fleet.Command("survey 2000");r.Fleet.Command("start");
46 for(int n=0;n<240;n++)
47 {
48 if(n%60==0)foreach(var t in r.Miners)r.Receive("TELEMETRY",t);
49 r.Program.Now+=1d/60;r.Fleet.Tick(1d/60);
50 }
51 Assert.Equal(504,r.Planner.Jobs.Count);Assert.Equal(12,r.Planner.OwnedJobs.Count);
52 }
42 53 [Theory]
43 54 [InlineData(12)] [InlineData(16)]
44 55 public void OneSurfaceHitCanEmployTheWholeReadyFleetWithoutOreConfirmation(int count)
Modified AutoMiningScript/FleetController.cs +3 -1
@@ -178,7 +178,9 @@ namespace AutoMiningScript
178 178 ReconcilePhysicalDock(); ReconcileMineClearance(); PruneProtectedOwners(); RetryCancellation(); ScheduleLane();
179 179 }
180 180 if (P.HasBudget(0.4)) planner.Advance();
181 if (running && assignmentClock >= 0.1 && P.HasBudget(0.45)) { assignmentClock = 0; Assign(); }
181 // Continue a bounded search on the next frame; throttling every
182 // batch multiplies idle time by both the job count and fleet size.
183 if (running && (assignmentMiner.Length>0 || assignmentClock >= 0.1) && P.HasBudget(0.45)) { assignmentClock = 0; Assign(); }
182 184 }
183 185 void UpdateFrames(double dt)
184 186 {
Modified docs/VALIDATION.md +1 -1
@@ -8,7 +8,7 @@
8 8
9 9 在授权调试副本中发现并修复太空观察点不足、自动开采入口仍用短试钻检查、擦边发现导致空孔、开采入口持续绕行、短距离避让反复转身、自遮挡镜头阻止转向,以及返航倒放回环航迹等问题。首轮十二台均收到开采任务,但只有四台实际采到矿,不能据此声称十二台完整采矿通过;继续按每台矿机的实际矿石增量、返航连接和卸空逐项复核。详见 [本轮实机记录](agent-debug/FULL_CYCLE_20261010.md)。
10 10
11 本轮代码的中英文回归各 **909/909** 通过;八份导出均通过独立编译、角色检查及 100000 字符限制,日志为 `obj/return-loop-build.log`。中文矿机 97370 字符,SHA-256 `4e17863776b7c281547852d3e73a9921d7787852d5e992e4a4d5d720b8981ec7`;中文主控 98354 字符,SHA-256 `e7e3c732a747aadbf983f294daedf8559b118328d4c6628931e62fd6b3ca15f3`。英文矿机 99771、主控 99512 字符。调试工具十项 Python 检查通过,包含不把派工、空载返航、未连接时丢货或之前循环的矿物记为本轮完整采矿。
11 本轮代码的中英文回归各 **910/910** 通过;八份导出均通过独立编译、角色检查及 100000 字符限制,最终日志为 `obj/assignment-batch-build.log`。中文矿机 97370 字符,SHA-256 `4e17863776b7c281547852d3e73a9921d7787852d5e992e4a4d5d720b8981ec7`;中文主控 98367 字符,SHA-256 `df573273862435ed54258ca93a5d24716920904864c5b98b9a2896b9bce20b30`。英文矿机 99771、主控 99525 字符。调试工具十项 Python 检查通过,包含不把派工、空载返航、未连接时丢货或之前循环的矿物记为本轮完整采矿。
12 12
13 13 ### 2026-10-10 并行大范围开采与原存档更新
14 14
Modified docs/agent-debug/FULL_CYCLE_20261010.md +5 -0
@@ -15,6 +15,7 @@
15 15 - 短距离避让使用与长途绕行相同的大步长,并转动整个船体,导致扫描反复失效和新的碰撞预测。现在优先保持船体姿态、使用对应方向镜头扫描后侧移;被挡时搜索约 2–3 米的局部绕路。靠近母舰保留对接口平面的保护和固定姿态。
16 16 - 实机 9 号的镜头射线打到自身船体,但转向选择仍将该镜头的视锥覆盖视为可用视线,造成 9 号、10 号互相等待。已将本次实际被遮挡的镜头排除出转向选择,保留其他镜头和缺少方向覆盖时的转向探测。
17 17 - 旧版反复寻找入口留下大量近距离回环;返航逐点倒放时反复制动和掉头。返航可重新接上两个船体半径内更早的航迹点,消除局部回环;没有直接删除远处急转弯,新连接段仍执行完整包络扫描和避障。实际快照中 1 号有 49 个航迹点,7 号距离更早航迹点仅 2.6 米;对应回归同时覆盖空旷捷径和捷径有墙的情况。
18 - 十二台探索时,主控每查找一批最多 64 个候选任务都等待 0.1 秒,504 项计划导致每轮续派约十秒,矿机频繁同时等待。任务查找已开始时改为下一帧继续,仍限制单帧候选数量和指令预算;开始下一台查找仍保留节流。回归以 60 Hz 运行真实调度逻辑,验证 504 项计划下十二台均在四秒内获得任务。
18 19
19 20 ## 首轮实测
20 21
@@ -28,3 +29,7 @@ UTC 10:41:59 记录十二台矿机全部连接、矿石库存为零;10:42:25
28 29 | 12 号 | 166501.427070 |
29 30
30 31 12 号在 UTC 11:19:03 的快照中已经连接、矿石为零;同帧母舰仍有 26501.427070 kg 石头在货物库存,连同生产设备共 87829.427070 kg,后续随精炼下降。9 号和 10 号在镜头遮挡修复后恢复移动。首轮召回及后续复测继续单独记录,不能以这一次卸货代替全部十二台的完整循环结果。
32
33 首轮四台最后均已连接并卸空;7 号最后一批在 UTC 11:28:44 的记录中确认。全部十二台再次连接、空载且保持 85 个方块、47056 完整度之后,保存 `final-cycle-baseline.json`,逐一读取十三个编程块确认源码和编译实例,于 UTC 11:28:57.111538 执行 `clear-tasks`、`survey 2000`、`start` 开始复测。十二台均离港并取得不同观察点。9 号随后真实命中同一小行星 `483731818465130598`,方向修正后的新开采区为 `主控-deposit-2137`;十二台均取得不同开采孔。
34
35 本轮矿机版本保持 SHA-256 `4e17863776b7c281547852d3e73a9921d7787852d5e992e4a4d5d720b8981ec7`。为修复实测续派延迟,UTC 11:34:45 热更新并核验主控为 `df573273862435ed54258ca93a5d24716920904864c5b98b9a2896b9bce20b30`,保留进行中的计划与任务;本轮没有重置矿机程序或伪造矿石。