同步主站 Cocos 当前工程:关卡资源、运行脚本与打包工具。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
* 关卡注册表 — 统一从 LevelDatabase(单一 JSON)读取
|
||||
*/
|
||||
import { LevelConfig } from './LevelTypes';
|
||||
import { LEVEL_ID_BASE } from './LevelIds';
|
||||
import { LEVEL_ID_BASE, themeForLevelId } from './LevelIds';
|
||||
|
||||
export { LEVEL_ID_BASE, isGameLevelId } from './LevelIds';
|
||||
export { LEVEL_ID_BASE, isGameLevelId, themeForLevelId } from './LevelIds';
|
||||
import {
|
||||
getLevelConfig as dbGet,
|
||||
hasLevel as dbHas,
|
||||
@@ -34,16 +34,21 @@ export function getMaxLevelId(): number {
|
||||
/**
|
||||
* 主站 SendMessage(levelID) → 查 Cocos 关卡库;无条目时按 Level{id}.prefab 加载。
|
||||
*/
|
||||
function applySeriesTheme(cfg: LevelConfig): LevelConfig {
|
||||
const theme = themeForLevelId(cfg.levelID);
|
||||
return theme ? { ...cfg, theme } : cfg;
|
||||
}
|
||||
|
||||
export function resolveLevelConfig(levelID: number): LevelConfig | null {
|
||||
const cfg = dbGet(levelID);
|
||||
if (cfg) return cfg;
|
||||
if (cfg) return applySeriesTheme(cfg);
|
||||
if (levelID <= 0) return null;
|
||||
return {
|
||||
levelID,
|
||||
boundary: { x: 20, y: 20 },
|
||||
spawns: [],
|
||||
cocosPrefab: `level-prefabs/Level${levelID}`,
|
||||
theme: 'sanxing',
|
||||
theme: themeForLevelId(levelID) ?? 'sanxing',
|
||||
};
|
||||
}
|
||||
|
||||
@@ -58,7 +63,8 @@ export function refreshLevelIdBounds() {
|
||||
}
|
||||
|
||||
export function getLevelConfig(levelID: number): LevelConfig | null {
|
||||
return dbGet(levelID);
|
||||
const cfg = dbGet(levelID);
|
||||
return cfg ? applySeriesTheme(cfg) : null;
|
||||
}
|
||||
|
||||
export function hasLevel(levelID: number): boolean {
|
||||
|
||||
Reference in New Issue
Block a user