release: bump version to 0.29.1

This commit is contained in:
rayd1o
2026-04-20 22:12:19 +08:00
parent fe45a99cbd
commit e6d0332fba
15 changed files with 360 additions and 180 deletions

View File

@@ -700,14 +700,17 @@ function applyCableVisualState() {
switch (state) {
case CABLE_STATE.LOCKED:
cable.material.opacity =
CABLE_CONFIG.lockedOpacityMin +
pulse *
(CABLE_CONFIG.lockedOpacityMax - CABLE_CONFIG.lockedOpacityMin);
cable.material.color.setRGB(1, 1, 1);
Math.max(
0.92,
CABLE_CONFIG.lockedOpacityMin +
pulse *
(CABLE_CONFIG.lockedOpacityMax - CABLE_CONFIG.lockedOpacityMin),
);
cable.material.color.setRGB(0.86, 0.96, 1.0);
break;
case CABLE_STATE.HOVERED:
cable.material.opacity = 1;
cable.material.color.setRGB(1, 1, 1);
cable.material.color.setRGB(0.92, 0.98, 1.0);
break;
case CABLE_STATE.NORMAL:
default:
@@ -1039,7 +1042,7 @@ async function loadData() {
clearCableData(earth);
clearSatelliteData();
setLoadingMessage("正在初始化...", "清除旧数据");
setLoadingMessage("正在初始化...");
setLoading(true);
await yieldFrame();
if (loadToken !== currentLoadToken) { isDataLoading = false; return; }
@@ -1048,7 +1051,7 @@ async function loadData() {
// Step 1 — Landing points
if (cablesEnabled) {
setLoadingMessage("正在加载登陆点...", "同步海底光缆登陆站数据");
setLoadingMessage("正在加载登陆点...");
await yieldFrame(30);
try {
await loadLandingPoints(scene, earth);
@@ -1061,7 +1064,7 @@ async function loadData() {
// Step 2 — Cables
if (cablesEnabled) {
setLoadingMessage("正在加载海缆...", "同步海底光缆网络数据");
setLoadingMessage("正在加载海缆...");
await yieldFrame(30);
try {
const cableCount = await loadGeoJSONFromPath(scene, earth);
@@ -1080,7 +1083,7 @@ async function loadData() {
// Step 3 — Satellites
if (satellitesEnabled) {
setLoadingMessage("正在加载卫星...", "同步在轨卫星轨道数据");
setLoadingMessage("正在加载卫星...");
await yieldFrame(30);
try {
clearSatelliteData();
@@ -1100,7 +1103,7 @@ async function loadData() {
}
// Step 4 — BGP
setLoadingMessage("正在加载BGP态势...", "同步全球路由观测数据");
setLoadingMessage("正在加载BGP态势...");
await yieldFrame(30);
try {
const bgpResult = await loadBGPAnomalies(scene, earth);
@@ -1115,7 +1118,7 @@ async function loadData() {
await yieldFrame();
// Step 5 — Earth texture (loads last so data layers appear on the white sphere first)
setLoadingMessage("正在加载地球纹理...", "加载8K卫星地图");
setLoadingMessage("正在加载地球纹理...");
await yieldFrame(30);
try {
await loadEarthTexture();
@@ -1127,19 +1130,10 @@ async function loadData() {
// Step 6 — Terrain (if enabled)
if (getShowTerrain()) {
setLoadingMessage("正在渲染地形...", "生成地表高程数据");
setLoadingMessage("正在渲染地形...");
await yieldFrame(50);
}
if (errors.length > 0) {
const errorMessage = buildLoadErrorMessage(errors);
showError(errorMessage);
showStatusMessage(errorMessage, "error");
} else {
hideError();
showStatusMessage("数据已加载", "success");
}
updateStatsSummary();
updateCableToggleUi(cablesEnabled);
updateSatelliteToggleUi(satellitesEnabled);
@@ -1149,6 +1143,15 @@ async function loadData() {
refreshLegend();
setLoading(false);
isDataLoading = false;
if (errors.length > 0) {
const errorMessage = buildLoadErrorMessage(errors);
showError(errorMessage);
showStatusMessage(errorMessage, "error");
} else {
hideError();
showStatusMessage("数据已加载", "success");
}
}
const POSITION_UPDATE_FORCE_DELTA = 250;
@@ -1170,7 +1173,7 @@ export async function setCablesEnabled(enabled) {
return 0;
}
setLoadingMessage("正在加载线缆数据...", "重建海缆与登陆点对象");
setLoadingMessage("正在加载线缆数据...");
setLoading(true);
hideError();
@@ -1203,7 +1206,7 @@ export async function setSatellitesEnabled(enabled) {
return 0;
}
setLoadingMessage("正在加载卫星数据...", "重建卫星点位与轨迹缓存");
setLoadingMessage("正在加载卫星数据...");
setLoading(true);
hideError();