update
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除数据
|
||||
|
||||
Reference in New Issue
Block a user