From 1dbbc6c79bd95e41d3a5dceff996441ddfd8e377 Mon Sep 17 00:00:00 2001 From: "PC-20230316NUNE\\Administrator" <2858626794@qq.com> Date: Wed, 6 Dec 2023 19:08:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataTables/Datas/__tables__.xlsx | Bin 10462 -> 10537 bytes DataTables/Datas/战斗/战斗资源素材.xlsx | Bin 0 -> 9827 bytes .../assets/resources/config/data/schema.ts | 69 +++++++++++++++ .../config/json/tbbattleresource.json | 1 + JisolGameCocos/assets/script/App.ts | 82 +++++++++++++++++- .../main/java/cfg/TB/TbBattleResource.java | 55 ++++++++++++ .../Main/src/main/java/cfg/Tables.java | 3 + .../src/main/java/cfg/TbBattleResource.java | 37 ++++++++ .../main/resources/json/tbbattleresource.json | 1 + 9 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 DataTables/Datas/战斗/战斗资源素材.xlsx create mode 100644 JisolGameCocos/assets/resources/config/json/tbbattleresource.json create mode 100644 JisolGameServer/Main/src/main/java/cfg/TB/TbBattleResource.java create mode 100644 JisolGameServer/Main/src/main/java/cfg/TbBattleResource.java create mode 100644 JisolGameServer/Main/src/main/resources/json/tbbattleresource.json diff --git a/DataTables/Datas/__tables__.xlsx b/DataTables/Datas/__tables__.xlsx index 5cdd1790bf9990c218bc6fadab250c02d639f3ad..e0a0fba9c3d30eed2af43ae44936dcd9c8c00afb 100644 GIT binary patch delta 3473 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 delta 3381 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 b|G@s~wNR9W{k2&!z->$LU^z+hN8JAd$z + private _dataList: TB.TbBattleResource[] + constructor(_json_: any) { + this._dataMap = new Map() + this._dataList = [] + for(var _json2_ of _json_) { + let _v: TB.TbBattleResource + _v = new TB.TbBattleResource(_json2_) + this._dataList.push(_v) + this._dataMap.set(_v.id, _v) + } + } + + getDataMap(): Map { return this._dataMap; } + getDataList(): TB.TbBattleResource[] { return this._dataList; } + + get(key: number): TB.TbBattleResource | undefined { return this._dataMap.get(key); } + + resolve(tables:Tables) + { + for(let data of this._dataList) + { + data.resolve(tables) + } + } + +} + + + + type JsonLoader = (file: string) => any export class Tables { @@ -1239,6 +1304,8 @@ export class Tables { get TbGOnHookMaps(): TbGOnHookMaps { return this._TbGOnHookMaps;} private _TbGOnHookMap1: TbGOnHookMap1 get TbGOnHookMap1(): TbGOnHookMap1 { return this._TbGOnHookMap1;} + private _TbBattleResource: TbBattleResource + get TbBattleResource(): TbBattleResource { return this._TbBattleResource;} constructor(loader: JsonLoader) { this._TbGGlobal = new TbGGlobal(loader('tbgglobal')) @@ -1257,6 +1324,7 @@ export class Tables { this._TbGRoleBaseAttribute = new TbGRoleBaseAttribute(loader('tbgrolebaseattribute')) this._TbGOnHookMaps = new TbGOnHookMaps(loader('tbgonhookmaps')) this._TbGOnHookMap1 = new TbGOnHookMap1(loader('tbgonhookmap1')) + this._TbBattleResource = new TbBattleResource(loader('tbbattleresource')) this._TbGGlobal.resolve(this) this._TbGRole.resolve(this) @@ -1274,5 +1342,6 @@ export class Tables { this._TbGRoleBaseAttribute.resolve(this) this._TbGOnHookMaps.resolve(this) this._TbGOnHookMap1.resolve(this) + this._TbBattleResource.resolve(this) } } diff --git a/JisolGameCocos/assets/resources/config/json/tbbattleresource.json b/JisolGameCocos/assets/resources/config/json/tbbattleresource.json new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/JisolGameCocos/assets/resources/config/json/tbbattleresource.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/JisolGameCocos/assets/script/App.ts b/JisolGameCocos/assets/script/App.ts index c93ec116..0a262959 100644 --- a/JisolGameCocos/assets/script/App.ts +++ b/JisolGameCocos/assets/script/App.ts @@ -18,13 +18,15 @@ import JLoaderSystem from "../../extensions/ngame/assets/ngame/system/JLoaderSys import { sp } from "cc"; import { SpriteFrame } from "cc"; import Loading from "../../extensions/ngame/assets/ngame/util/Loading"; -import { Tables } from "../resources/config/data/schema"; +import { TB, Tables } from "../resources/config/data/schema"; import { JsonAsset } from "cc"; import { GAction } from "./consts/GAction"; import { StorageData, StorageEnum } from "./consts/GData"; import { JAPI, JAPIConfig } from "../../extensions/ngame/assets/ngame/util/JAPI"; import { AppData } from "./AppData"; import AppAction from "./AppAction"; +import { Asset } from "cc"; +import { Component } from "cc"; // let APIPath = `http://localhost:8080` // let WsPath = `ws://localhost:8080/websocket` @@ -144,6 +146,10 @@ export class JLoaderBattle extends JLoaderSystem{ static loading = "JLoaderBattle"; static loadingInit = "JLoaderBattle_Init"; + //资源 + resources:{[id:number]:Asset} = {}; + foreverResources:number[] = []; //永久资源Id + roleSpine:{[id:number]:sp.SkeletonData} = {}; //角色Spine roleResImage:{[id:number]:SpriteFrame} = {}; //角色战斗素材图片 roleResSpine:{[id:number]:sp.SkeletonData} = {}; //角色战斗素材Spine @@ -205,6 +211,80 @@ export class JLoaderBattle extends JLoaderSystem{ } + //加载永久资源 + async loadForeverResources(...ress:TB.TbBattleResource[]){ + + for (const res of ress) { + await this.loadForeverResource(res); + } + + } + //加载永久资源 + loadForeverResource(res:TB.TbBattleResource){ + return (new Promise(r => { + this.bundle.load(res.path,(error,data) => { + if(this.foreverResources.indexOf(res.id) < 0){ + //添加永久资源 + this.resources[res.id] = data; + data.addRef(); + } + r(); + }) + })) + } + + //加载组件资源 + async loadComponentResource(res:TB.TbBattleResource,comp:Component):Promise{ + return (new Promise(r => { + this.bundle.load(res.path,(error,data) => { + if(!this.resources[res.id]) + this.resources[res.id] = data; + //添加资源次数 + data.addRef(); + //添加销毁资源引用 + let onDestroy = comp["onDestroy"]; + comp["onDestroy"] = () => { + if(onDestroy) + onDestroy.bind(comp)(); + data.decRef(); + this.onUpdateResources(); + } + r(data as T); + }) + })) + } + + //销毁永久资源 + clearForeverResources(...ress:TB.TbBattleResource[]){ + this.foreverResources.forEach(id => { + if(this.resources[id]){ + this.resources[id].decRef(); + } + }); + this.foreverResources = []; + this.onUpdateResources(); + } + + //更新资源(过滤没有用的资源) + onUpdateResources(){ + for (const key in this.resources) { + if (Object.prototype.hasOwnProperty.call(this.resources, key)) { + const data = this.resources[key]; + if(!data.isValid) this.resources[key] = null; + } + } + } + + //获取资源 + getData(resId:number):T{ + + let res = this.resources[resId] + if(!res) console.info(`[JLoaderBattle] 未加载资源${resId}`); + + return res as T; + + } + } export const app = { diff --git a/JisolGameServer/Main/src/main/java/cfg/TB/TbBattleResource.java b/JisolGameServer/Main/src/main/java/cfg/TB/TbBattleResource.java new file mode 100644 index 00000000..5b2c701d --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cfg/TB/TbBattleResource.java @@ -0,0 +1,55 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg.TB; + +import luban.*; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + + +public final class TbBattleResource extends AbstractBean { + public TbBattleResource(JsonObject _buf) { + id = _buf.get("id").getAsInt(); + path = _buf.get("path").getAsString(); + type = _buf.get("type").getAsInt(); + } + + public static TbBattleResource deserialize(JsonObject _buf) { + return new cfg.TB.TbBattleResource(_buf); + } + + /** + * id + */ + public final int id; + /** + * 资源路径 + */ + public final String path; + /** + * 资源类型(0.Spine) + */ + public final int type; + + public static final int __ID__ = 509266580; + + @Override + public int getTypeId() { return __ID__; } + + @Override + public String toString() { + return "{ " + + "(format_field_name __code_style field.name):" + id + "," + + "(format_field_name __code_style field.name):" + path + "," + + "(format_field_name __code_style field.name):" + type + "," + + "}"; + } +} + diff --git a/JisolGameServer/Main/src/main/java/cfg/Tables.java b/JisolGameServer/Main/src/main/java/cfg/Tables.java index c5d0508c..a5072512 100644 --- a/JisolGameServer/Main/src/main/java/cfg/Tables.java +++ b/JisolGameServer/Main/src/main/java/cfg/Tables.java @@ -51,6 +51,8 @@ public final class Tables public cfg.TbGOnHookMaps getTbGOnHookMaps() { return _tbgonhookmaps; } private final cfg.TbGOnHookMap1 _tbgonhookmap1; public cfg.TbGOnHookMap1 getTbGOnHookMap1() { return _tbgonhookmap1; } + private final cfg.TbBattleResource _tbbattleresource; + public cfg.TbBattleResource getTbBattleResource() { return _tbbattleresource; } public Tables(IJsonLoader loader) throws java.io.IOException { _tbgglobal = new cfg.TbGGlobal(loader.load("tbgglobal")); @@ -69,6 +71,7 @@ public final class Tables _tbgrolebaseattribute = new cfg.TbGRoleBaseAttribute(loader.load("tbgrolebaseattribute")); _tbgonhookmaps = new cfg.TbGOnHookMaps(loader.load("tbgonhookmaps")); _tbgonhookmap1 = new cfg.TbGOnHookMap1(loader.load("tbgonhookmap1")); + _tbbattleresource = new cfg.TbBattleResource(loader.load("tbbattleresource")); } } diff --git a/JisolGameServer/Main/src/main/java/cfg/TbBattleResource.java b/JisolGameServer/Main/src/main/java/cfg/TbBattleResource.java new file mode 100644 index 00000000..ebbbb56a --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cfg/TbBattleResource.java @@ -0,0 +1,37 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg; + +import luban.*; +import com.google.gson.JsonElement; + + +public final class TbBattleResource { + private final java.util.HashMap _dataMap; + private final java.util.ArrayList _dataList; + + public TbBattleResource(JsonElement _buf) { + _dataMap = new java.util.HashMap(); + _dataList = new java.util.ArrayList(); + + for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) { + cfg.TB.TbBattleResource _v; + _v = cfg.TB.TbBattleResource.deserialize(_e_.getAsJsonObject()); + _dataList.add(_v); + _dataMap.put(_v.id, _v); + } + } + + public java.util.HashMap getDataMap() { return _dataMap; } + public java.util.ArrayList getDataList() { return _dataList; } + + public cfg.TB.TbBattleResource get(int key) { return _dataMap.get(key); } + +} diff --git a/JisolGameServer/Main/src/main/resources/json/tbbattleresource.json b/JisolGameServer/Main/src/main/resources/json/tbbattleresource.json new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/JisolGameServer/Main/src/main/resources/json/tbbattleresource.json @@ -0,0 +1 @@ +[] \ No newline at end of file