123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2", "__unresolved_3", "__unresolved_4", "__unresolved_5"], function (_export, _context) {
- "use strict";
- var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _decorator, error, TextAsset, CsvParser, Constants, Logger, Singleton, bundleMgr, _dec, _class, _crd, ccclass, property, CsvManager, csvMgr;
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
- function _reportPossibleCrUseOfCsvParser(extras) {
- _reporterNs.report("CsvParser", "./CsvParser", _context.meta, extras);
- }
- function _reportPossibleCrUseOfConstants(extras) {
- _reporterNs.report("Constants", "../../data/Constants", _context.meta, extras);
- }
- function _reportPossibleCrUseOfLogger(extras) {
- _reporterNs.report("Logger", "../../extend/Logger", _context.meta, extras);
- }
- function _reportPossibleCrUseOfSingleton(extras) {
- _reporterNs.report("Singleton", "../manager/Singleton", _context.meta, extras);
- }
- function _reportPossibleCrUseOfbundleMgr(extras) {
- _reporterNs.report("bundleMgr", "../manager/BundleManager", _context.meta, extras);
- }
- return {
- setters: [function (_unresolved_) {
- _reporterNs = _unresolved_;
- }, function (_cc) {
- _cclegacy = _cc.cclegacy;
- __checkObsolete__ = _cc.__checkObsolete__;
- __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
- _decorator = _cc._decorator;
- error = _cc.error;
- TextAsset = _cc.TextAsset;
- }, function (_unresolved_2) {
- CsvParser = _unresolved_2.CsvParser;
- }, function (_unresolved_3) {
- Constants = _unresolved_3.Constants;
- }, function (_unresolved_4) {
- Logger = _unresolved_4.Logger;
- }, function (_unresolved_5) {
- Singleton = _unresolved_5.Singleton;
- }, function (_unresolved_6) {
- bundleMgr = _unresolved_6.bundleMgr;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "d5fb9D+44ZAy5iHguyBG4yt", "CsvManager", undefined);
- __checkObsolete__(['_decorator', 'error', 'TextAsset']);
- ({
- ccclass,
- property
- } = _decorator); //wws
- CsvManager = (_dec = ccclass('CsvManager'), _dec(_class = class CsvManager extends (_crd && Singleton === void 0 ? (_reportPossibleCrUseOfSingleton({
- error: Error()
- }), Singleton) : Singleton) {
- constructor() {
- super(...arguments);
- // 表格所在的目录
- this._directory = 'csv';
- // 表格解析器单例
- this._parser = new (_crd && CsvParser === void 0 ? (_reportPossibleCrUseOfCsvParser({
- error: Error()
- }), CsvParser) : CsvParser)();
- }
- /*调用事例 加载所有CSV表
- await csvMgr.loadAll(
- (finished, total) => {
- Logger.log(`加载进度: ${finished}/${total}`);
- },
- (isAllFinished, tableName, data) => {
- Logger.log(`CSV加载完成`+ tableName);
- }
- );
- //获取表数据(异步)
- let levels = csvMgr.getTable("levels")
- Logger.log("物品表数据:", JSON.stringify(levels));
- //获取表数据 (异步)
- csvMgr.getTable("item").then(table => {
- Logger.log("物品表数据:", table);
- });*/
- /**
- * 加载所有CSV配置表
- * @param onProgress @param onProgress 进度回调 (isAllFinished: 是否全部完成, tableName: 表名, data: 表数据)
- * @returns 当所有表加载完成或出错时resolve/reject
- */
- loadAll(onProgress) {
- var _this = this;
- return _asyncToGenerator(function* () {
- try {
- var bundle = yield (_crd && bundleMgr === void 0 ? (_reportPossibleCrUseOfbundleMgr({
- error: Error()
- }), bundleMgr) : bundleMgr).getBundle((_crd && Constants === void 0 ? (_reportPossibleCrUseOfConstants({
- error: Error()
- }), Constants) : Constants).bundleName.data); //1. 获取目录下所有CSV文件列表(不实际加载资源)
- var fileList = bundle.getDirWithPath(_this._directory);
- if (fileList.length === 0) {
- (_crd && Logger === void 0 ? (_reportPossibleCrUseOfLogger({
- error: Error()
- }), Logger) : Logger).warn("\u76EE\u5F55 " + _this._directory + " \u4E0B\u672A\u627E\u5230CSV\u6587\u4EF6");
- return;
- }
- var _total = fileList.length;
- var loadedCount = 0; //2. 逐个加载文件
- for (var file of fileList) {
- var asset = yield _this._loadSingleTable(file.path); //解析数据并缓存
- var _data = _this._parser.addTable(asset.name, asset.text); //更新进度和回调
- loadedCount++;
- var _tableName = file.path.split('/').pop();
- onProgress == null || onProgress(loadedCount == _total, loadedCount, _total, _tableName, _data);
- }
- } catch (err) {
- error('加载CSV表过程中发生错误:', err);
- throw err; // 重新抛出错误,让调用方可以捕获
- }
- })();
- }
- /**
- * 加载单个CSV表
- * @param path 表路径
- * @returns Promise<TextAsset> 加载成功的TextAsset
- * @private
- */
- _loadSingleTable(path) {
- return _asyncToGenerator(function* () {
- var bundle = yield (_crd && bundleMgr === void 0 ? (_reportPossibleCrUseOfbundleMgr({
- error: Error()
- }), bundleMgr) : bundleMgr).getBundle((_crd && Constants === void 0 ? (_reportPossibleCrUseOfConstants({
- error: Error()
- }), Constants) : Constants).bundleName.data);
- return new Promise((resolve, reject) => {
- bundle.load(path, TextAsset, (err, asset) => {
- if (err || !asset) {
- reject(err || new Error("\u52A0\u8F7D\u8D44\u6E90 " + path + " \u5931\u8D25"));
- } else {
- resolve(asset);
- }
- });
- });
- })();
- }
- /**
- * 调用事例 csvMgr.getTableArr('weapon');
- * 异步获取表数据(如果表未加载会自动加载)
- * @param tableName 表名
- * @returns Promise<T[]> 表数据数组
- */
- getTableArr(tableName) {
- return this._parser.getTableArr(tableName);
- }
- /**调用事例 csvMgr.findOne('weapon', w => w.quality === 'epic')
- * 查询单条记录
- * @param tableName 表名
- * @param predicate 查询条件函数
- * @returns 匹配的第一条记录或undefined
- */
- findOne(tableName, predicate) {
- return this.getTableArr(tableName).find(predicate);
- }
- /**
- * 查询多条记录
- * @param tableName 表名
- * @param predicate 查询条件函数
- * @returns 匹配的所有记录数组
- */
- findMany(tableName, predicate) {
- return this.getTableArr(tableName).filter(predicate);
- }
- }) || _class); //全局单例
- _export("csvMgr", csvMgr = CsvManager.ins());
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=9b79ff9bd223c8d33a684b187de331b9f0fcdc0c.js.map
|