fix: 更新提交
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { JsonAsset } from "cc";
|
||||
|
||||
import { ResManager } from "@max-studio/core/res/ResManager";
|
||||
import { singleton, Singleton } from "@max-studio/core/Singleton";
|
||||
import LogUtils from "@max-studio/core/utils/LogUtils";
|
||||
|
||||
import { ConfigParseUtils } from "./ConfigParseUtils";
|
||||
import { PetConfigData, parsePetConfigData } from "./PetConfigData";
|
||||
import ResManager from "@max-studio/core/res/ResManager";
|
||||
|
||||
/**
|
||||
* PetConfig配置管理器
|
||||
@@ -13,10 +13,11 @@ import { PetConfigData, parsePetConfigData } from "./PetConfigData";
|
||||
* ⚠️ 此文件由配置表生成器自动生成,请勿手动修改!
|
||||
* 如需修改,请编辑对应的Excel配置文件,然后重新生成
|
||||
*/
|
||||
@singleton()
|
||||
@singleton({ auto: true })
|
||||
export class PetConfigManager extends Singleton {
|
||||
private configList: readonly PetConfigData[] = [];
|
||||
private configMap = new Map<number, PetConfigData>();
|
||||
|
||||
private isLoaded = false;
|
||||
|
||||
protected async onInit(): Promise<void> {
|
||||
@@ -25,19 +26,15 @@ export class PetConfigManager extends Singleton {
|
||||
|
||||
private async loadConfig(): Promise<void> {
|
||||
try {
|
||||
const asset = await ResManager.getInstance().loadAsset<JsonAsset>(
|
||||
"generated/data/PetConfig",
|
||||
JsonAsset,
|
||||
"configs",
|
||||
);
|
||||
const { err, asset } = await ResManager.getInstance().loadAsset<JsonAsset>({
|
||||
path: "generated/data/PetConfig",
|
||||
type: JsonAsset,
|
||||
bundle: "configs",
|
||||
});
|
||||
this.parseConfig(<any>asset.json);
|
||||
this.isLoaded = true;
|
||||
} catch (err) {
|
||||
LogUtils.error(
|
||||
"PetConfigManager",
|
||||
"加载 PetConfig 配置失败:",
|
||||
err,
|
||||
);
|
||||
LogUtils.error("PetConfigManager", "加载 PetConfig 配置失败:", err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,26 +43,20 @@ export class PetConfigManager extends Singleton {
|
||||
data.map((item) => {
|
||||
const config = parsePetConfigData(item);
|
||||
const frozenConfig = ConfigParseUtils.deepFreeze(config);
|
||||
return ConfigParseUtils.createReadonlyProxy(
|
||||
frozenConfig,
|
||||
"PetConfigData配置",
|
||||
);
|
||||
return ConfigParseUtils.createReadonlyProxy(frozenConfig, "PetConfigData配置");
|
||||
}),
|
||||
);
|
||||
this.configMap.clear();
|
||||
|
||||
for (const config of this.configList) {
|
||||
this.configMap.set(config.id, config);
|
||||
this.configMap.set((config as any).id, config);
|
||||
}
|
||||
// 深度冻结配置映射,防止运行时修改
|
||||
ConfigParseUtils.deepFreeze(this.configMap);
|
||||
}
|
||||
|
||||
public getConfig(id: number): PetConfigData | null {
|
||||
if (!this.isLoaded) {
|
||||
LogUtils.warn(
|
||||
"PetConfigManager",
|
||||
"PetConfig 配置尚未加载完成,请等待加载完成",
|
||||
);
|
||||
LogUtils.warn("PetConfigManager", "PetConfig 配置尚未加载完成,请等待加载完成");
|
||||
return null;
|
||||
}
|
||||
return this.configMap.get(id) || null;
|
||||
@@ -73,10 +64,7 @@ export class PetConfigManager extends Singleton {
|
||||
|
||||
public getAllConfigs(): PetConfigData[] {
|
||||
if (!this.isLoaded) {
|
||||
LogUtils.warn(
|
||||
"PetConfigManager",
|
||||
"PetConfig 配置尚未加载完成,请等待加载完成",
|
||||
);
|
||||
LogUtils.warn("PetConfigManager", "PetConfig 配置尚未加载完成,请等待加载完成");
|
||||
return [];
|
||||
}
|
||||
return [...this.configList];
|
||||
|
||||
Reference in New Issue
Block a user