export-table-pulgin-csharp 1.0.66 → 1.1.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ExportUnityCSJsonPlugin.d.ts.map +1 -1
- package/dist/ExportUnityCSJsonPlugin.js +160 -124
- package/dist/ExportUnityCSJsonPluginV1.d.ts +8 -0
- package/dist/ExportUnityCSJsonPluginV1.d.ts.map +1 -0
- package/dist/ExportUnityCSJsonPluginV1.js +149 -0
- package/package.json +1 -1
- package/src/ExportUnityCSJsonPlugin.ts +75 -38
- package/src/ExportUnityCSJsonPluginV1.ts +143 -0
- package/test/testCS.bat +1 -0
- package/test/testUJson.bat +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportUnityCSJsonPlugin.d.ts","sourceRoot":"","sources":["../src/ExportUnityCSJsonPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,iBAAiB,EAA+B,UAAU,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ExportUnityCSJsonPlugin.d.ts","sourceRoot":"","sources":["../src/ExportUnityCSJsonPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,iBAAiB,EAA+B,UAAU,EAAE,iBAAiB,EAAqC,MAAM,kBAAkB,CAAA;AAIxJ,wBAAgB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA+CnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAgFzE;AAED,qBAAa,iBAAkB,SAAQ,UAAU;IAChD,IAAI,SAAU;IACd,IAAI,EAAE,MAAM,EAAE,CAAY;IAE1B,WAAW,CAAC,KAAK,EAAE,iBAAiB;IAmBpC,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAsB3C"}
|
|
@@ -1,134 +1,170 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.ExportUJsonPlugin = exports.exportUJsonLoader = exports.exportUJson = void 0;
|
|
27
|
-
const export_table_lib_1 = require("export-table-lib");
|
|
28
|
-
const fs = __importStar(require("fs-extra"));
|
|
29
|
-
let firstLetterUpper =
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
let
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
// !!!必须开头没有空格
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ExportUJsonPlugin = exports.exportUJsonLoader = exports.exportUJson = void 0;
|
|
27
|
+
const export_table_lib_1 = require("export-table-lib");
|
|
28
|
+
const fs = __importStar(require("fs-extra"));
|
|
29
|
+
let firstLetterUpper = export_table_lib_1.makeFirstLetterUpper;
|
|
30
|
+
function exportUJson(paras) {
|
|
31
|
+
let { datas, fields, name, objects, table, } = paras;
|
|
32
|
+
let firstLetterLower = function (str) {
|
|
33
|
+
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
34
|
+
};
|
|
35
|
+
let convMemberName = function (str) {
|
|
36
|
+
return str.split("_").map(s => firstLetterUpper(s)).join("");
|
|
37
|
+
};
|
|
38
|
+
var fullName = `${table.workbookName}-${name}`;
|
|
39
|
+
let jsonString = JSON.stringify(objects.map(obj => {
|
|
40
|
+
var newObj = Object.create(null);
|
|
41
|
+
Object.keys(obj).forEach(key => {
|
|
42
|
+
var newKey = convMemberName(key);
|
|
43
|
+
newObj[newKey] = obj[key];
|
|
44
|
+
});
|
|
45
|
+
return newObj;
|
|
46
|
+
}));
|
|
47
|
+
return jsonString;
|
|
48
|
+
// // !!!必须开头没有空格
|
|
49
|
+
// let temp = `%YAML 1.1
|
|
50
|
+
// %TAG !u! tag:unity3d.com,2011:
|
|
51
|
+
// --- !u!114 &11400000
|
|
52
|
+
// MonoBehaviour:
|
|
53
|
+
// m_ObjectHideFlags: 0
|
|
54
|
+
// m_CorrespondingSourceObject: {fileID: 0}
|
|
55
|
+
// m_PrefabInstance: {fileID: 0}
|
|
56
|
+
// m_PrefabAsset: {fileID: 0}
|
|
57
|
+
// m_GameObject: {fileID: 0}
|
|
58
|
+
// m_Enabled: 1
|
|
59
|
+
// m_EditorHideFlags: 0
|
|
60
|
+
// m_Script: {fileID: 11500000, guid: 496f60086c072a8479a6e0b948efb5e8, type: 3}
|
|
61
|
+
// m_Name: ${fullName}
|
|
62
|
+
// m_EditorClassIdentifier:
|
|
63
|
+
// JsonText: ${JSON.stringify(jsonString)}
|
|
64
|
+
// `
|
|
65
|
+
// return temp
|
|
66
|
+
}
|
|
67
|
+
exports.exportUJson = exportUJson;
|
|
68
|
+
function exportUJsonLoader(paras) {
|
|
69
|
+
let { datas, fields, name, objects, table, } = paras;
|
|
70
|
+
let RowClass = firstLetterUpper(name);
|
|
71
|
+
var fullName = `${table.workbookName}-${name}`;
|
|
72
|
+
// !!!必须开头没有空格
|
|
74
73
|
let temp = `
|
|
75
|
-
using lang.json;
|
|
76
74
|
using UnityEngine.AddressableAssets;
|
|
77
75
|
using System.Threading.Tasks;
|
|
78
76
|
using UnityEngine;
|
|
77
|
+
using lang.json;
|
|
79
78
|
|
|
80
79
|
namespace MEEC.ExportedConfigs
|
|
81
80
|
{
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
81
|
+
public partial class ${RowClass}
|
|
82
|
+
{
|
|
83
|
+
#if UNITY_EDITOR && ENABLE_CONFIG_LOG
|
|
84
|
+
static ${RowClass}()
|
|
85
|
+
{
|
|
86
|
+
Debug.Log("ReferConfig-${RowClass}");
|
|
87
|
+
}
|
|
88
|
+
#endif
|
|
89
|
+
public static async Task Load()
|
|
90
|
+
{
|
|
91
|
+
var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.json";
|
|
92
|
+
var configJson =
|
|
93
|
+
#if UNITY_EDITOR
|
|
94
|
+
Application.isPlaying ? await Addressables.LoadAssetAsync<TextAsset>(loadUrl).Task
|
|
95
|
+
: UnityEditor.AssetDatabase.LoadAssetAtPath<TextAsset>(loadUrl);
|
|
96
|
+
#else
|
|
97
|
+
await Addressables.LoadAssetAsync<TextAsset>(loadUrl).Task;
|
|
98
|
+
#endif
|
|
88
99
|
if (configJson != null)
|
|
89
|
-
|
|
90
|
-
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.
|
|
100
|
+
{
|
|
101
|
+
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.text);
|
|
91
102
|
var configs = ${RowClass}.Configs;
|
|
92
103
|
configs.Clear();
|
|
93
104
|
configs.AddRange(jsonObjs);
|
|
94
105
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
106
|
+
else
|
|
107
|
+
{
|
|
108
|
+
Debug.LogError($"配表资源缺失: {loadUrl}");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
#if UNITY_EDITOR
|
|
113
|
+
public static void LoadInEditor()
|
|
114
|
+
{
|
|
115
|
+
if (Application.isPlaying)
|
|
116
|
+
{
|
|
117
|
+
var tip = $"cannot load ${RowClass}[] with LoadInEditor at runtime";
|
|
118
|
+
Debug.LogError(tip);
|
|
119
|
+
throw new System.Exception(tip);
|
|
120
|
+
}
|
|
121
|
+
var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.json";
|
|
122
|
+
var configJson = UnityEditor.AssetDatabase.LoadAssetAtPath<TextAsset>(loadUrl);
|
|
123
|
+
if (configJson != null)
|
|
124
|
+
{
|
|
125
|
+
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.text);
|
|
126
|
+
var configs = ${RowClass}.Configs;
|
|
127
|
+
configs.Clear();
|
|
128
|
+
configs.AddRange(jsonObjs);
|
|
129
|
+
}
|
|
130
|
+
else
|
|
131
|
+
{
|
|
132
|
+
Debug.LogError($"配表资源缺失: {loadUrl}");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
#endif
|
|
136
|
+
}
|
|
104
137
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
`;
|
|
139
|
+
return temp;
|
|
140
|
+
}
|
|
141
|
+
exports.exportUJsonLoader = exportUJsonLoader;
|
|
142
|
+
class ExportUJsonPlugin extends export_table_lib_1.PluginBase {
|
|
143
|
+
constructor() {
|
|
144
|
+
super(...arguments);
|
|
145
|
+
this.name = "ujson";
|
|
146
|
+
this.tags = ["ujson"];
|
|
147
|
+
}
|
|
148
|
+
handleSheet(paras) {
|
|
149
|
+
var fullName = `${paras.table.workbookName}-${paras.name}`;
|
|
150
|
+
{
|
|
151
|
+
let content1 = exportUJsonLoader(paras);
|
|
152
|
+
if (content1 != null) {
|
|
153
|
+
let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, "Loader.cs").fullPath;
|
|
154
|
+
fs.outputFileSync(savePath, content1, "utf-8");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
{
|
|
158
|
+
let content2 = exportUJson(paras);
|
|
159
|
+
if (content2 != null) {
|
|
160
|
+
let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, ".json").fullPath;
|
|
161
|
+
fs.outputFileSync(savePath, content2, "utf-8");
|
|
162
|
+
}
|
|
163
|
+
return content2;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
handleBatch(paras) {
|
|
167
|
+
var tables = paras.tables;
|
|
132
168
|
var temp = `
|
|
133
169
|
using System;
|
|
134
170
|
using System.Collections.Generic;
|
|
@@ -145,9 +181,9 @@ ${(0, export_table_lib_1.foreach)(tables, (table) => `
|
|
|
145
181
|
}
|
|
146
182
|
}
|
|
147
183
|
}
|
|
148
|
-
`;
|
|
149
|
-
let savePath = paras.outPath + "/DefaultConfigLoader.cs";
|
|
150
|
-
fs.outputFileSync(savePath, temp, "utf-8");
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
exports.ExportUJsonPlugin = ExportUJsonPlugin;
|
|
184
|
+
`;
|
|
185
|
+
let savePath = paras.outPath + "/DefaultConfigLoader.cs";
|
|
186
|
+
fs.outputFileSync(savePath, temp, "utf-8");
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.ExportUJsonPlugin = ExportUJsonPlugin;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HandleSheetParams, PluginBase, HandleBatchParams } from "export-table-lib";
|
|
2
|
+
export declare class ExportUJsonPluginV1 extends PluginBase {
|
|
3
|
+
name: string;
|
|
4
|
+
tags: string[];
|
|
5
|
+
handleSheet(paras: HandleSheetParams): string | null;
|
|
6
|
+
handleBatch(paras: HandleBatchParams): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=ExportUnityCSJsonPluginV1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExportUnityCSJsonPluginV1.d.ts","sourceRoot":"","sources":["../src/ExportUnityCSJsonPluginV1.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,iBAAiB,EAA+B,UAAU,EAAE,iBAAiB,EAAqC,MAAM,kBAAkB,CAAA;AAgGxJ,qBAAa,mBAAoB,SAAQ,UAAU;IAClD,IAAI,SAAW;IACf,IAAI,EAAE,MAAM,EAAE,CAAa;IAE3B,WAAW,CAAC,KAAK,EAAE,iBAAiB;IAmBpC,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAsB3C"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ExportUJsonPluginV1 = void 0;
|
|
27
|
+
const export_table_lib_1 = require("export-table-lib");
|
|
28
|
+
const fs = __importStar(require("fs-extra"));
|
|
29
|
+
let firstLetterUpper = export_table_lib_1.makeFirstLetterUpper;
|
|
30
|
+
function exportUJson(paras) {
|
|
31
|
+
let { datas, fields, name, objects, table, } = paras;
|
|
32
|
+
let firstLetterLower = function (str) {
|
|
33
|
+
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
34
|
+
};
|
|
35
|
+
let convMemberName = function (str) {
|
|
36
|
+
return str.split("_").map(s => firstLetterUpper(s)).join("");
|
|
37
|
+
};
|
|
38
|
+
var fullName = `${table.workbookName}-${name}`;
|
|
39
|
+
let jsonString = JSON.stringify(objects.map(obj => {
|
|
40
|
+
var newObj = Object.create(null);
|
|
41
|
+
Object.keys(obj).forEach(key => {
|
|
42
|
+
var newKey = convMemberName(key);
|
|
43
|
+
newObj[newKey] = obj[key];
|
|
44
|
+
});
|
|
45
|
+
return newObj;
|
|
46
|
+
}));
|
|
47
|
+
// !!!必须开头没有空格
|
|
48
|
+
let temp = `%YAML 1.1
|
|
49
|
+
%TAG !u! tag:unity3d.com,2011:
|
|
50
|
+
--- !u!114 &11400000
|
|
51
|
+
MonoBehaviour:
|
|
52
|
+
m_ObjectHideFlags: 0
|
|
53
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
54
|
+
m_PrefabInstance: {fileID: 0}
|
|
55
|
+
m_PrefabAsset: {fileID: 0}
|
|
56
|
+
m_GameObject: {fileID: 0}
|
|
57
|
+
m_Enabled: 1
|
|
58
|
+
m_EditorHideFlags: 0
|
|
59
|
+
m_Script: {fileID: 11500000, guid: 496f60086c072a8479a6e0b948efb5e8, type: 3}
|
|
60
|
+
m_Name: ${fullName}
|
|
61
|
+
m_EditorClassIdentifier:
|
|
62
|
+
JsonText: ${JSON.stringify(jsonString)}
|
|
63
|
+
`;
|
|
64
|
+
return temp;
|
|
65
|
+
}
|
|
66
|
+
function exportUJsonLoader(paras) {
|
|
67
|
+
let { datas, fields, name, objects, table, } = paras;
|
|
68
|
+
let RowClass = firstLetterUpper(name);
|
|
69
|
+
var fullName = `${table.workbookName}-${name}`;
|
|
70
|
+
// !!!必须开头没有空格
|
|
71
|
+
let temp = `
|
|
72
|
+
using lang.json;
|
|
73
|
+
using UnityEngine.AddressableAssets;
|
|
74
|
+
using System.Threading.Tasks;
|
|
75
|
+
using UnityEngine;
|
|
76
|
+
|
|
77
|
+
namespace MEEC.ExportedConfigs
|
|
78
|
+
{
|
|
79
|
+
public partial class ${RowClass}
|
|
80
|
+
{
|
|
81
|
+
public static async Task Load()
|
|
82
|
+
{
|
|
83
|
+
var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.asset";
|
|
84
|
+
var configJson = await Addressables.LoadAssetAsync<ExcelConfigJson>(loadUrl).Task;
|
|
85
|
+
if (configJson != null)
|
|
86
|
+
{
|
|
87
|
+
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.JsonText);
|
|
88
|
+
var configs = ${RowClass}.Configs;
|
|
89
|
+
configs.Clear();
|
|
90
|
+
configs.AddRange(jsonObjs);
|
|
91
|
+
}
|
|
92
|
+
else
|
|
93
|
+
{
|
|
94
|
+
Debug.LogError($"配表资源缺失: {loadUrl}");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
`;
|
|
100
|
+
return temp;
|
|
101
|
+
}
|
|
102
|
+
class ExportUJsonPluginV1 extends export_table_lib_1.PluginBase {
|
|
103
|
+
constructor() {
|
|
104
|
+
super(...arguments);
|
|
105
|
+
this.name = "ujson1";
|
|
106
|
+
this.tags = ["ujson1"];
|
|
107
|
+
}
|
|
108
|
+
handleSheet(paras) {
|
|
109
|
+
var fullName = `${paras.table.workbookName}-${paras.name}`;
|
|
110
|
+
{
|
|
111
|
+
let content1 = exportUJsonLoader(paras);
|
|
112
|
+
if (content1 != null) {
|
|
113
|
+
let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, "Loader.cs").fullPath;
|
|
114
|
+
fs.outputFileSync(savePath, content1, "utf-8");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
{
|
|
118
|
+
let content2 = exportUJson(paras);
|
|
119
|
+
if (content2 != null) {
|
|
120
|
+
let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, ".asset").fullPath;
|
|
121
|
+
fs.outputFileSync(savePath, content2, "utf-8");
|
|
122
|
+
}
|
|
123
|
+
return content2;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
handleBatch(paras) {
|
|
127
|
+
var tables = paras.tables;
|
|
128
|
+
var temp = `
|
|
129
|
+
using System;
|
|
130
|
+
using System.Collections.Generic;
|
|
131
|
+
using System.Threading.Tasks;
|
|
132
|
+
|
|
133
|
+
namespace MEEC.ExportedConfigs
|
|
134
|
+
{
|
|
135
|
+
public static class DefaultConfigLoader{
|
|
136
|
+
public static IEnumerable<Func<Task>> Load(){
|
|
137
|
+
${(0, export_table_lib_1.foreach)(tables, (table) => `
|
|
138
|
+
yield return ${firstLetterUpper(table.name)}.Load;
|
|
139
|
+
`)}
|
|
140
|
+
yield break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
`;
|
|
145
|
+
let savePath = paras.outPath + "/DefaultConfigLoader.cs";
|
|
146
|
+
fs.outputFileSync(savePath, temp, "utf-8");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.ExportUJsonPluginV1 = ExportUJsonPluginV1;
|
package/package.json
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmm, HandleSheetParams, Field, foreach, IPlugin, st, PluginBase, HandleBatchParams, OutFilePath } from "export-table-lib"
|
|
2
|
+
import { cmm, HandleSheetParams, Field, foreach, IPlugin, st, PluginBase, HandleBatchParams, OutFilePath, makeFirstLetterUpper } from "export-table-lib"
|
|
3
3
|
import * as fs from "fs-extra"
|
|
4
4
|
|
|
5
|
-
let firstLetterUpper =
|
|
6
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
7
|
-
};
|
|
5
|
+
let firstLetterUpper = makeFirstLetterUpper;
|
|
8
6
|
export function exportUJson(paras: HandleSheetParams): string | null {
|
|
9
7
|
let {
|
|
10
8
|
datas,
|
|
@@ -31,24 +29,26 @@ export function exportUJson(paras: HandleSheetParams): string | null {
|
|
|
31
29
|
return newObj
|
|
32
30
|
}));
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
32
|
+
return jsonString;
|
|
33
|
+
|
|
34
|
+
// // !!!必须开头没有空格
|
|
35
|
+
// let temp = `%YAML 1.1
|
|
36
|
+
// %TAG !u! tag:unity3d.com,2011:
|
|
37
|
+
// --- !u!114 &11400000
|
|
38
|
+
// MonoBehaviour:
|
|
39
|
+
// m_ObjectHideFlags: 0
|
|
40
|
+
// m_CorrespondingSourceObject: {fileID: 0}
|
|
41
|
+
// m_PrefabInstance: {fileID: 0}
|
|
42
|
+
// m_PrefabAsset: {fileID: 0}
|
|
43
|
+
// m_GameObject: {fileID: 0}
|
|
44
|
+
// m_Enabled: 1
|
|
45
|
+
// m_EditorHideFlags: 0
|
|
46
|
+
// m_Script: {fileID: 11500000, guid: 496f60086c072a8479a6e0b948efb5e8, type: 3}
|
|
47
|
+
// m_Name: ${fullName}
|
|
48
|
+
// m_EditorClassIdentifier:
|
|
49
|
+
// JsonText: ${JSON.stringify(jsonString)}
|
|
50
|
+
// `
|
|
51
|
+
// return temp
|
|
52
52
|
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -65,32 +65,69 @@ export function exportUJsonLoader(paras: HandleSheetParams): string | null {
|
|
|
65
65
|
var fullName = `${table.workbookName}-${name}`
|
|
66
66
|
// !!!必须开头没有空格
|
|
67
67
|
let temp = `
|
|
68
|
-
using lang.json;
|
|
69
68
|
using UnityEngine.AddressableAssets;
|
|
70
69
|
using System.Threading.Tasks;
|
|
71
70
|
using UnityEngine;
|
|
71
|
+
using lang.json;
|
|
72
72
|
|
|
73
73
|
namespace MEEC.ExportedConfigs
|
|
74
74
|
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
public partial class ${RowClass}
|
|
76
|
+
{
|
|
77
|
+
#if UNITY_EDITOR && ENABLE_CONFIG_LOG
|
|
78
|
+
static ${RowClass}()
|
|
79
|
+
{
|
|
80
|
+
Debug.Log("ReferConfig-${RowClass}");
|
|
81
|
+
}
|
|
82
|
+
#endif
|
|
83
|
+
public static async Task Load()
|
|
84
|
+
{
|
|
85
|
+
var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.json";
|
|
86
|
+
var configJson =
|
|
87
|
+
#if UNITY_EDITOR
|
|
88
|
+
Application.isPlaying ? await Addressables.LoadAssetAsync<TextAsset>(loadUrl).Task
|
|
89
|
+
: UnityEditor.AssetDatabase.LoadAssetAtPath<TextAsset>(loadUrl);
|
|
90
|
+
#else
|
|
91
|
+
await Addressables.LoadAssetAsync<TextAsset>(loadUrl).Task;
|
|
92
|
+
#endif
|
|
93
|
+
if (configJson != null)
|
|
94
|
+
{
|
|
95
|
+
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.text);
|
|
96
|
+
var configs = ${RowClass}.Configs;
|
|
97
|
+
configs.Clear();
|
|
98
|
+
configs.AddRange(jsonObjs);
|
|
99
|
+
}
|
|
100
|
+
else
|
|
101
|
+
{
|
|
102
|
+
Debug.LogError($"配表资源缺失: {loadUrl}");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
#if UNITY_EDITOR
|
|
107
|
+
public static void LoadInEditor()
|
|
108
|
+
{
|
|
109
|
+
if (Application.isPlaying)
|
|
110
|
+
{
|
|
111
|
+
var tip = $"cannot load ${RowClass}[] with LoadInEditor at runtime";
|
|
112
|
+
Debug.LogError(tip);
|
|
113
|
+
throw new System.Exception(tip);
|
|
114
|
+
}
|
|
115
|
+
var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.json";
|
|
116
|
+
var configJson = UnityEditor.AssetDatabase.LoadAssetAtPath<TextAsset>(loadUrl);
|
|
81
117
|
if (configJson != null)
|
|
82
|
-
|
|
83
|
-
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.
|
|
118
|
+
{
|
|
119
|
+
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.text);
|
|
84
120
|
var configs = ${RowClass}.Configs;
|
|
85
121
|
configs.Clear();
|
|
86
122
|
configs.AddRange(jsonObjs);
|
|
87
123
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
124
|
+
else
|
|
125
|
+
{
|
|
126
|
+
Debug.LogError($"配表资源缺失: {loadUrl}");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
#endif
|
|
130
|
+
}
|
|
94
131
|
}
|
|
95
132
|
`
|
|
96
133
|
return temp
|
|
@@ -113,7 +150,7 @@ export class ExportUJsonPlugin extends PluginBase {
|
|
|
113
150
|
{
|
|
114
151
|
let content2 = exportUJson(paras)
|
|
115
152
|
if (content2 != null) {
|
|
116
|
-
let savePath = new OutFilePath(paras.outPath, fullName, ".
|
|
153
|
+
let savePath = new OutFilePath(paras.outPath, fullName, ".json").fullPath
|
|
117
154
|
fs.outputFileSync(savePath, content2, "utf-8")
|
|
118
155
|
}
|
|
119
156
|
return content2
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
|
|
2
|
+
import { cmm, HandleSheetParams, Field, foreach, IPlugin, st, PluginBase, HandleBatchParams, OutFilePath, makeFirstLetterUpper } from "export-table-lib"
|
|
3
|
+
import * as fs from "fs-extra"
|
|
4
|
+
|
|
5
|
+
let firstLetterUpper = makeFirstLetterUpper;
|
|
6
|
+
function exportUJson(paras: HandleSheetParams): string | null {
|
|
7
|
+
let {
|
|
8
|
+
datas,
|
|
9
|
+
fields,
|
|
10
|
+
name,
|
|
11
|
+
objects,
|
|
12
|
+
table,
|
|
13
|
+
} = paras;
|
|
14
|
+
|
|
15
|
+
let firstLetterLower = function (str: string) {
|
|
16
|
+
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
17
|
+
};
|
|
18
|
+
let convMemberName = function (str: string) {
|
|
19
|
+
return str.split("_").map(s => firstLetterUpper(s)).join("")
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var fullName = `${table.workbookName}-${name}`
|
|
23
|
+
let jsonString = JSON.stringify(objects.map(obj => {
|
|
24
|
+
var newObj = Object.create(null);
|
|
25
|
+
Object.keys(obj).forEach(key => {
|
|
26
|
+
var newKey = convMemberName(key);
|
|
27
|
+
newObj[newKey] = obj[key];
|
|
28
|
+
})
|
|
29
|
+
return newObj
|
|
30
|
+
}));
|
|
31
|
+
|
|
32
|
+
// !!!必须开头没有空格
|
|
33
|
+
let temp = `%YAML 1.1
|
|
34
|
+
%TAG !u! tag:unity3d.com,2011:
|
|
35
|
+
--- !u!114 &11400000
|
|
36
|
+
MonoBehaviour:
|
|
37
|
+
m_ObjectHideFlags: 0
|
|
38
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
39
|
+
m_PrefabInstance: {fileID: 0}
|
|
40
|
+
m_PrefabAsset: {fileID: 0}
|
|
41
|
+
m_GameObject: {fileID: 0}
|
|
42
|
+
m_Enabled: 1
|
|
43
|
+
m_EditorHideFlags: 0
|
|
44
|
+
m_Script: {fileID: 11500000, guid: 496f60086c072a8479a6e0b948efb5e8, type: 3}
|
|
45
|
+
m_Name: ${fullName}
|
|
46
|
+
m_EditorClassIdentifier:
|
|
47
|
+
JsonText: ${JSON.stringify(jsonString)}
|
|
48
|
+
`
|
|
49
|
+
return temp
|
|
50
|
+
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function exportUJsonLoader(paras: HandleSheetParams): string | null {
|
|
54
|
+
let {
|
|
55
|
+
datas,
|
|
56
|
+
fields,
|
|
57
|
+
name,
|
|
58
|
+
objects,
|
|
59
|
+
table,
|
|
60
|
+
} = paras;
|
|
61
|
+
|
|
62
|
+
let RowClass = firstLetterUpper(name)
|
|
63
|
+
var fullName = `${table.workbookName}-${name}`
|
|
64
|
+
// !!!必须开头没有空格
|
|
65
|
+
let temp = `
|
|
66
|
+
using lang.json;
|
|
67
|
+
using UnityEngine.AddressableAssets;
|
|
68
|
+
using System.Threading.Tasks;
|
|
69
|
+
using UnityEngine;
|
|
70
|
+
|
|
71
|
+
namespace MEEC.ExportedConfigs
|
|
72
|
+
{
|
|
73
|
+
public partial class ${RowClass}
|
|
74
|
+
{
|
|
75
|
+
public static async Task Load()
|
|
76
|
+
{
|
|
77
|
+
var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.asset";
|
|
78
|
+
var configJson = await Addressables.LoadAssetAsync<ExcelConfigJson>(loadUrl).Task;
|
|
79
|
+
if (configJson != null)
|
|
80
|
+
{
|
|
81
|
+
var jsonObjs = JSON.parse<${RowClass}[]>(configJson.JsonText);
|
|
82
|
+
var configs = ${RowClass}.Configs;
|
|
83
|
+
configs.Clear();
|
|
84
|
+
configs.AddRange(jsonObjs);
|
|
85
|
+
}
|
|
86
|
+
else
|
|
87
|
+
{
|
|
88
|
+
Debug.LogError($"配表资源缺失: {loadUrl}");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
`
|
|
94
|
+
return temp
|
|
95
|
+
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export class ExportUJsonPluginV1 extends PluginBase {
|
|
99
|
+
name = "ujson1"
|
|
100
|
+
tags: string[] = ["ujson1"]
|
|
101
|
+
|
|
102
|
+
handleSheet(paras: HandleSheetParams) {
|
|
103
|
+
var fullName = `${paras.table.workbookName}-${paras.name}`
|
|
104
|
+
{
|
|
105
|
+
let content1 = exportUJsonLoader(paras)
|
|
106
|
+
if (content1 != null) {
|
|
107
|
+
let savePath = new OutFilePath(paras.outPath, fullName, "Loader.cs").fullPath
|
|
108
|
+
fs.outputFileSync(savePath, content1, "utf-8")
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
{
|
|
112
|
+
let content2 = exportUJson(paras)
|
|
113
|
+
if (content2 != null) {
|
|
114
|
+
let savePath = new OutFilePath(paras.outPath, fullName, ".asset").fullPath
|
|
115
|
+
fs.outputFileSync(savePath, content2, "utf-8")
|
|
116
|
+
}
|
|
117
|
+
return content2
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
handleBatch(paras: HandleBatchParams): void {
|
|
122
|
+
var tables = paras.tables;
|
|
123
|
+
var temp = `
|
|
124
|
+
using System;
|
|
125
|
+
using System.Collections.Generic;
|
|
126
|
+
using System.Threading.Tasks;
|
|
127
|
+
|
|
128
|
+
namespace MEEC.ExportedConfigs
|
|
129
|
+
{
|
|
130
|
+
public static class DefaultConfigLoader{
|
|
131
|
+
public static IEnumerable<Func<Task>> Load(){
|
|
132
|
+
${foreach(tables, (table) => `
|
|
133
|
+
yield return ${firstLetterUpper(table.name)}.Load;
|
|
134
|
+
`)}
|
|
135
|
+
yield break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
`
|
|
140
|
+
let savePath = paras.outPath + "/DefaultConfigLoader.cs";
|
|
141
|
+
fs.outputFileSync(savePath, temp, "utf-8");
|
|
142
|
+
}
|
|
143
|
+
}
|
package/test/testCS.bat
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
node E:\DATA\Projects\netease\quicktable\export-table\dist\launch.js export src dist --tags csharp:cs --libs E:\DATA\Projects\netease\quicktable %*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
node E:\DATA\Projects\netease\quicktable\export-table\dist\launch.js export src dist --tags csharp:ujson --libs E:\DATA\Projects\netease\quicktable %*
|