@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.
- package/assets/common/component/MoveComponent.d.ts +141 -0
- package/assets/common/component/NodeComponent.d.ts +98 -0
- package/assets/common/system/MoveSystem.d.ts +17 -0
- package/assets/ecs/EcsComponent.d.ts +89 -0
- package/assets/ecs/{EcsDirty.ts → EcsDirty.d.ts} +340 -459
- package/assets/ecs/EcsEntity.d.ts +148 -0
- package/assets/ecs/EcsSingleton.d.ts +3 -0
- package/assets/ecs/EcsSystem.d.ts +96 -0
- package/assets/ecs.d.ts +126 -0
- package/assets/lib/EcsCache.d.ts +24 -0
- package/assets/lib/EcsFilter.d.ts +57 -0
- package/assets/lib/EcsManager.d.ts +251 -0
- package/assets/lib/{EcsObject.ts → EcsObject.d.ts} +360 -422
- package/assets/lib/EcsTimer.d.ts +119 -0
- package/assets/lib/EcsTween.d.ts +168 -0
- package/assets/lib/EcsUtils.d.ts +82 -0
- package/dist/cocos/assets/common/component/MoveComponent.js +4 -0
- package/dist/cocos/assets/common/component/NodeComponent.js +4 -0
- package/dist/cocos/assets/common/system/MoveSystem.js +2 -0
- package/dist/cocos/assets/ecs/EcsComponent.js +4 -0
- package/dist/cocos/assets/ecs/EcsDirty.js +4 -0
- package/dist/cocos/assets/ecs/EcsEntity.js +4 -0
- package/dist/cocos/assets/ecs/EcsSingleton.js +4 -0
- package/dist/cocos/assets/ecs/EcsSystem.js +2 -0
- package/dist/cocos/assets/ecs.js +2 -0
- package/dist/cocos/assets/lib/EcsCache.js +2 -0
- package/dist/cocos/assets/lib/EcsFilter.js +2 -0
- package/dist/cocos/assets/lib/EcsManager.js +4 -0
- package/dist/cocos/assets/lib/EcsObject.js +4 -0
- package/dist/cocos/assets/lib/EcsTimer.js +4 -0
- package/dist/cocos/assets/lib/EcsTween.js +4 -0
- package/dist/cocos/assets/lib/EcsUtils.js +2 -0
- package/dist/cocos/index.js +4 -0
- package/{index.ts → index.d.ts} +14 -33
- package/package.json +27 -7
- package/assets/common/component/MoveComponent.ts +0 -292
- package/assets/common/component/MoveComponent.ts.meta +0 -9
- package/assets/common/component/NodeComponent.ts +0 -315
- package/assets/common/component/NodeComponent.ts.meta +0 -9
- package/assets/common/component.meta +0 -12
- package/assets/common/system/MoveSystem.ts +0 -108
- package/assets/common/system/MoveSystem.ts.meta +0 -9
- package/assets/common/system.meta +0 -12
- package/assets/common.meta +0 -12
- package/assets/ecs/EcsComponent.ts +0 -244
- package/assets/ecs/EcsComponent.ts.meta +0 -9
- package/assets/ecs/EcsDirty.ts.meta +0 -9
- package/assets/ecs/EcsEntity.ts +0 -430
- package/assets/ecs/EcsEntity.ts.meta +0 -9
- package/assets/ecs/EcsSingleton.ts +0 -6
- package/assets/ecs/EcsSingleton.ts.meta +0 -9
- package/assets/ecs/EcsSystem.ts +0 -191
- package/assets/ecs/EcsSystem.ts.meta +0 -9
- package/assets/ecs.meta +0 -12
- package/assets/ecs.ts +0 -339
- package/assets/ecs.ts.meta +0 -9
- package/assets/lib/EcsCache.ts +0 -43
- package/assets/lib/EcsCache.ts.meta +0 -9
- package/assets/lib/EcsFilter.ts +0 -210
- package/assets/lib/EcsFilter.ts.meta +0 -9
- package/assets/lib/EcsManager.ts +0 -502
- package/assets/lib/EcsManager.ts.meta +0 -9
- package/assets/lib/EcsObject.ts.meta +0 -9
- package/assets/lib/EcsTimer.ts +0 -239
- package/assets/lib/EcsTimer.ts.meta +0 -9
- package/assets/lib/EcsTween.ts +0 -486
- package/assets/lib/EcsTween.ts.meta +0 -9
- package/assets/lib/EcsUtils.ts +0 -352
- package/assets/lib/EcsUtils.ts.meta +0 -9
- package/assets/lib.meta +0 -12
- package/assets.meta +0 -9
- package/index.ts.meta +0 -9
- package/package.json.meta +0 -11
- /package/{.cj-ecs.md → README.md} +0 -0
package/assets/lib/EcsTimer.ts
DELETED
|
@@ -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
|
-
}
|