This commit is contained in:
2025-09-10 15:48:27 +08:00
parent 6b3176ed39
commit 146c9a75a2
1564 changed files with 101785 additions and 257 deletions
+21 -22
View File
@@ -1,9 +1,4 @@
import {
resources,
BufferAsset,
assetManager,
AssetManager,
} from "cc";
import { resources, BufferAsset, assetManager, AssetManager } from "cc";
import * as cfg from "../../schema/schema";
import ByteBuf from "db://assets/Scripts/luban/ByteBuf";
import { BaseConfig } from "../config/BaseConfig";
@@ -18,12 +13,12 @@ import { AiCharacterConfig } from "../config/AiCharacterConfig";
* 集中定义数据ID,避免写错字符串
*/
export enum ConfigId {
Theme = "theme", // 主题配置
Purchase = "purchase", // 商城配置
Global = "global", // 全局配置
Girl = "girl", // 技师的简要配置
GirlDetail = "girlDetail", // 技师的详细配置
AiCharacter = "aiCharacter", // 技师的详细配置
Theme = "theme", // 主题配置
Purchase = "purchase", // 商城配置
Global = "global", // 全局配置
Girl = "girl", // 技师的简要配置
GirlDetail = "girlDetail", // 技师的详细配置
AiCharacter = "aiCharacter", // 技师的详细配置
}
/** 构造器类型 */
@@ -43,9 +38,9 @@ export class ConfigManager {
public static jsonFileNames: string[] = [];
// 数据实例缓存
private _dataMap: Map<string, BaseConfig> = new Map();
private _dataMap: Map<string, BaseConfig> = new Map();
// 数据ID到构造器的映射
private _config: Map<string, DataCtor> = new Map();
private _config: Map<string, DataCtor> = new Map();
private constructor() {}
@@ -100,9 +95,6 @@ export class ConfigManager {
Promise.all(promises).then((values) => {
console.log("静态配置加载完成");
ConfigManager.tables = new cfg.Tables(ConfigManager.I.getFileData);
for (let item of ConfigManager.tables.TbGirls.getDataList()) {
console.log(item);
}
});
}
private getFileData(fileName: string): ByteBuf {
@@ -129,17 +121,24 @@ export class ConfigManager {
/**
* 注册一个数据ID及其对应的构造器
*/
private register<T extends BaseConfig>(configId: string, ctor: DataCtor<T>): void {
private register<T extends BaseConfig>(
configId: string,
ctor: DataCtor<T>
): void {
if (this._config.has(configId)) {
console.warn(`[ConfigManager] 重复注册数据ID: ${configId},将覆盖旧构造器`);
console.warn(
`[ConfigManager] 重复注册数据ID: ${configId},将覆盖旧构造器`
);
}
this._config.set(configId, ctor);
}
}
/**
* 获取数据(已存在则直接返回;否则按配置自动实例化并缓存)
*/
public getDataById<T extends BaseConfig = BaseConfig>(configId: string): T | null {
public getDataById<T extends BaseConfig = BaseConfig>(
configId: string
): T | null {
// 先从缓存取
const cached = this._dataMap.get(configId) as T | undefined;
if (cached) return cached;
@@ -157,7 +156,7 @@ export class ConfigManager {
instance.init?.(configId);
this._dataMap.set(configId, instance);
return instance;
}
}
/**
* 移除数据