@cjhd/cj-ecs 1.0.0 → 1.0.1

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 (74) hide show
  1. package/assets/common/component/MoveComponent.d.ts +141 -0
  2. package/assets/common/component/NodeComponent.d.ts +98 -0
  3. package/assets/common/system/MoveSystem.d.ts +17 -0
  4. package/assets/ecs/EcsComponent.d.ts +89 -0
  5. package/assets/ecs/{EcsDirty.ts → EcsDirty.d.ts} +340 -459
  6. package/assets/ecs/EcsEntity.d.ts +148 -0
  7. package/assets/ecs/EcsSingleton.d.ts +3 -0
  8. package/assets/ecs/EcsSystem.d.ts +96 -0
  9. package/assets/ecs.d.ts +126 -0
  10. package/assets/lib/EcsCache.d.ts +24 -0
  11. package/assets/lib/EcsFilter.d.ts +57 -0
  12. package/assets/lib/EcsManager.d.ts +251 -0
  13. package/assets/lib/{EcsObject.ts → EcsObject.d.ts} +360 -422
  14. package/assets/lib/EcsTimer.d.ts +119 -0
  15. package/assets/lib/EcsTween.d.ts +168 -0
  16. package/assets/lib/EcsUtils.d.ts +82 -0
  17. package/dist/cocos/assets/common/component/MoveComponent.js +4 -0
  18. package/dist/cocos/assets/common/component/NodeComponent.js +4 -0
  19. package/dist/cocos/assets/common/system/MoveSystem.js +2 -0
  20. package/dist/cocos/assets/ecs/EcsComponent.js +4 -0
  21. package/dist/cocos/assets/ecs/EcsDirty.js +4 -0
  22. package/dist/cocos/assets/ecs/EcsEntity.js +4 -0
  23. package/dist/cocos/assets/ecs/EcsSingleton.js +4 -0
  24. package/dist/cocos/assets/ecs/EcsSystem.js +2 -0
  25. package/dist/cocos/assets/ecs.js +2 -0
  26. package/dist/cocos/assets/lib/EcsCache.js +2 -0
  27. package/dist/cocos/assets/lib/EcsFilter.js +2 -0
  28. package/dist/cocos/assets/lib/EcsManager.js +4 -0
  29. package/dist/cocos/assets/lib/EcsObject.js +4 -0
  30. package/dist/cocos/assets/lib/EcsTimer.js +4 -0
  31. package/dist/cocos/assets/lib/EcsTween.js +4 -0
  32. package/dist/cocos/assets/lib/EcsUtils.js +2 -0
  33. package/dist/cocos/index.js +4 -0
  34. package/{index.ts → index.d.ts} +14 -33
  35. package/package.json +27 -7
  36. package/assets/common/component/MoveComponent.ts +0 -292
  37. package/assets/common/component/MoveComponent.ts.meta +0 -9
  38. package/assets/common/component/NodeComponent.ts +0 -315
  39. package/assets/common/component/NodeComponent.ts.meta +0 -9
  40. package/assets/common/component.meta +0 -12
  41. package/assets/common/system/MoveSystem.ts +0 -108
  42. package/assets/common/system/MoveSystem.ts.meta +0 -9
  43. package/assets/common/system.meta +0 -12
  44. package/assets/common.meta +0 -12
  45. package/assets/ecs/EcsComponent.ts +0 -244
  46. package/assets/ecs/EcsComponent.ts.meta +0 -9
  47. package/assets/ecs/EcsDirty.ts.meta +0 -9
  48. package/assets/ecs/EcsEntity.ts +0 -430
  49. package/assets/ecs/EcsEntity.ts.meta +0 -9
  50. package/assets/ecs/EcsSingleton.ts +0 -6
  51. package/assets/ecs/EcsSingleton.ts.meta +0 -9
  52. package/assets/ecs/EcsSystem.ts +0 -191
  53. package/assets/ecs/EcsSystem.ts.meta +0 -9
  54. package/assets/ecs.meta +0 -12
  55. package/assets/ecs.ts +0 -339
  56. package/assets/ecs.ts.meta +0 -9
  57. package/assets/lib/EcsCache.ts +0 -43
  58. package/assets/lib/EcsCache.ts.meta +0 -9
  59. package/assets/lib/EcsFilter.ts +0 -210
  60. package/assets/lib/EcsFilter.ts.meta +0 -9
  61. package/assets/lib/EcsManager.ts +0 -502
  62. package/assets/lib/EcsManager.ts.meta +0 -9
  63. package/assets/lib/EcsObject.ts.meta +0 -9
  64. package/assets/lib/EcsTimer.ts +0 -239
  65. package/assets/lib/EcsTimer.ts.meta +0 -9
  66. package/assets/lib/EcsTween.ts +0 -486
  67. package/assets/lib/EcsTween.ts.meta +0 -9
  68. package/assets/lib/EcsUtils.ts +0 -352
  69. package/assets/lib/EcsUtils.ts.meta +0 -9
  70. package/assets/lib.meta +0 -12
  71. package/assets.meta +0 -9
  72. package/index.ts.meta +0 -9
  73. package/package.json.meta +0 -11
  74. /package/{.cj-ecs.md → README.md} +0 -0
@@ -1,239 +0,0 @@
1
- import { EcsBase } from './EcsObject';
2
-
3
- interface ICallback {
4
- (...args: any[]): any
5
- }
6
-
7
- let tid = 0;
8
-
9
- /**
10
- * 定时器
11
- */
12
- export class Timer {
13
- static step(timer: Timer, dt: number) {
14
- timer.time += dt;
15
-
16
- if (timer.first) {
17
- if (timer.time < timer._delay) return true;
18
- timer.first = false;
19
- timer.time = 0;
20
- } else if (timer.time < timer._interval) {
21
- return true;
22
- } else {
23
- timer.time = 0;
24
- }
25
-
26
- timer.callback.call(timer.target);
27
-
28
- // 执行次数达到上限,则移除
29
- if (timer._repeat >= 0 && --timer._repeat < 0) {
30
- return false;
31
- }
32
-
33
- return true;
34
- }
35
-
36
- private _id = ++tid;
37
- public get id() {
38
- return this._id;
39
- }
40
-
41
- /**是否执行过 */
42
- private first = true;
43
- /**执行计时 */
44
- private time = 0;
45
-
46
- /**回调函数 */
47
- private callback!: ICallback;
48
- private _target: EcsBase | null = null;
49
- public get target(): EcsBase | null {
50
- return this._target;
51
- }
52
-
53
- /**首次执行的延迟时间 */
54
- private _delay = 0;
55
-
56
- /**重复执行的间隔时间 */
57
- private _interval = 0;
58
-
59
- /**重复执行次数(<0为无限次) */
60
- private _repeat = -1;
61
-
62
- constructor(callback: ICallback, target: EcsBase | null = null) {
63
- this._target = target;
64
- this.callback = callback;
65
- }
66
-
67
- /**
68
- * 首次执行延迟时间
69
- * @param value
70
- * @returns
71
- */
72
- delay(value: number) {
73
- this._delay = Math.max(0, value);
74
- return this;
75
- }
76
-
77
- /**
78
- * 重复执行间隔时间
79
- * @param value
80
- * @returns
81
- */
82
- interval(value: number) {
83
- this._interval = Math.max(0, value);
84
- return this;
85
- }
86
-
87
- /**
88
- * 重复执行次数(<0为无限次)
89
- * - 初始值为-1
90
- * - 实际执行次数为repeat + 1
91
- * @param value
92
- * @returns
93
- */
94
- repeat(value: number) {
95
- this._repeat = value;
96
- return this;
97
- }
98
- }
99
-
100
- /**
101
- * 创建一个定时器
102
- */
103
- export function timer(callback: ICallback, target: EcsBase | null = null) {
104
- return new Timer(callback, target);
105
- }
106
-
107
- /**
108
- * 定时器管理器
109
- */
110
- export class TimerManager {
111
- private map = new Map<number, Timer>();
112
- private pausing = new Map<number, true>();
113
-
114
- /**
115
- * 添加定时器
116
- * @param timer
117
- * @returns id 永远大于0
118
- */
119
- add(timer: Timer) {
120
- this.map.set(timer.id, timer);
121
- return timer.id;
122
- }
123
-
124
- /**
125
- * 移除指定的定时器
126
- * @param id
127
- */
128
- remove(id: number): void;
129
- /**
130
- * 移除指定的定时器
131
- * @param timer
132
- */
133
- remove(timer: Timer): void;
134
- /**
135
- * 移除指定的定时器
136
- * @param target
137
- */
138
- remove(target: EcsBase): void;
139
- remove(param: number | Timer | EcsBase) {
140
- if (typeof param === 'number') {
141
- this.map.delete(param);
142
- this.pausing.delete(param);
143
- } else if (param instanceof Timer) {
144
- this.map.delete(param.id);
145
- this.pausing.delete(param.id);
146
- } else {
147
- this.map.forEach((tween, tid) => {
148
- if (tween.target === param) {
149
- this.map.delete(tid);
150
- this.pausing.delete(tid);
151
- }
152
- });
153
- }
154
- }
155
-
156
- /**
157
- * 暂停指定的定时器
158
- * @param id
159
- */
160
- pause(id: number): void;
161
- /**
162
- * 暂停指定的定时器
163
- * @param timer
164
- */
165
- pause(timer: Timer): void;
166
- /**
167
- * 暂停指定的定时器
168
- * @param target
169
- */
170
- pause(target: EcsBase): void;
171
- pause(param: number | Timer | EcsBase) {
172
- if (typeof param === 'number') {
173
- this.pausing.set(param, true);
174
- } else if (param instanceof Timer) {
175
- this.pausing.set(param.id, true);
176
- } else {
177
- this.map.forEach((tween, tid) => {
178
- if (tween.target === param) {
179
- this.pausing.set(tid, true);
180
- }
181
- });
182
- }
183
- }
184
-
185
- /**
186
- * 恢复指定的定时器
187
- * @param id
188
- */
189
- resume(id: number): void;
190
- /**
191
- * 恢复指定的定时器
192
- * @param timer
193
- */
194
- resume(timer: Timer): void;
195
- /**
196
- * 恢复指定的定时器
197
- * @param target
198
- */
199
- resume(target: EcsBase): void;
200
- resume(param: number | Timer | EcsBase) {
201
- if (typeof param === 'number') {
202
- this.pausing.delete(param);
203
- } else if (param instanceof Timer) {
204
- this.pausing.delete(param.id);
205
- } else {
206
- this.map.forEach((tween, tid) => {
207
- if (tween.target === param) {
208
- this.pausing.delete(tid);
209
- }
210
- });
211
- }
212
- }
213
-
214
- /**
215
- * 迭代一次
216
- */
217
- step(dt: number) {
218
- this.map.forEach((timer, tid) => {
219
- // 暂停中,则跳过
220
- if (this.pausing.has(tid)) return;
221
- // 执行次数达到上限,则移除
222
- if (Timer.step(timer, dt) === false) {
223
- this.map.delete(tid);
224
- }
225
- });
226
- }
227
-
228
- get size() {
229
- return this.map.size;
230
- }
231
-
232
- /**
233
- * 清空
234
- */
235
- clear() {
236
- this.map.clear();
237
- this.pausing.clear();
238
- }
239
- }
@@ -1,9 +0,0 @@
1
- {
2
- "ver": "4.0.24",
3
- "importer": "typescript",
4
- "imported": true,
5
- "uuid": "43fe9bc7-581e-48e6-8d45-b2584ae5cbd7",
6
- "files": [],
7
- "subMetas": {},
8
- "userData": {}
9
- }