',
+)
+
+# 2) 删空态 ...
+import re
+t = re.sub(
+ r'\t\t]*>\n\t\t\t\{\{ formatMessage\(messages\.empty\) \}\}\n\t\t
\n',
+ "",
+ t,
+)
+
+# 3) 改
+t = t.replace('', '')
+
+open(p, "w", encoding="utf-8", newline="\n").write(t)
+print("done")
+print("--- 78-95 ---")
+for i, line in enumerate(t.split("\n")[77:95], 78):
+ print(f"{i}: {line}")
diff --git a/tools/icon_work/icon_test_copy.exe b/tools/icon_work/icon_test_copy.exe
new file mode 100644
index 0000000..d515123
Binary files /dev/null and b/tools/icon_work/icon_test_copy.exe differ
diff --git a/tools/icon_work/read_emit.py b/tools/icon_work/read_emit.py
new file mode 100644
index 0000000..c656f04
--- /dev/null
+++ b/tools/icon_work/read_emit.py
@@ -0,0 +1,6 @@
+
+import glob
+for f in glob.glob("packages/app-lib/src/event/*.rs"):
+ print("=== " + f + " ===")
+ print(open(f, encoding="utf-8").read()[:4000])
+ print()
diff --git a/tools/icon_work/scan_launch.py b/tools/icon_work/scan_launch.py
new file mode 100644
index 0000000..d4704f4
--- /dev/null
+++ b/tools/icon_work/scan_launch.py
@@ -0,0 +1,5 @@
+
+l = open("packages/app-lib/src/launcher/mod.rs", encoding="utf-8").read().split("\n")
+for i, line in enumerate(l):
+ if "init_loading" in line or "emit_loading" in line or "MinecraftDownload" in line or "InstanceUpdate" in line:
+ print(f"{i+1}: {line.strip()}")
diff --git a/tools/icon_work/wire_lp.py b/tools/icon_work/wire_lp.py
new file mode 100644
index 0000000..38715be
--- /dev/null
+++ b/tools/icon_work/wire_lp.py
@@ -0,0 +1,29 @@
+
+p = r"D:\Project\Starlight_Lancher\apps\app-frontend\src\pages\Index.vue"
+lines = open(p, encoding="utf-8").read().split("\n")
+
+# 1) import:在 HomePlayInsights import 行后加一行
+imp_i = None
+for i, ln in enumerate(lines):
+ if "import HomePlayInsights from '@/components/home/HomePlayInsights.vue'" in ln:
+ imp_i = i
+ break
+assert imp_i is not None, "找不到 HomePlayInsights import"
+lines.insert(imp_i, "import HomeLaunchProgress from '@/components/home/HomeLaunchProgress.vue'")
+
+# 2) 模板:在 前插入
+tpl_i = None
+for i, ln in enumerate(lines):
+ if ln.strip() == "":
+ tpl_i = i
+ break
+assert tpl_i is not None, "找不到 "
+lines.insert(tpl_i, "\t\t\t")
+
+open(p, "w", encoding="utf-8", newline="\n").write("\n".join(lines))
+print("done")
+for i in range(imp_i - 1, imp_i + 2):
+ print(f"{i+1}: {lines[i]}")
+print("...")
+for i in range(tpl_i - 2, tpl_i + 3):
+ print(f"{i+1}: {lines[i]}")