@chiyou/minigame-framework 1.0.0

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.
Files changed (114) hide show
  1. package/README.md +66 -0
  2. package/dist/Framework/Adapter/AdAdapter/AbsAdAdapter.d.ts +78 -0
  3. package/dist/Framework/Adapter/AdAdapter/AbsAdAdapter.js +230 -0
  4. package/dist/Framework/Adapter/AdAdapter/AdAdapterBilibili.d.ts +31 -0
  5. package/dist/Framework/Adapter/AdAdapter/AdAdapterBilibili.js +224 -0
  6. package/dist/Framework/Adapter/AdAdapter/AdAdapterDouYin.d.ts +34 -0
  7. package/dist/Framework/Adapter/AdAdapter/AdAdapterDouYin.js +524 -0
  8. package/dist/Framework/Adapter/AdAdapter/AdAdapterHonor.d.ts +34 -0
  9. package/dist/Framework/Adapter/AdAdapter/AdAdapterHonor.js +631 -0
  10. package/dist/Framework/Adapter/AdAdapter/AdAdapterHuaWei.d.ts +33 -0
  11. package/dist/Framework/Adapter/AdAdapter/AdAdapterHuaWei.js +460 -0
  12. package/dist/Framework/Adapter/AdAdapter/AdAdapterJingDong.d.ts +31 -0
  13. package/dist/Framework/Adapter/AdAdapter/AdAdapterJingDong.js +227 -0
  14. package/dist/Framework/Adapter/AdAdapter/AdAdapterKuaiShou.d.ts +33 -0
  15. package/dist/Framework/Adapter/AdAdapter/AdAdapterKuaiShou.js +458 -0
  16. package/dist/Framework/Adapter/AdAdapter/AdAdapterOppo.d.ts +35 -0
  17. package/dist/Framework/Adapter/AdAdapter/AdAdapterOppo.js +770 -0
  18. package/dist/Framework/Adapter/AdAdapter/AdAdapterTapTap.d.ts +33 -0
  19. package/dist/Framework/Adapter/AdAdapter/AdAdapterTapTap.js +519 -0
  20. package/dist/Framework/Adapter/AdAdapter/AdAdapterVivo.d.ts +33 -0
  21. package/dist/Framework/Adapter/AdAdapter/AdAdapterVivo.js +492 -0
  22. package/dist/Framework/Adapter/AdAdapter/AdAdapterWeiXin.d.ts +33 -0
  23. package/dist/Framework/Adapter/AdAdapter/AdAdapterWeiXin.js +695 -0
  24. package/dist/Framework/Adapter/AdAdapter/AdAdapterXiaoMi.d.ts +34 -0
  25. package/dist/Framework/Adapter/AdAdapter/AdAdapterXiaoMi.js +597 -0
  26. package/dist/Framework/Adapter/AdAdapter/AdAdapterZhiFuBao.d.ts +33 -0
  27. package/dist/Framework/Adapter/AdAdapter/AdAdapterZhiFuBao.js +458 -0
  28. package/dist/Framework/Adapter/PlatformAdapter/AbsPlatformAdapter.d.ts +51 -0
  29. package/dist/Framework/Adapter/PlatformAdapter/AbsPlatformAdapter.js +17 -0
  30. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterBilibili.d.ts +45 -0
  31. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterBilibili.js +555 -0
  32. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDesktopBrowser.d.ts +44 -0
  33. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDesktopBrowser.js +148 -0
  34. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDouYin.d.ts +48 -0
  35. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDouYin.js +715 -0
  36. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHonor.d.ts +44 -0
  37. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHonor.js +296 -0
  38. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHuaWei.d.ts +45 -0
  39. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHuaWei.js +284 -0
  40. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterJingDong.d.ts +44 -0
  41. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterJingDong.js +283 -0
  42. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterKuaiShou.d.ts +43 -0
  43. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterKuaiShou.js +406 -0
  44. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterOppo.d.ts +43 -0
  45. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterOppo.js +248 -0
  46. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterTapTap.d.ts +44 -0
  47. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterTapTap.js +517 -0
  48. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterVivo.d.ts +44 -0
  49. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterVivo.js +295 -0
  50. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterWeiXin.d.ts +55 -0
  51. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterWeiXin.js +964 -0
  52. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterXiaoMi.d.ts +44 -0
  53. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterXiaoMi.js +295 -0
  54. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterZhiFuBao.d.ts +44 -0
  55. package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterZhiFuBao.js +393 -0
  56. package/dist/Framework/Definition/AdDefinition.d.ts +130 -0
  57. package/dist/Framework/Definition/AdDefinition.js +208 -0
  58. package/dist/Framework/Definition/FrameworkBase.d.ts +13 -0
  59. package/dist/Framework/Definition/FrameworkBase.js +23 -0
  60. package/dist/Framework/Definition/PrivacyDefinition.d.ts +51 -0
  61. package/dist/Framework/Definition/PrivacyDefinition.js +70 -0
  62. package/dist/Framework/Definition/SocialDefinition.d.ts +16 -0
  63. package/dist/Framework/Definition/SocialDefinition.js +2 -0
  64. package/dist/Framework/Definition/SystemDefinition.d.ts +43 -0
  65. package/dist/Framework/Definition/SystemDefinition.js +28 -0
  66. package/dist/Framework/Definition/UIDefinition.d.ts +6 -0
  67. package/dist/Framework/Definition/UIDefinition.js +7 -0
  68. package/dist/Framework/Definition/UserDefinition.d.ts +14 -0
  69. package/dist/Framework/Definition/UserDefinition.js +10 -0
  70. package/dist/Framework/Manager/AdMgr.d.ts +57 -0
  71. package/dist/Framework/Manager/AdMgr.js +684 -0
  72. package/dist/Framework/Manager/AudioMgr.d.ts +28 -0
  73. package/dist/Framework/Manager/AudioMgr.js +265 -0
  74. package/dist/Framework/Manager/BaseMgr.d.ts +18 -0
  75. package/dist/Framework/Manager/BaseMgr.js +114 -0
  76. package/dist/Framework/Manager/EventMgr.d.ts +18 -0
  77. package/dist/Framework/Manager/EventMgr.js +90 -0
  78. package/dist/Framework/Manager/ExcelMgr.d.ts +24 -0
  79. package/dist/Framework/Manager/ExcelMgr.js +156 -0
  80. package/dist/Framework/Manager/LifeCycleMgr.d.ts +20 -0
  81. package/dist/Framework/Manager/LifeCycleMgr.js +110 -0
  82. package/dist/Framework/Manager/NodePoolMgr.d.ts +53 -0
  83. package/dist/Framework/Manager/NodePoolMgr.js +279 -0
  84. package/dist/Framework/Manager/PrivacyMgr.d.ts +15 -0
  85. package/dist/Framework/Manager/PrivacyMgr.js +176 -0
  86. package/dist/Framework/Manager/ResMgr.d.ts +49 -0
  87. package/dist/Framework/Manager/ResMgr.js +337 -0
  88. package/dist/Framework/Manager/SocialMgr.d.ts +23 -0
  89. package/dist/Framework/Manager/SocialMgr.js +220 -0
  90. package/dist/Framework/Manager/SystemMgr.d.ts +24 -0
  91. package/dist/Framework/Manager/SystemMgr.js +222 -0
  92. package/dist/Framework/Manager/TimerMgr.d.ts +11 -0
  93. package/dist/Framework/Manager/TimerMgr.js +63 -0
  94. package/dist/Framework/Manager/UIMgr.d.ts +33 -0
  95. package/dist/Framework/Manager/UIMgr.js +223 -0
  96. package/dist/Framework/Manager/UserMgr.d.ts +15 -0
  97. package/dist/Framework/Manager/UserMgr.js +148 -0
  98. package/dist/Framework/Utils/BezierUtils.d.ts +49 -0
  99. package/dist/Framework/Utils/BezierUtils.js +247 -0
  100. package/dist/Framework/Utils/CSVUtils.d.ts +35 -0
  101. package/dist/Framework/Utils/CSVUtils.js +341 -0
  102. package/dist/Framework/Utils/LogUtils.d.ts +7 -0
  103. package/dist/Framework/Utils/LogUtils.js +32 -0
  104. package/dist/Framework/Utils/NumberUtils.d.ts +16 -0
  105. package/dist/Framework/Utils/NumberUtils.js +44 -0
  106. package/dist/Framework/Utils/TaskUtils.d.ts +10 -0
  107. package/dist/Framework/Utils/TaskUtils.js +24 -0
  108. package/dist/Framework/Utils/TimeUtils.d.ts +19 -0
  109. package/dist/Framework/Utils/TimeUtils.js +33 -0
  110. package/dist/Framework/Utils/WXBizDataCryptUtils.d.ts +12 -0
  111. package/dist/Framework/Utils/WXBizDataCryptUtils.js +37 -0
  112. package/dist/index.d.ts +30 -0
  113. package/dist/index.js +35 -0
  114. package/package.json +40 -0
@@ -0,0 +1,156 @@
1
+ import CSV from '../Utils/CSVUtils';
2
+ import { LogUtils } from '../Utils/LogUtils';
3
+ import { BaseMgr } from './BaseMgr';
4
+ export class ExcelMgr extends BaseMgr {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.loadCallback = null;
8
+ this.cntLoad = 0;
9
+ this.curLoad = 0;
10
+ this.csvTablesLoaded = {};
11
+ this.csvTables = {};
12
+ this.csvTableForArr = {};
13
+ this.tableCast = {};
14
+ this.tableComment = {};
15
+ }
16
+ onLoad() {
17
+ super.onLoad();
18
+ if (ExcelMgr.Instance === null) {
19
+ ExcelMgr.Instance = this;
20
+ }
21
+ else {
22
+ this.destroy();
23
+ return;
24
+ }
25
+ }
26
+ init() {
27
+ LogUtils.Instance.log(ExcelMgr.TAG, "init() finished.");
28
+ }
29
+ addTable(tableName, tableContent, force) {
30
+ if (this.csvTables[tableName] && !force) {
31
+ return;
32
+ }
33
+ var tableData = {};
34
+ var tableArr = [];
35
+ var opts = { header: true };
36
+ CSV.parse(tableContent, opts, function (row, keyname) {
37
+ tableData[row[keyname]] = row;
38
+ tableArr.push(row);
39
+ });
40
+ this.tableCast[tableName] = CSV.opts.cast;
41
+ this.tableComment[tableName] = CSV.opts.comment;
42
+ this.csvTables[tableName] = tableData;
43
+ this.csvTableForArr[tableName] = tableArr;
44
+ }
45
+ getTableArr(tableName) {
46
+ return this.csvTableForArr[tableName];
47
+ }
48
+ getTable(tableName) {
49
+ return this.csvTables[tableName];
50
+ }
51
+ queryOne(tableName, key, value) {
52
+ var table = this.getTable(tableName);
53
+ if (!table) {
54
+ return null;
55
+ }
56
+ if (key) {
57
+ for (var tbItem in table) {
58
+ if (!table.hasOwnProperty(tbItem)) {
59
+ continue;
60
+ }
61
+ if (table[tbItem][key] === value) {
62
+ return table[tbItem];
63
+ }
64
+ }
65
+ }
66
+ else {
67
+ return table[value];
68
+ }
69
+ }
70
+ queryByID(tableName, ID) {
71
+ return this.queryOne(tableName, null, ID);
72
+ }
73
+ queryAll(tableName, key, value) {
74
+ var table = this.getTable(tableName);
75
+ if (!table || !key) {
76
+ return null;
77
+ }
78
+ var ret = {};
79
+ for (var tbItem in table) {
80
+ if (!table.hasOwnProperty(tbItem)) {
81
+ continue;
82
+ }
83
+ if (table[tbItem][key] === value) {
84
+ ret[tbItem] = table[tbItem];
85
+ }
86
+ }
87
+ return ret;
88
+ }
89
+ queryIn(tableName, key, values) {
90
+ var table = this.getTable(tableName);
91
+ if (!table || !key) {
92
+ return null;
93
+ }
94
+ var ret = {};
95
+ var keys = Object.keys(table);
96
+ var length = keys.length;
97
+ for (var i = 0; i < length; i++) {
98
+ var item = table[keys[i]];
99
+ if (values.indexOf(item[key]) > -1) {
100
+ ret[keys[i]] = item;
101
+ }
102
+ }
103
+ return ret;
104
+ }
105
+ queryByCondition(tableName, condition) {
106
+ if (condition.constructor !== Object) {
107
+ return null;
108
+ }
109
+ var table = this.getTable(tableName);
110
+ if (!table) {
111
+ return null;
112
+ }
113
+ var ret = {};
114
+ var tableKeys = Object.keys(table);
115
+ var tableKeysLength = tableKeys.length;
116
+ var keys = Object.keys(condition);
117
+ var keysLength = keys.length;
118
+ for (var i = 0; i < tableKeysLength; i++) {
119
+ var item = table[tableKeys[i]];
120
+ var fit = true;
121
+ for (var j = 0; j < keysLength; j++) {
122
+ var key = keys[j];
123
+ fit = fit && (condition[key] === item[key]) && !ret[tableKeys[i]];
124
+ }
125
+ if (fit) {
126
+ ret[tableKeys[i]] = item;
127
+ }
128
+ }
129
+ return ret;
130
+ }
131
+ queryOneByCondition(tableName, condition) {
132
+ if (condition.constructor !== Object) {
133
+ return null;
134
+ }
135
+ var table = this.getTable(tableName);
136
+ if (!table) {
137
+ return null;
138
+ }
139
+ var keys = Object.keys(condition);
140
+ var keysLength = keys.length;
141
+ for (let keyName in table) {
142
+ var item = table[keyName];
143
+ var fit = true;
144
+ for (var j = 0; j < keysLength; j++) {
145
+ var key = keys[j];
146
+ fit = fit && (condition[key] === item[key]);
147
+ }
148
+ if (fit) {
149
+ return item;
150
+ }
151
+ }
152
+ return null;
153
+ }
154
+ }
155
+ ExcelMgr.Instance = null;
156
+ ExcelMgr.TAG = "ExcelMgr";
@@ -0,0 +1,20 @@
1
+ import { BaseMgr } from "./BaseMgr";
2
+ export declare class LifeCycleMgr extends BaseMgr {
3
+ static Instance: LifeCycleMgr;
4
+ static TAG: string;
5
+ onLoad(): void;
6
+ init(): void;
7
+ onLoadingStart(): void;
8
+ onLoadingFinish(args: any[]): void;
9
+ onShow(fn: Function): void;
10
+ offShow(fn: Function): void;
11
+ onHide(fn: Function): void;
12
+ offHide(fn: Function): void;
13
+ updateColdStartScene(): void;
14
+ updateWarmStartScene(warmStartOptions: any): void;
15
+ isLaunchFromRecentUse(): boolean;
16
+ isLaunchFromDesktopShortcut(): boolean;
17
+ isNavigateToRecentUseAvailable(callback: Function): void;
18
+ navigateToRecentUse(): void;
19
+ isLaunchFromAdvertisement(): boolean;
20
+ }
@@ -0,0 +1,110 @@
1
+ import { LogUtils } from "../Utils/LogUtils";
2
+ import { BaseMgr } from "./BaseMgr";
3
+ export class LifeCycleMgr extends BaseMgr {
4
+ onLoad() {
5
+ super.onLoad();
6
+ if (LifeCycleMgr.Instance === null) {
7
+ LifeCycleMgr.Instance = this;
8
+ }
9
+ else {
10
+ this.destroy();
11
+ return;
12
+ }
13
+ }
14
+ init() {
15
+ LogUtils.Instance.log(LifeCycleMgr.TAG, "init() finished.");
16
+ }
17
+ onLoadingStart() {
18
+ if (this.getPlatformAdapter() !== null) {
19
+ this.getPlatformAdapter().onLoadingStart();
20
+ }
21
+ }
22
+ onLoadingFinish(args) {
23
+ if (this.getPlatformAdapter() !== null) {
24
+ this.getPlatformAdapter().onLoadingFinish(args);
25
+ }
26
+ }
27
+ onShow(fn) {
28
+ if (fn === null) {
29
+ return null;
30
+ }
31
+ if (this.getPlatformAdapter() === null) {
32
+ return null;
33
+ }
34
+ this.getPlatformAdapter().onShow(fn);
35
+ }
36
+ offShow(fn) {
37
+ if (fn === null) {
38
+ return;
39
+ }
40
+ if (this.getPlatformAdapter() === null) {
41
+ return;
42
+ }
43
+ this.getPlatformAdapter().offShow(fn);
44
+ }
45
+ onHide(fn) {
46
+ if (fn === null) {
47
+ return null;
48
+ }
49
+ if (this.getPlatformAdapter() === null) {
50
+ return null;
51
+ }
52
+ this.getPlatformAdapter().onHide(fn);
53
+ }
54
+ offHide(fn) {
55
+ if (fn === null) {
56
+ return;
57
+ }
58
+ if (this.getPlatformAdapter() === null) {
59
+ return;
60
+ }
61
+ this.getPlatformAdapter().offHide(fn);
62
+ }
63
+ updateColdStartScene() {
64
+ if (this.getPlatformAdapter() === null) {
65
+ return;
66
+ }
67
+ this.getPlatformAdapter().updateColdStartScene();
68
+ }
69
+ updateWarmStartScene(warmStartOptions) {
70
+ if (this.getPlatformAdapter() === null) {
71
+ return;
72
+ }
73
+ this.getPlatformAdapter().updateWarmStartScene(warmStartOptions);
74
+ }
75
+ isLaunchFromRecentUse() {
76
+ if (this.getPlatformAdapter() === null) {
77
+ return false;
78
+ }
79
+ return this.getPlatformAdapter().isLaunchFromRecentUse();
80
+ }
81
+ isLaunchFromDesktopShortcut() {
82
+ if (this.getPlatformAdapter() === null) {
83
+ return false;
84
+ }
85
+ return this.getPlatformAdapter().isLaunchFromDesktopShortcut();
86
+ }
87
+ isNavigateToRecentUseAvailable(callback) {
88
+ if (this.getPlatformAdapter() === null) {
89
+ callback(false);
90
+ return;
91
+ }
92
+ this.getPlatformAdapter().isNavigateToRecentUseAvailable((res) => {
93
+ callback(res);
94
+ });
95
+ }
96
+ navigateToRecentUse() {
97
+ if (this.getPlatformAdapter() === null) {
98
+ return;
99
+ }
100
+ this.getPlatformAdapter().navigateToRecentUse();
101
+ }
102
+ isLaunchFromAdvertisement() {
103
+ if (this.getPlatformAdapter() === null) {
104
+ return false;
105
+ }
106
+ return this.getPlatformAdapter().isLaunchFromAdvertisement();
107
+ }
108
+ }
109
+ LifeCycleMgr.Instance = null;
110
+ LifeCycleMgr.TAG = "LifeCycleMgr";
@@ -0,0 +1,53 @@
1
+ import { Node, NodePool } from 'cc';
2
+ import { BaseMgr } from './BaseMgr';
3
+ /**
4
+ * 节点池配置接口
5
+ */
6
+ export interface IPoolConfig {
7
+ prefabUiName?: string;
8
+ initCount?: number;
9
+ enableDebug?: boolean;
10
+ }
11
+ /**
12
+ * 节点池统计信息
13
+ */
14
+ export interface IPoolStatistics {
15
+ createdCount: number;
16
+ reusedCount: number;
17
+ nowActiveCount: number;
18
+ maxActiveCount: number;
19
+ lastAccessTime: number;
20
+ }
21
+ export declare class PoolInfo {
22
+ poolConfig: IPoolConfig;
23
+ pool: NodePool;
24
+ usingNodeSet: Set<Node>;
25
+ statistics: IPoolStatistics;
26
+ constructor(poolConfig: Required<IPoolConfig>);
27
+ }
28
+ export declare class NodePoolMgr extends BaseMgr {
29
+ static Instance: NodePoolMgr;
30
+ static TAG: string;
31
+ private _poolInfoMap;
32
+ private _defaultPoolConfig;
33
+ onLoad(): void;
34
+ init(): void;
35
+ initPools(pools: Array<{
36
+ poolName: string;
37
+ config: IPoolConfig;
38
+ }>): void;
39
+ initPool(poolName: string, config: IPoolConfig): boolean;
40
+ destoryPools(): void;
41
+ clearAllPools(destoryNodes?: boolean): void;
42
+ clearPool(poolName: string, destroyNodes?: boolean): void;
43
+ recyclePool(poolName: string): void;
44
+ getNodes(poolName: string, count: number, parent?: Node, callback?: (node: Node, index: number) => void): Node[];
45
+ getNode(poolName: string, parent?: Node, callback?: (node: Node) => void): Node;
46
+ putNodes(poolName: string, nodes: Node[], resetNode?: boolean): void;
47
+ putNode(poolName: string, node: Node, immediate?: boolean, resetNode?: boolean): void;
48
+ private _createNode;
49
+ private _destoryNode;
50
+ private _recycleNode;
51
+ private _resetNode;
52
+ private _printPoolState;
53
+ }
@@ -0,0 +1,279 @@
1
+ import { NodePool, Vec3 } from 'cc';
2
+ import { BaseMgr } from './BaseMgr';
3
+ import { LogUtils } from '../Utils/LogUtils';
4
+ import { UIMgr } from './UIMgr';
5
+ export class PoolInfo {
6
+ constructor(poolConfig) {
7
+ this.usingNodeSet = new Set();
8
+ this.poolConfig = poolConfig;
9
+ this.pool = new NodePool();
10
+ this.usingNodeSet = new Set();
11
+ this.statistics = {
12
+ createdCount: 0,
13
+ reusedCount: 0,
14
+ nowActiveCount: 0,
15
+ maxActiveCount: 0,
16
+ lastAccessTime: Date.now(),
17
+ };
18
+ }
19
+ }
20
+ export class NodePoolMgr extends BaseMgr {
21
+ constructor() {
22
+ super(...arguments);
23
+ this._poolInfoMap = new Map();
24
+ this._defaultPoolConfig = {
25
+ prefabUiName: "",
26
+ initCount: 10,
27
+ enableDebug: false,
28
+ };
29
+ }
30
+ onLoad() {
31
+ super.onLoad();
32
+ if (NodePoolMgr.Instance === null) {
33
+ NodePoolMgr.Instance = this;
34
+ }
35
+ else {
36
+ this.destroy();
37
+ return;
38
+ }
39
+ }
40
+ init() {
41
+ this._poolInfoMap = new Map();
42
+ LogUtils.Instance.log(NodePoolMgr.TAG, "init() finished.");
43
+ }
44
+ initPools(pools) {
45
+ LogUtils.Instance.log(NodePoolMgr.TAG, `initPools()`);
46
+ if (pools === null || pools.length === 0) {
47
+ return;
48
+ }
49
+ pools.forEach(pool => {
50
+ this.initPool(pool.poolName, pool.config);
51
+ });
52
+ }
53
+ initPool(poolName, config) {
54
+ LogUtils.Instance.log(NodePoolMgr.TAG, `initPool() ${poolName}`);
55
+ if (this._poolInfoMap.has(poolName)) {
56
+ LogUtils.Instance.log(NodePoolMgr.TAG, `${poolName} already exist.`);
57
+ return false;
58
+ }
59
+ if (!config || config.prefabUiName === "") {
60
+ LogUtils.Instance.log(NodePoolMgr.TAG, `${poolName} config is invalid.`);
61
+ return false;
62
+ }
63
+ let poolConfig = {
64
+ ...this._defaultPoolConfig,
65
+ ...config
66
+ };
67
+ let poolInfo = new PoolInfo(poolConfig);
68
+ this._poolInfoMap.set(poolName, poolInfo);
69
+ for (let index = 0; index < poolConfig.initCount; index++) {
70
+ this._createNode(poolName);
71
+ }
72
+ LogUtils.Instance.log(NodePoolMgr.TAG, `initPool() ${poolName} sucess.`);
73
+ return true;
74
+ }
75
+ // 销毁所有节点池
76
+ destoryPools() {
77
+ LogUtils.Instance.log(NodePoolMgr.TAG, `destoryPools()`);
78
+ this.clearAllPools(true);
79
+ }
80
+ // 清空所有节点池
81
+ clearAllPools(destoryNodes = true) {
82
+ LogUtils.Instance.log(NodePoolMgr.TAG, `clearPools()`);
83
+ this._poolInfoMap.forEach((poolInfo, poolName) => {
84
+ this.clearPool(poolName, destoryNodes);
85
+ });
86
+ }
87
+ clearPool(poolName, destroyNodes = true) {
88
+ LogUtils.Instance.log(NodePoolMgr.TAG, `clearPool() ${poolName}`);
89
+ if (!this._poolInfoMap.has(poolName)) {
90
+ LogUtils.Instance.log(NodePoolMgr.TAG, `${poolName} not exist.`);
91
+ return;
92
+ }
93
+ this.recyclePool(poolName);
94
+ let poolInfo = this._poolInfoMap.get(poolName);
95
+ if (poolInfo.pool !== null && poolInfo.pool.size() > 0) {
96
+ if (destroyNodes) {
97
+ while (poolInfo.pool.size() > 0) {
98
+ let node = poolInfo.pool.get();
99
+ this._destoryNode(poolName, node);
100
+ }
101
+ poolInfo.pool.clear();
102
+ poolInfo.statistics = {
103
+ createdCount: 0,
104
+ reusedCount: 0,
105
+ nowActiveCount: 0,
106
+ maxActiveCount: 0,
107
+ lastAccessTime: Date.now(),
108
+ };
109
+ }
110
+ }
111
+ this._poolInfoMap.set(poolName, poolInfo);
112
+ if (poolInfo.poolConfig && poolInfo.poolConfig.enableDebug) {
113
+ this._printPoolState(poolName);
114
+ }
115
+ }
116
+ recyclePool(poolName) {
117
+ LogUtils.Instance.log(NodePoolMgr.TAG, `recyclePool() ${poolName}`);
118
+ if (!this._poolInfoMap.has(poolName)) {
119
+ LogUtils.Instance.log(NodePoolMgr.TAG, `${poolName} not exist.`);
120
+ return;
121
+ }
122
+ let poolInfo = this._poolInfoMap.get(poolName);
123
+ if (poolInfo.usingNodeSet !== null && poolInfo.usingNodeSet.size > 0) {
124
+ poolInfo.usingNodeSet.forEach((node) => {
125
+ this._recycleNode(poolName, node, true);
126
+ });
127
+ poolInfo.usingNodeSet.clear();
128
+ }
129
+ this._poolInfoMap.set(poolName, poolInfo);
130
+ }
131
+ getNodes(poolName, count, parent, callback) {
132
+ let nodes = [];
133
+ for (let index = 0; index < count; index++) {
134
+ let node = this.getNode(poolName, parent, (n) => {
135
+ if (callback) {
136
+ callback(n, index);
137
+ }
138
+ });
139
+ if (node) {
140
+ nodes.push(node);
141
+ }
142
+ }
143
+ return nodes;
144
+ }
145
+ getNode(poolName, parent, callback) {
146
+ if (!this._poolInfoMap.has(poolName)) {
147
+ LogUtils.Instance.log(NodePoolMgr.TAG, `getNode() ${poolName} not exist.`);
148
+ return null;
149
+ }
150
+ let poolInfo = this._poolInfoMap.get(poolName);
151
+ if (poolInfo.pool === null) {
152
+ poolInfo.pool = new NodePool();
153
+ }
154
+ if (poolInfo.pool.size() === 0) {
155
+ this._createNode(poolName);
156
+ }
157
+ let node = poolInfo.pool.get();
158
+ poolInfo.usingNodeSet.add(node);
159
+ if (parent) {
160
+ parent.addChild(node);
161
+ }
162
+ node.active = true;
163
+ poolInfo.statistics.reusedCount++;
164
+ poolInfo.statistics.nowActiveCount++;
165
+ if (poolInfo.statistics.nowActiveCount > poolInfo.statistics.maxActiveCount) {
166
+ poolInfo.statistics.maxActiveCount = poolInfo.statistics.nowActiveCount;
167
+ }
168
+ poolInfo.statistics.lastAccessTime = Date.now();
169
+ this._poolInfoMap.set(poolName, poolInfo);
170
+ if (poolInfo.poolConfig && poolInfo.poolConfig.enableDebug) {
171
+ this._printPoolState(poolName);
172
+ }
173
+ if (callback) {
174
+ callback(node);
175
+ }
176
+ return node;
177
+ }
178
+ putNodes(poolName, nodes, resetNode = true) {
179
+ if (!nodes || nodes.length === 0) {
180
+ return;
181
+ }
182
+ nodes.forEach(node => {
183
+ this.putNode(poolName, node, resetNode);
184
+ });
185
+ }
186
+ putNode(poolName, node, immediate = true, resetNode = true) {
187
+ if (!node || !node.isValid) {
188
+ return;
189
+ }
190
+ if (!this._poolInfoMap.has(poolName)) {
191
+ LogUtils.Instance.log(NodePoolMgr.TAG, `putNode() ${poolName} not exist.`);
192
+ this._destoryNode(poolName, node);
193
+ return;
194
+ }
195
+ let poolInfo = this._poolInfoMap.get(poolName);
196
+ if (poolInfo.usingNodeSet.has(node)) {
197
+ poolInfo.usingNodeSet.delete(node);
198
+ }
199
+ if (immediate) {
200
+ this._recycleNode(poolName, node, resetNode);
201
+ }
202
+ else {
203
+ this.scheduleOnce(() => {
204
+ this._recycleNode(poolName, node, resetNode);
205
+ });
206
+ }
207
+ }
208
+ _createNode(poolName) {
209
+ let poolInfo = this._poolInfoMap.get(poolName);
210
+ if (!poolInfo) {
211
+ LogUtils.Instance.log(NodePoolMgr.TAG, `_createNode() ${poolName} not exist.`);
212
+ return null;
213
+ }
214
+ let node = UIMgr.Instance.create_ui(poolInfo.poolConfig.prefabUiName);
215
+ if (!node) {
216
+ LogUtils.Instance.log(NodePoolMgr.TAG, `_createNode() ${poolName} create node failed.`);
217
+ return null;
218
+ }
219
+ node.active = false;
220
+ poolInfo.pool.put(node);
221
+ poolInfo.statistics.createdCount++;
222
+ this._poolInfoMap.set(poolName, poolInfo);
223
+ if (poolInfo.poolConfig && poolInfo.poolConfig.enableDebug) {
224
+ this._printPoolState(poolName);
225
+ }
226
+ }
227
+ _destoryNode(poolName, node) {
228
+ if (!node || !node.isValid) {
229
+ return;
230
+ }
231
+ let poolInfo = this._poolInfoMap.get(poolName);
232
+ UIMgr.Instance.destroy_ui(poolName, node);
233
+ if (poolInfo.poolConfig && poolInfo.poolConfig.enableDebug) {
234
+ this._printPoolState(poolName);
235
+ }
236
+ }
237
+ _recycleNode(poolName, node, resetNode = true) {
238
+ if (!node || !node.isValid) {
239
+ return;
240
+ }
241
+ if (node.parent) {
242
+ node.removeFromParent();
243
+ }
244
+ if (resetNode) {
245
+ this._resetNode(node);
246
+ }
247
+ let poolInfo = this._poolInfoMap.get(poolName);
248
+ poolInfo.pool.put(node);
249
+ node.active = false;
250
+ poolInfo.statistics.nowActiveCount--;
251
+ poolInfo.statistics.lastAccessTime = Date.now();
252
+ this._poolInfoMap.set(poolName, poolInfo);
253
+ if (poolInfo.poolConfig && poolInfo.poolConfig.enableDebug) {
254
+ this._printPoolState(poolName);
255
+ }
256
+ }
257
+ _resetNode(node) {
258
+ if (!node || !node.isValid) {
259
+ return;
260
+ }
261
+ node.position = Vec3.ZERO;
262
+ node.eulerAngles = Vec3.ZERO;
263
+ node.scale = Vec3.ONE;
264
+ }
265
+ _printPoolState(poolName) {
266
+ let poolInfo = this._poolInfoMap.get(poolName);
267
+ if (!poolInfo) {
268
+ LogUtils.Instance.log(NodePoolMgr.TAG, `_printPoolState() ${poolName} not exist.`);
269
+ return;
270
+ }
271
+ if (!poolInfo.statistics) {
272
+ LogUtils.Instance.log(NodePoolMgr.TAG, `_printPoolState() ${poolName} statistics is null.`);
273
+ return;
274
+ }
275
+ LogUtils.Instance.log(NodePoolMgr.TAG, `节点池 ${poolName} 已创建数:${poolInfo.statistics.createdCount} ,复用数:${poolInfo.statistics.reusedCount},当前活跃数:${poolInfo.statistics.nowActiveCount},最大活跃数:${poolInfo.statistics.maxActiveCount}`);
276
+ }
277
+ }
278
+ NodePoolMgr.Instance = null;
279
+ NodePoolMgr.TAG = "NodePoolMgr";
@@ -0,0 +1,15 @@
1
+ import { KindReminder, KindReminderType, PrivacyType } from '../Definition/PrivacyDefinition';
2
+ import { BaseMgr } from './BaseMgr';
3
+ export declare class PrivacyMgr extends BaseMgr {
4
+ static Instance: PrivacyMgr;
5
+ static TAG: string;
6
+ private kindReminder;
7
+ private kindReminderAgreeVersion;
8
+ onLoad(): void;
9
+ init(kindReminder: KindReminder): void;
10
+ shouldShowKindReminderOnLaunch(): boolean;
11
+ shouldShowKindReminder(): boolean;
12
+ getKindReminderContent(type: KindReminderType): string;
13
+ setKindReminderAgreed(): void;
14
+ queryPrivacyAvailable(featureName: string, privacyType: PrivacyType, callback: Function): void;
15
+ }