重构战斗资源加载 , 新添加宠物

This commit is contained in:
DESKTOP-5RP3AKU\Jisol
2023-12-07 02:14:18 +08:00
parent 1dbbc6c79b
commit 931f580082
257 changed files with 15654 additions and 348 deletions

View File

@@ -150,12 +150,6 @@ export class JLoaderBattle extends JLoaderSystem{
resources:{[id:number]:Asset} = {};
foreverResources:number[] = []; //永久资源Id
roleSpine:{[id:number]:sp.SkeletonData} = {}; //角色Spine
roleResImage:{[id:number]:SpriteFrame} = {}; //角色战斗素材图片
roleResSpine:{[id:number]:sp.SkeletonData} = {}; //角色战斗素材Spine
effects:{[id:number]:sp.SkeletonData} = {}; //Spine特效
maps:{[id:number]:SpriteFrame[]} = {}; //地图
async onInit(): Promise<any> {
app.loading.setCurrent(JLoaderBattle.loading);
@@ -166,46 +160,8 @@ export class JLoaderBattle extends JLoaderSystem{
app.loading.setCurrent(JLoaderBattle.loadingInit);
//将配置表的角色都读取出来
for (const info of TD.TbGRole.getDataMap().values()) {
this.roleSpine[info.id] = await (new Promise(r => {
this.bundle.load(info.spine,sp.SkeletonData,(err,data) => {
r(data);
})
}))
}
//读取角色战斗素材
for(const info of TD.TbGRoleBattleRes.getDataMap().values()){
if(info.resType == "Spine"){
this.roleResSpine[info.id] = await (new Promise(r => {
this.bundle.load(info.resSrc,sp.SkeletonData,(err,data) => {
r(data);
})
}))
}else{
this.roleResImage[info.id] = await (new Promise(r => {
this.bundle.load(info.resSrc,SpriteFrame,(err,data) => {
r(data);
})
}))
}
}
//读取地图
for (const info of TD.TbGMap.getDataMap().values()) {
this.maps[info.id] = await (Promise.all(["1","2","3"].map(index => `map${index}`).map(key => {
return new Promise<SpriteFrame>(r => {
if(info[key]){
this.bundle.load(info[key],SpriteFrame,(err,data) => {
r(data);
})
}
})
})))
}
//默认加载全部资源
await this.loadForeverResources(...TD.TbBattleResource.getDataList());
app.loading.ok(JLoaderBattle.loadingInit);
@@ -222,7 +178,10 @@ export class JLoaderBattle extends JLoaderSystem{
//加载永久资源
loadForeverResource(res:TB.TbBattleResource){
return (new Promise<void>(r => {
this.bundle.load(res.path,(error,data) => {
let Type:new ()=>Asset = [sp.SkeletonData,SpriteFrame][res.type];
this.bundle.load(res.path,Type,(error,data) => {
if(this.foreverResources.indexOf(res.id) < 0){
//添加永久资源
this.resources[res.id] = data;
@@ -276,7 +235,7 @@ export class JLoaderBattle extends JLoaderSystem{
}
//获取资源
getData<T extends Asset>(resId:number):T{
getData<T extends Asset>(resId:number | string):T{
let res = this.resources[resId]
if(!res) console.info(`[JLoaderBattle] 未加载资源${resId}`);
@@ -285,6 +244,19 @@ export class JLoaderBattle extends JLoaderSystem{
}
//获取角色Spine
getRoleSpine(roleId:number){
return this.getData<sp.SkeletonData>(TD.TbGRole.get(roleId).spine)
}
//获取地图
getMap(mapId:number):SpriteFrame[]{
let info = TD.TbGMap.get(mapId)
return ["1","2","3"].map(key => {
return this.getData<SpriteFrame>(info[`map${key}`]);
})
}
}
export const app = {