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.
@@ -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,EAAe,MAAM,kBAAkB,CAAA;AAMlI,wBAAgB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA6CnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA2CzE;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
+ {"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 = function (str) {
30
- return str.charAt(0).toUpperCase() + str.slice(1);
31
- };
32
- function exportUJson(paras) {
33
- let { datas, fields, name, objects, table, } = paras;
34
- let firstLetterLower = function (str) {
35
- return str.charAt(0).toLowerCase() + str.slice(1);
36
- };
37
- let convMemberName = function (str) {
38
- return str.split("_").map(s => firstLetterUpper(s)).join("");
39
- };
40
- var fullName = `${table.workbookName}-${name}`;
41
- let jsonString = JSON.stringify(objects.map(obj => {
42
- var newObj = Object.create(null);
43
- Object.keys(obj).forEach(key => {
44
- var newKey = convMemberName(key);
45
- newObj[newKey] = obj[key];
46
- });
47
- return newObj;
48
- }));
49
- // !!!必须开头没有空格
50
- let temp = `%YAML 1.1
51
- %TAG !u! tag:unity3d.com,2011:
52
- --- !u!114 &11400000
53
- MonoBehaviour:
54
- m_ObjectHideFlags: 0
55
- m_CorrespondingSourceObject: {fileID: 0}
56
- m_PrefabInstance: {fileID: 0}
57
- m_PrefabAsset: {fileID: 0}
58
- m_GameObject: {fileID: 0}
59
- m_Enabled: 1
60
- m_EditorHideFlags: 0
61
- m_Script: {fileID: 11500000, guid: 496f60086c072a8479a6e0b948efb5e8, type: 3}
62
- m_Name: ${fullName}
63
- m_EditorClassIdentifier:
64
- JsonText: ${JSON.stringify(jsonString)}
65
- `;
66
- return temp;
67
- }
68
- exports.exportUJson = exportUJson;
69
- function exportUJsonLoader(paras) {
70
- let { datas, fields, name, objects, table, } = paras;
71
- let RowClass = firstLetterUpper(name);
72
- var fullName = `${table.workbookName}-${name}`;
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
- public partial class ${RowClass}
83
- {
84
- public static async Task Load()
85
- {
86
- var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.asset";
87
- var configJson = await Addressables.LoadAssetAsync<ExcelConfigJson>(loadUrl).Task;
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.JsonText);
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
- else
96
- {
97
- Debug.LogError($"配表资源缺失: {loadUrl}");
98
- }
99
- }
100
- }
101
- }
102
- `;
103
- return temp;
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
- exports.exportUJsonLoader = exportUJsonLoader;
106
- class ExportUJsonPlugin extends export_table_lib_1.PluginBase {
107
- constructor() {
108
- super(...arguments);
109
- this.name = "ujson";
110
- this.tags = ["ujson"];
111
- }
112
- handleSheet(paras) {
113
- var fullName = `${paras.table.workbookName}-${paras.name}`;
114
- {
115
- let content1 = exportUJsonLoader(paras);
116
- if (content1 != null) {
117
- let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, "Loader.cs").fullPath;
118
- fs.outputFileSync(savePath, content1, "utf-8");
119
- }
120
- }
121
- {
122
- let content2 = exportUJson(paras);
123
- if (content2 != null) {
124
- let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, ".asset").fullPath;
125
- fs.outputFileSync(savePath, content2, "utf-8");
126
- }
127
- return content2;
128
- }
129
- }
130
- handleBatch(paras) {
131
- var tables = paras.tables;
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,6 +1,6 @@
1
1
  {
2
2
  "name": "export-table-pulgin-csharp",
3
- "version": "1.0.66",
3
+ "version": "1.1.66",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -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 = function (str: string) {
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
- 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
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
- public partial class ${RowClass}
76
- {
77
- public static async Task Load()
78
- {
79
- var loadUrl="Assets/Bundles/GameConfigs/Auto/${fullName}.asset";
80
- var configJson = await Addressables.LoadAssetAsync<ExcelConfigJson>(loadUrl).Task;
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.JsonText);
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
- else
89
- {
90
- Debug.LogError($"配表资源缺失: {loadUrl}");
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, ".asset").fullPath
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
+ }
@@ -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 %*