@woosh/meep-engine 2.120.1 → 2.120.2

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 (42) hide show
  1. package/package.json +1 -1
  2. package/src/core/geom/2d/circle/Circle.d.ts +7 -5
  3. package/src/core/geom/2d/circle/Circle.d.ts.map +1 -1
  4. package/src/core/geom/2d/circle/Circle.js +7 -5
  5. package/src/core/geom/2d/circle/circle_area.d.ts +7 -0
  6. package/src/core/geom/2d/circle/circle_area.d.ts.map +1 -0
  7. package/src/core/geom/2d/circle/circle_area.js +8 -0
  8. package/src/core/geom/Quaternion.d.ts.map +1 -1
  9. package/src/core/geom/Quaternion.js +57 -23
  10. package/src/engine/ecs/Entity.js +2 -2
  11. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  12. package/src/engine/ecs/EntityComponentDataset.js +31 -13
  13. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  14. package/src/engine/ecs/EntityManager.js +10 -1
  15. package/src/engine/ecs/EntityObserver.d.ts.map +1 -1
  16. package/src/engine/ecs/EntityObserver.js +2 -10
  17. package/src/engine/ecs/EntityReference.d.ts +10 -2
  18. package/src/engine/ecs/EntityReference.d.ts.map +1 -1
  19. package/src/engine/ecs/EntityReference.js +24 -6
  20. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  21. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +349 -50
  22. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts +3 -0
  23. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts.map +1 -1
  24. package/src/engine/intelligence/behavior/ecs/DieBehavior.js +4 -0
  25. package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts +17 -0
  26. package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts.map +1 -0
  27. package/src/engine/intelligence/behavior/ecs/KillBehavior.js +47 -0
  28. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts +7 -6
  29. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts.map +1 -1
  30. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.js +51 -43
  31. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts +0 -48
  32. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts.map +0 -1
  33. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts.map +0 -1
  34. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts.map +0 -1
  35. package/editor/actions/concrete/SelectionAddAction.d.ts.map +0 -1
  36. package/editor/actions/concrete/SelectionClearAction.d.ts.map +0 -1
  37. package/editor/actions/concrete/SelectionRemoveAction.d.ts.map +0 -1
  38. package/editor/actions/concrete/TransformModifyAction.d.ts.map +0 -1
  39. package/editor/actions/concrete/WriteGridValueAction.d.ts.map +0 -1
  40. package/src/engine/ecs/read_entity_reference.d.ts +0 -9
  41. package/src/engine/ecs/read_entity_reference.d.ts.map +0 -1
  42. package/src/engine/ecs/read_entity_reference.js +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"EntityReference.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityReference.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IA6GI;;;;;OAKG;IACH,gBAJW,MAAM,cACN,MAAM,GACL,eAAe,CAQ1B;IAvHD;;;;OAIG;IACH,IAFU,MAAM,CAET;IAEP;;;;OAIG;IACH,YAFU,MAAM,CAED;IAEf;;;OAGG;IACH,YAFW,eAAe,QAKzB;IAED;;;OAGG;IACH,SAFa,eAAe,CAQ3B;IAED;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACd,OAAO,CAMlB;IAED;;;;OAIG;IACH,YAHW,sBAAsB,GACpB,OAAO,CAQnB;IAED;;;;OAIG;IACH,aAHW,sBAAsB,GACpB,OAAO,CASnB;IAED;;;;OAIG;IACH,UAHW,sBAAsB,UACtB,MAAM,QAMhB;IAED;;;;OAIG;IACH,SAHW,MAAM,cACN,MAAM,QAUhB;IAiBL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAN1C;;cAWS,eAAe"}
1
+ {"version":3,"file":"EntityReference.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityReference.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IAiHI;;;;;OAKG;IACH,gBAJW,MAAM,cACN,MAAM,GACL,eAAe,CAQ1B;IAED;;;;;OAKG;IACH,iBAJW,sBAAsB,MACtB,MAAM,GACJ,eAAe,CAQ3B;IAzID;;;;OAIG;IACH,IAFU,MAAM,CAET;IAEP;;;;OAIG;IACH,YAFU,MAAM,CAED;IAEf;;;OAGG;IACH,YAFW,eAAe,QAKzB;IAED;;;OAGG;IACH,SAFa,eAAe,CAQ3B;IAED;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACd,OAAO,CAMlB;IAED;;;;OAIG;IACH,YAHW,sBAAsB,GACpB,OAAO,CAQnB;IAED;;;;;OAKG;IACH,aAHW,sBAAsB,GACpB,OAAO,CASnB;IAED;;;;OAIG;IACH,UAHW,sBAAsB,UACtB,MAAM,QAShB;IAED;;;;OAIG;IACH,SAHW,MAAM,cACN,MAAM,QAUhB;IA+BL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAN1C;;cAWS,eAAe"}
@@ -24,7 +24,7 @@ export class EntityReference {
24
24
  *
25
25
  * @param {EntityReference} other
26
26
  */
27
- copy(other){
27
+ copy(other) {
28
28
  this.id = other.id;
29
29
  this.generation = other.generation;
30
30
  }
@@ -33,7 +33,7 @@ export class EntityReference {
33
33
  *
34
34
  * @returns {EntityReference}
35
35
  */
36
- clone(){
36
+ clone() {
37
37
  const r = new EntityReference();
38
38
 
39
39
  r.copy(this);
@@ -74,9 +74,10 @@ export class EntityReference {
74
74
  }
75
75
 
76
76
  /**
77
- *
77
+ * Destroys entity bound to this reference
78
+ * If the reference is invalid for the given dataset - does nothing
78
79
  * @param {EntityComponentDataset} ecd
79
- * @returns {boolean}
80
+ * @returns {boolean} true if entity was destroyed, false otherwise
80
81
  */
81
82
  destroy(ecd) {
82
83
  if (this.verify(ecd)) {
@@ -92,7 +93,10 @@ export class EntityReference {
92
93
  * @param {EntityComponentDataset} ecd
93
94
  * @param {number} entity
94
95
  */
95
- bind(ecd, entity){
96
+ bind(ecd, entity) {
97
+ assert.defined(ecd, 'ecd');
98
+ assert.equal(ecd.isEntityComponentDataset, true, 'ecd.isEntityComponentDataset !== true');
99
+
96
100
  const generation = ecd.getEntityGeneration(entity);
97
101
 
98
102
  this.from(entity, generation);
@@ -103,7 +107,7 @@ export class EntityReference {
103
107
  * @param {number} id
104
108
  * @param {number} generation
105
109
  */
106
- from(id, generation){
110
+ from(id, generation) {
107
111
 
108
112
  assert.isNonNegativeInteger(id, 'id');
109
113
  assert.isNonNegativeInteger(generation, 'generation');
@@ -126,6 +130,20 @@ export class EntityReference {
126
130
 
127
131
  return r;
128
132
  }
133
+
134
+ /**
135
+ *
136
+ * @param {EntityComponentDataset} ecd
137
+ * @param {number} id
138
+ * @returns {EntityReference}
139
+ */
140
+ static bind(ecd, id) {
141
+ const r = new EntityReference();
142
+
143
+ r.bind(ecd, id);
144
+
145
+ return r;
146
+ }
129
147
  }
130
148
 
131
149
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Terrain.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/ecs/Terrain.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Terrain.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/ecs/Terrain.js"],"names":[],"mappings":"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"}
@@ -1,50 +1,349 @@
1
- import Vector2 from "../../../../core/geom/Vector2";
2
-
3
- export class Sampler2D {
4
- constructor(data: ArrayLike<number>, itemSize?: number, width?: number, height?: number)
5
-
6
- readonly height: number
7
- readonly width: number
8
-
9
- readonly itemSize: number
10
-
11
- readonly data: ArrayLike<number>
12
-
13
- version: number
14
-
15
- readChannel(x: number, y: number, channel: number): number
16
-
17
- writeChannel(x: number, y: number, channel: number, value: number): void
18
-
19
- channelFill(channelIndex: number, value: number): void
20
-
21
- sampleBilinear(x: number, y: number, result: ArrayLike<number>, result_offset?: number): void
22
-
23
- sampleChannelBilinear(x: number, y: number, channel: number): number
24
-
25
- sampleBicubic(x: number, y: number, result: ArrayLike<number>, result_offset?: number): void
26
-
27
- sampleChannelBicubic(x: number, y: number, channel: number): number
28
-
29
- resize(x: number, y: number, preserveData?: boolean): void
30
-
31
- point2index(x: number, y: number): number
32
-
33
- index2point(index: number, result: Vector2): void
34
-
35
- static uint8clamped(itemSize: number, width: number, height: number): Sampler2D
36
-
37
- static uint8(itemSize: number, width: number, height: number): Sampler2D
38
-
39
- static uint16(itemSize: number, width: number, height: number): Sampler2D
40
-
41
- static uint32(itemSize: number, width: number, height: number): Sampler2D
42
-
43
- static int8(itemSize: number, width: number, height: number): Sampler2D
44
-
45
- static int16(itemSize: number, width: number, height: number): Sampler2D
46
-
47
- static int32(itemSize: number, width: number, height: number): Sampler2D
48
-
49
- static float32(itemSize: number, width: number, height: number): Sampler2D
50
- }
1
+ /**
2
+ * Data Texture class, providing an abstraction around 2d numerical arrays, mostly for sampling purposes
3
+ * Inspired by OpenGL's glsl sampler2d API
4
+ * @class
5
+ */
6
+ export class Sampler2D {
7
+ /**
8
+ *
9
+ * @param {int} itemSize
10
+ * @param {int} width
11
+ * @param {int} height
12
+ * @return {Sampler2D}
13
+ */
14
+ static uint8clamped(itemSize: int, width: int, height: int): Sampler2D;
15
+ /**
16
+ *
17
+ * @param {int} itemSize
18
+ * @param {int} width
19
+ * @param {int} height
20
+ * @return {Sampler2D}
21
+ */
22
+ static uint8(itemSize: int, width: int, height: int): Sampler2D;
23
+ /**
24
+ *
25
+ * @param {int} itemSize
26
+ * @param {int} width
27
+ * @param {int} height
28
+ * @return {Sampler2D}
29
+ */
30
+ static uint16(itemSize: int, width: int, height: int): Sampler2D;
31
+ /**
32
+ *
33
+ * @param {int} itemSize
34
+ * @param {int} width
35
+ * @param {int} height
36
+ * @return {Sampler2D}
37
+ */
38
+ static uint32(itemSize: int, width: int, height: int): Sampler2D;
39
+ /**
40
+ *
41
+ * @param {int} itemSize
42
+ * @param {int} width
43
+ * @param {int} height
44
+ * @return {Sampler2D}
45
+ */
46
+ static int8(itemSize: int, width: int, height: int): Sampler2D;
47
+ /**
48
+ *
49
+ * @param {int} itemSize
50
+ * @param {int} width
51
+ * @param {int} height
52
+ * @return {Sampler2D}
53
+ */
54
+ static int16(itemSize: int, width: int, height: int): Sampler2D;
55
+ /**
56
+ *
57
+ * @param {int} itemSize
58
+ * @param {int} width
59
+ * @param {int} height
60
+ * @return {Sampler2D}
61
+ */
62
+ static int32(itemSize: int, width: int, height: int): Sampler2D;
63
+ /**
64
+ *
65
+ * @param {int} itemSize
66
+ * @param {int} width
67
+ * @param {int} height
68
+ * @return {Sampler2D}
69
+ */
70
+ static float32(itemSize: int, width: int, height: int): Sampler2D;
71
+ /**
72
+ *
73
+ * @param {int} itemSize
74
+ * @param {int} width
75
+ * @param {int} height
76
+ * @return {Sampler2D}
77
+ */
78
+ static float64(itemSize: int, width: int, height: int): Sampler2D;
79
+ /**
80
+ *
81
+ * @param {ArrayLike<number>|number[]|Uint8ClampedArray|Uint8Array|Uint16Array|Uint32Array|Int8Array|Int16Array|Int32Array|Float32Array|Float64Array} data
82
+ * @param {number} [itemSize]
83
+ * @param {number} [width]
84
+ * @param {number} [height]
85
+ * @constructor
86
+ */
87
+ constructor(data?: ArrayLike<number> | number[] | Uint8ClampedArray | Uint8Array | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array, itemSize?: number, width?: number, height?: number);
88
+ /**
89
+ *
90
+ * @type {number}
91
+ */
92
+ width: number;
93
+ /**
94
+ *
95
+ * @type {number}
96
+ */
97
+ height: number;
98
+ /**
99
+ * Number of channels
100
+ * @type {number}
101
+ */
102
+ itemSize: number;
103
+ /**
104
+ *
105
+ * @type {number[]|Uint8ClampedArray|Uint8Array|Uint16Array|Uint32Array|Int8Array|Int16Array|Int32Array|Float32Array|Float64Array}
106
+ */
107
+ data: number[] | Uint8ClampedArray | Uint8Array | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array;
108
+ /**
109
+ * Used to tracking changes
110
+ * @type {number}
111
+ */
112
+ version: number;
113
+ /**
114
+ *
115
+ * @param {number} u
116
+ * @param {number} v
117
+ * @param {number[]} result
118
+ */
119
+ sampleCatmullRomUV(u: number, v: number, result: number[]): void;
120
+ /**
121
+ *
122
+ * @param {number} u
123
+ * @param {number} v
124
+ * @param {number} channel
125
+ * @returns {number}
126
+ */
127
+ sampleChannelCatmullRomUV(u: number, v: number, channel: number): number;
128
+ /**
129
+ *
130
+ * @see https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1
131
+ * @param {number} x
132
+ * @param {number} y
133
+ * @param {number} channel
134
+ * @returns {number}
135
+ */
136
+ sampleChannelCatmullRom(x: number, y: number, channel: number): number;
137
+ /**
138
+ *
139
+ * @param {number} u
140
+ * @param {number} v
141
+ * @param {number[]} result
142
+ */
143
+ sampleBicubicUV(u: number, v: number, result: number[]): void;
144
+ /**
145
+ *
146
+ * @param {number} x
147
+ * @param {number} y
148
+ * @param {number[]|Float32Array|Float64Array} result
149
+ * @param {number} result_offset
150
+ */
151
+ sampleBicubic(x: number, y: number, result: number[] | Float32Array | Float64Array, result_offset: number): void;
152
+ /**
153
+ *
154
+ * @param {number} u
155
+ * @param {number} v
156
+ * @param {number} channel
157
+ * @returns {number}
158
+ */
159
+ sampleChannelBicubicUV(u: number, v: number, channel: number): number;
160
+ /**
161
+ *
162
+ * Bicubic-filtered sampling, note values can be negative due to the nature of the cubic curve
163
+ * @param {number} x
164
+ * @param {number} y
165
+ * @param {number} channel
166
+ * @returns {number}
167
+ */
168
+ sampleChannelBicubic(x: number, y: number, channel: number): number;
169
+ /**
170
+ *
171
+ * @param {number} u
172
+ * @param {number} v
173
+ * @param {number[]|Float32Array} result
174
+ * @param {number} result_offset
175
+ */
176
+ sampleBilinearUV(u: number, v: number, result: number[] | Float32Array, result_offset?: number): void;
177
+ /**
178
+ *
179
+ * @param {number} x
180
+ * @param {number} y
181
+ * @param {number[]|Float32Array|Float64Array} result
182
+ * @param {number} result_offset
183
+ */
184
+ sampleBilinear(x: number, y: number, result: number[] | Float32Array | Float64Array, result_offset?: number): void;
185
+ /**
186
+ *
187
+ * @param {number} u
188
+ * @param {number} v
189
+ * @param {number} channel
190
+ * @return {number}
191
+ */
192
+ sampleChannelBilinearUV(u: number, v: number, channel: number): number;
193
+ /**
194
+ *
195
+ * @param {number} x
196
+ * @param {number} y
197
+ * @param {number} channel
198
+ * @returns {number}
199
+ */
200
+ sampleChannelBilinear(x: number, y: number, channel: number): number;
201
+ /**
202
+ *
203
+ * @param {number} u
204
+ * @param {number} v
205
+ * @param {number[]|ArrayLike<number>} result
206
+ */
207
+ sampleNearestUV(u: number, v: number, result: number[] | ArrayLike<number>): void;
208
+ /**
209
+ *
210
+ * @param {number} x
211
+ * @param {number} y
212
+ * @param {number} channel
213
+ * @returns {number}
214
+ */
215
+ readChannel(x: number, y: number, channel: number): number;
216
+ /**
217
+ *
218
+ * @param {number} x
219
+ * @param {number} y
220
+ * @param {number[]} result
221
+ */
222
+ read(x: number, y: number, result: number[]): void;
223
+ /**
224
+ *
225
+ * @param {number} x
226
+ * @param {number} y
227
+ * @param {number[]|ArrayLike<number>} texel
228
+ */
229
+ write(x: number, y: number, texel: number[] | ArrayLike<number>): void;
230
+ /**
231
+ *
232
+ * @param {number} x
233
+ * @param {number} y
234
+ * @returns {number}
235
+ */
236
+ point2index(x: number, y: number): number;
237
+ /**
238
+ *
239
+ * @param {number} index
240
+ * @param {Vector2} result
241
+ */
242
+ index2point(index: number, result: Vector2): void;
243
+ /**
244
+ * Copy a patch from another sampler
245
+ * @param {Sampler2D} source where to copy from
246
+ * @param {Number} sourceX where to start reading from, X coordinate
247
+ * @param {Number} sourceY where to start reading from, X coordinate
248
+ * @param {Number} destinationX where to start writing to, X coordinate
249
+ * @param {Number} destinationY where to start writing to, X coordinate
250
+ * @param {Number} width size of the patch that is to be copied
251
+ * @param {Number} height size of the patch that is to be copied
252
+ */
253
+ copy(source: Sampler2D, sourceX: number, sourceY: number, destinationX: number, destinationY: number, width: number, height: number): void;
254
+ /**
255
+ * Fill data values with zeros for a given area
256
+ * Specialized version of `fill` method, optimized for speed
257
+ * @param {Number} x
258
+ * @param {Number} y
259
+ * @param {Number} width
260
+ * @param {Number} height
261
+ */
262
+ zeroFill(x: number, y: number, width: number, height: number): void;
263
+ /**
264
+ *
265
+ * @param {number} channel_index
266
+ * @param {number} value
267
+ */
268
+ channelFill(channel_index: number, value: number): void;
269
+ /**
270
+ *
271
+ * @param {number} x
272
+ * @param {number} y
273
+ * @param {number} width
274
+ * @param {number} height
275
+ * @param {Array.<number>} value
276
+ */
277
+ fill(x: number, y: number, width: number, height: number, value: Array<number>): void;
278
+ /**
279
+ * Set channel value of a specific texel
280
+ * @param {number} x
281
+ * @param {number} y
282
+ * @param {number} channel
283
+ * @param {number} value
284
+ */
285
+ writeChannel(x: number, y: number, channel: number, value: number): void;
286
+ /**
287
+ * Traverses area inside a circle
288
+ * NOTE: Based on palm3d answer on stack overflow: https://stackoverflow.com/questions/1201200/fast-algorithm-for-drawing-filled-circles
289
+ * @param {number} centerX
290
+ * @param {number} centerY
291
+ * @param {number} radius
292
+ * @param {function(x:number,y:number, sampler:Sampler2D)} visitor
293
+ */
294
+ traverseCircle(centerX: number, centerY: number, radius: number, visitor: any): void;
295
+ /**
296
+ *
297
+ * @param {number} x
298
+ * @param {number} y
299
+ * @param {boolean} [preserveData=true]
300
+ */
301
+ resize(x: number, y: number, preserveData?: boolean): void;
302
+ /**
303
+ * Estimate memory requirement of the object
304
+ * @return {number}
305
+ */
306
+ computeByteSize(): number;
307
+ /**
308
+ *
309
+ * @param {Sampler2D} other
310
+ * @return {boolean}
311
+ */
312
+ equals(other: Sampler2D): boolean;
313
+ /**
314
+ *
315
+ * @return {number}
316
+ */
317
+ hash(): number;
318
+ /**
319
+ * @returns {Sampler2D}
320
+ */
321
+ clone(): Sampler2D;
322
+ toJSON(): {
323
+ height: number;
324
+ width: number;
325
+ itemSize: number;
326
+ type: import("../../../../core/binary/type/BinaryDataType.js").BinaryDataType;
327
+ data: string;
328
+ };
329
+ fromJSON({ height, width, itemSize, type, data }: {
330
+ height: any;
331
+ width: any;
332
+ itemSize: any;
333
+ type: any;
334
+ data: any;
335
+ }): void;
336
+ /**
337
+ * @deprecated use {@link write} instead
338
+ */
339
+ set: (x: number, y: number, texel: number[] | ArrayLike<number>) => void;
340
+ /**
341
+ * @readonly
342
+ * @type {boolean}
343
+ */
344
+ readonly isSampler2D: boolean;
345
+ }
346
+ export namespace Sampler2D {
347
+ let typeName: string;
348
+ }
349
+ //# sourceMappingURL=Sampler2D.d.ts.map
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Makes the entity destroy itself
3
+ */
1
4
  export class DieBehavior extends EntityBehavior {
2
5
  static create(): DieBehavior;
3
6
  tick(timeDelta: any): BehaviorStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"DieBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/DieBehavior.js"],"names":[],"mappings":"AAGA;IAGI,6BAEC;IAED,qCASC;CACJ;+BAnB8B,qBAAqB;+BADrB,sBAAsB"}
1
+ {"version":3,"file":"DieBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/DieBehavior.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAGI,6BAEC;IAED,qCASC;CACJ;+BAtB8B,qBAAqB;+BADrB,sBAAsB"}
@@ -1,6 +1,9 @@
1
1
  import { BehaviorStatus } from "../BehaviorStatus.js";
2
2
  import { EntityBehavior } from "./EntityBehavior.js";
3
3
 
4
+ /**
5
+ * Makes the entity destroy itself
6
+ */
4
7
  export class DieBehavior extends EntityBehavior {
5
8
 
6
9
 
@@ -19,3 +22,4 @@ export class DieBehavior extends EntityBehavior {
19
22
 
20
23
  }
21
24
  }
25
+
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Causes another entity to be destroyed
3
+ * Will produce a {@link BehaviorStatus.Failed} if entity could not be destroyed, either because it doesn't exist or the reference is stale
4
+ */
5
+ export class KillBehavior extends EntityBehavior {
6
+ /**
7
+ *
8
+ * @param {EntityReference} ref
9
+ * @returns {KillBehavior}
10
+ */
11
+ static create(ref: EntityReference): KillBehavior;
12
+ tick(timeDelta: any): BehaviorStatus.Succeeded | BehaviorStatus.Failed;
13
+ #private;
14
+ }
15
+ import { EntityBehavior } from "./EntityBehavior.js";
16
+ import { BehaviorStatus } from "../BehaviorStatus.js";
17
+ //# sourceMappingURL=KillBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KillBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/KillBehavior.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH;IAOI;;;;OAIG;IACH,mBAHW,eAAe,GACb,YAAY,CAYxB;IAED,uEAaC;;CACJ;+BA5C8B,qBAAqB;+BADrB,sBAAsB"}
@@ -0,0 +1,47 @@
1
+ import { assert } from "../../../../core/assert.js";
2
+ import { BehaviorStatus } from "../BehaviorStatus.js";
3
+ import { EntityBehavior } from "./EntityBehavior.js";
4
+
5
+ /**
6
+ * Causes another entity to be destroyed
7
+ * Will produce a {@link BehaviorStatus.Failed} if entity could not be destroyed, either because it doesn't exist or the reference is stale
8
+ */
9
+ export class KillBehavior extends EntityBehavior {
10
+
11
+ /**
12
+ * @type {EntityReference}
13
+ */
14
+ #ref;
15
+
16
+ /**
17
+ *
18
+ * @param {EntityReference} ref
19
+ * @returns {KillBehavior}
20
+ */
21
+ static create(ref) {
22
+ assert.defined(ref, 'ref');
23
+ assert.isObject(ref, 'ref');
24
+ assert.equal(ref.isEntityReference, true, 'ref.isEntityReference !== true');
25
+
26
+ const r = new KillBehavior();
27
+
28
+ r.#ref = ref;
29
+
30
+ return r;
31
+ }
32
+
33
+ tick(timeDelta) {
34
+
35
+ const ecd = this.ecd;
36
+
37
+ if (this.#ref.destroy(ecd)) {
38
+
39
+ return BehaviorStatus.Succeeded;
40
+
41
+ } else {
42
+ // couldn't find
43
+ return BehaviorStatus.Failed;
44
+
45
+ }
46
+ }
47
+ }
@@ -23,7 +23,7 @@ export class GridTaskDensityMarkerDistribution extends GridTaskGenerator {
23
23
  */
24
24
  scale: NumericInterval;
25
25
  /**
26
- * RNG seed offset
26
+ * RNG seed
27
27
  * @type {number}
28
28
  * @private
29
29
  */
@@ -31,12 +31,13 @@ export class GridTaskDensityMarkerDistribution extends GridTaskGenerator {
31
31
  /**
32
32
  *
33
33
  * @param {GridData} grid
34
- * @param x0
35
- * @param y0
36
- * @param x1
37
- * @param y1
34
+ * @param {number} x0
35
+ * @param {number} y0
36
+ * @param {number} x1
37
+ * @param {number} y1
38
+ * @returns {number}
38
39
  */
39
- estimateTapCount(grid: GridData, x0: any, y0: any, x1: any, y1: any): number;
40
+ estimateTapCount(grid: GridData, x0: number, y0: number, x1: number, y1: number): number;
40
41
  /**
41
42
  *
42
43
  * @param {number} seed
@@ -1 +1 @@
1
- {"version":3,"file":"GridTaskDensityMarkerDistribution.d.ts","sourceRoot":"","sources":["../../../../../src/generation/grid/generation/GridTaskDensityMarkerDistribution.js"],"names":[],"mappings":"AAwBA;IA4BI;;;;;;OAMG;IACH,qBALW,UAAU,UACV,yBAAyB,SACzB,eAAe,SACf,MAAM,qCAgBhB;IA/CD;;;OAGG;IACH,SAFU,UAAU,CAEL;IAEf;;;OAGG;IACH,QAFU,yBAAyB,CAErB;IAEd;;;OAGG;IACH,OAFU,eAAe,CAES;IAElC;;;;OAIG;IACH,eAAW;IA2BX;;;;;;;OAOG;IACH,uBANW,QAAQ,8CAwFlB;IAED;;;;;;;;;OASG;IACH,kBARW,MAAM,QACN,QAAQ,MACR,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,IAAI,CAkIhB;IAGD,iDAkEC;CACJ;kCA3WiC,yBAAyB;gCAT3B,gDAAgD;iBAI/D,oCAAoC;sBAC/B,yCAAyC"}
1
+ {"version":3,"file":"GridTaskDensityMarkerDistribution.d.ts","sourceRoot":"","sources":["../../../../../src/generation/grid/generation/GridTaskDensityMarkerDistribution.js"],"names":[],"mappings":"AAgBA;IA4BI;;;;;;OAMG;IACH,qBALW,UAAU,UACV,yBAAyB,SACzB,eAAe,SACf,MAAM,qCAgBhB;IA/CD;;;OAGG;IACH,SAFU,UAAU,CAEL;IAEf;;;OAGG;IACH,QAFU,yBAAyB,CAErB;IAEd;;;OAGG;IACH,OAFU,eAAe,CAES;IAElC;;;;OAIG;IACH,eAAW;IA2BX;;;;;;;;OAQG;IACH,uBAPW,QAAQ,MACR,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAwFlB;IAED;;;;;;;;;OASG;IACH,kBARW,MAAM,QACN,QAAQ,MACR,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,IAAI,CAkIhB;IAGD,iDA6EC;CACJ;kCAlXiC,yBAAyB;gCAT3B,gDAAgD;iBAI/D,oCAAoC;sBAC/B,yCAAyC"}