schedulercore-mc1.21.1-1.0.4.jar
Curse Maven Snippet
What's new
1.0.4
CPU 行现在只代表机器。 实机报告:选中某个订单后,列表里 CPU 那一行会跟着显示那一单的图标、进度和 ETA,看起来像机器偷偷换了在做的事。现在那一行无论你选中谁,都只汇报整台 CPU。
修复
- CPU 行不再跟随你点选的那一单。 AE2 的这一行由
CraftingCPUCluster.getJobStatus()组成,而它又是用getFinalJobOutput()+getElapsedTimeTracker()拼出来的 —— 这两个方法详情面板也在读,且必须跟随你选的页面。所以这一行改为直接按整台 CPU 回答:- 图标是调度核心方块,标记"这是本 CPU 的总视图",同时说明这台 CPU 是装了调度核心的;
- 进度 / ETA 是各订单按订单量加权的合计,已用时间取最长那个订单的。
- 也不能退化成"跟随当前时间片的订单":每 tick 只服务一个订单,那样数字每 tick 都在变,每次刷新都在跳。
- 详情面板仍然跟随你选的页面:订单页显示该订单自己的计划、等待列、待输出列与进度 / ETA;没选中任何行时,页面描述整台机器。
- 切换页面不再残留上一页的行。 这个界面是增量的(服务端报告某个 key 变了,客户端才更新那一行)。页面切换时的刷新只报告了新页面的 key,于是新页面排除掉的那些行永远不会被重发,客户端就一直显示它们上一次的数值 —— 表现为"订单页上还列着别的订单的产物"。现在会报告所有订单的 key。
- 同一个失误还命中过存档路径(聚焦某单时存档会只存那一单、丢掉其余订单)。已一并修复,并加了回归测试:选中某单 → 存档 → 重启 → 订单应当全在。
- 合成出的已用时间不再双重计时。 AE2 的
TimedItemTracker.getElapsedTime()在作业未完成时会做实时外推,我们合成的"整台 CPU"追踪器只写了累计值,导致报告出来的时间是"合计 + 这个追踪器的年龄"。
新增
- 一键冻结整台 CPU。 在描述机器的页面上(CPU 行,或没有订单列表的 CPU 方块界面),挂起按钮作用于全部订单,再按一次全部恢复;选中某个订单行时仍只作用于那一单(与之前行为完全一致)。状态按订单存档,重启后仍然冻结。
- 注意"冻结"不拦新订单:准入逻辑没有改动,所以往冻结中的 CPU 提交新订单仍会被收下并开始跑。"挂起全部"停住的是已存在的订单,不是给机器装了个总闸。
- 诊断能力:
/schedulercore uiprobe rows现在会打印每行画出的图标;/schedulercore trace on之后,页面切换会在日志里打出逐 key 的服务端真实数值(stored/waiting/pending),以后"页面显示不对"这类问题可以直接从日志分辨是服务端算错还是客户端没收到。
This mod has no additional files
