@woosh/meep-engine 2.120.3 → 2.120.4

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 (32) hide show
  1. package/editor/Editor.d.ts.map +1 -1
  2. package/editor/SelectionVisualizer.d.ts.map +1 -1
  3. package/editor/actions/concrete/ComponentAddAction.d.ts.map +1 -1
  4. package/editor/actions/concrete/EntityCreateAction.d.ts.map +1 -1
  5. package/editor/actions/concrete/SelectionAddAction.d.ts.map +1 -0
  6. package/editor/actions/concrete/SelectionClearAction.d.ts.map +1 -0
  7. package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -0
  8. package/editor/enableEditor.d.ts.map +1 -1
  9. package/package.json +1 -1
  10. package/src/core/geom/3d/mat4/decompose_matrix_4_array.d.ts +7 -3
  11. package/src/core/geom/3d/mat4/decompose_matrix_4_array.d.ts.map +1 -1
  12. package/src/core/geom/3d/mat4/decompose_matrix_4_array.js +2 -2
  13. package/src/core/geom/3d/ray/Ray3.d.ts +11 -0
  14. package/src/core/geom/3d/ray/Ray3.d.ts.map +1 -1
  15. package/src/core/geom/3d/ray/Ray3.js +25 -0
  16. package/src/core/model/stat/Stat.d.ts.map +1 -1
  17. package/src/core/model/stat/Stat.js +38 -19
  18. package/src/engine/Clock.d.ts +14 -3
  19. package/src/engine/Clock.d.ts.map +1 -1
  20. package/src/engine/Clock.js +14 -3
  21. package/editor/actions/concrete/ActionUpdateTexture.d.ts +0 -12
  22. package/editor/actions/concrete/ActionUpdateTexture.d.ts.map +0 -1
  23. package/editor/actions/concrete/ArrayCopyAction.d.ts +0 -20
  24. package/editor/actions/concrete/ArrayCopyAction.d.ts.map +0 -1
  25. package/editor/actions/concrete/ComponentRemoveAction.d.ts +0 -11
  26. package/editor/actions/concrete/ComponentRemoveAction.d.ts.map +0 -1
  27. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts.map +0 -1
  28. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts +0 -38
  29. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts +0 -23
  30. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +0 -19
  31. package/editor/actions/concrete/SelectionRemoveAction.d.ts +0 -10
  32. package/editor/actions/concrete/WriteGridValueAction.d.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["Editor.js"],"names":[],"mappings":";AAwYA;;;;;GAKG;AACH,gCA+MC;;IA9MG,6BAAwC;IACxC,uBAAkC;IAClC,qBAA2B;IAC3B,oCAAwC;IACxC,0CAAyD;IACzD,yBAAoC;IAEpC;;;OAGG;IACH,sBAFU,IAAI,GAAG,aAAa,CAEO;IAIrC,qBAAuC;IAEvC,uCAAkD;IAElD,iBAAgB;IAEhB,kBAAoB;IAsLpB;yBAvBW,aAAa;MAyBvB;IAGL,mBAaC;IANG,uBAAyB;IAEzB,cAAmC;IAGnC,oBAAsB;IAG1B;;;OAGG;IACH,+BA2BC;IAED;;;OAGG;IACH,sCAgDC;IA3CG,eAAoB;IA6CxB;;;OAGG;IACH,wCAmBC;IAED,6BAMC;IAED,eA+BC;IAED;;;;OAIG;IACH,6BAFa,OAAO,CAInB;;8BA5sB6B,4BAA4B;uBAEnC,8BAA8B;iBA5DpC,qCAAqC;gCAatB,6CAA6C;oCA8CzC,0BAA0B;4BAFlC,0BAA0B;mBA1CnC,6BAA6B;+BAyCjB,6BAA6B;uBAMrC,sBAAsB"}
1
+ {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["Editor.js"],"names":[],"mappings":";AAwYA;;;;;GAKG;AACH,gCA+MC;;IA9MG,6BAAwC;IACxC,uBAAkC;IAClC,qBAA2B;IAC3B,oCAAwC;IACxC,0CAAyD;IACzD,yBAAoC;IAEpC;;;OAGG;IACH,sBAFU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAEO;IAIrC,qBAAuC;IAEvC,uCAAkD;IAElD,iBAAgB;IAEhB,kBAAoB;IAsLpB;yBAvBW,aAAa;MAyBvB;IAGL,mBAaC;IANG,uBAAyB;IAEzB,cAAmC;IAGnC,oBAAsB;IAG1B;;;OAGG;IACH,oBAFW,GAAG,QA6Bb;IAED;;;OAGG;IACH,eAFW,MAAM,iBAkDhB;IA3CG,eAAoB;IA6CxB;;;OAGG;IACH,2BAFW,KAAK,QAqBf;IAED,6BAMC;IAED,eA+BC;IAED;;;;OAIG;IACH,uBAHW,GAAG,GACD,OAAO,CAInB;;8BA5sB6B,4BAA4B;uBAEnC,8BAA8B;iBA5DpC,qCAAqC;gCAatB,6CAA6C;oCA8CzC,0BAA0B;4BAFlC,0BAA0B;mBA1CnC,6BAA6B;+BAyCjB,6BAA6B;uBAMrC,sBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionVisualizer.d.ts","sourceRoot":"","sources":["SelectionVisualizer.js"],"names":[],"mappings":"AA8EA;IACI;;;;OAIG;IACH,4BAiDC;IAhDG,eAAoB;IAWN,aAAwB;IA4BtC;;;MAGC;IAED,0BAGC;IAGL,gBAQC;IAED,iBASC;CACJ;sBA3JgC,OAAO;8BAEV,4CAA4C"}
1
+ {"version":3,"file":"SelectionVisualizer.d.ts","sourceRoot":"","sources":["SelectionVisualizer.js"],"names":[],"mappings":"AA8EA;IACI;;;;OAIG;IACH,oBAHW,MAAM,EAoDhB;IAhDG,eAAoB;IAWN,aAAwB;IA4BtC;;;MAGC;IAED,0BAGC;IAGL,gBAQC;IAED,iBASC;CACJ;sBA3JgC,OAAO;8BAEV,4CAA4C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentAddAction.d.ts","sourceRoot":"","sources":["ComponentAddAction.js"],"names":[],"mappings":";AAEA;IACI,yCASC;IAPG,YAAoB;IACpB,eAA0B;IAC1B;;;OAGG;IACH,gCAAmB;IAGvB,kCAqBC;IAED,mCAGC;CACJ;uBAzCsB,0CAA0C"}
1
+ {"version":3,"file":"ComponentAddAction.d.ts","sourceRoot":"","sources":["ComponentAddAction.js"],"names":[],"mappings":";AAEA;IACI,yCASC;IAPG,YAAoB;IACpB,eAA0B;IAC1B;;;OAGG;IACH,SAFU,sBAAsB,CAEb;IAGvB,kCAqBC;IAED,mCAGC;CACJ;uBAzCsB,0CAA0C"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCreateAction.d.ts","sourceRoot":"","sources":["EntityCreateAction.js"],"names":[],"mappings":";AAEA;IACI,cAaC;IAXG;;;OAGG;IACH,QAFU,MAAM,GAAC,IAAI,CAEH;IAElB;;;OAGG;IACH,4BAAe;IAGnB,kCAkBC;IAED,mCAEC;CACJ;uBAzCsB,0CAA0C"}
1
+ {"version":3,"file":"EntityCreateAction.d.ts","sourceRoot":"","sources":["EntityCreateAction.js"],"names":[],"mappings":";AAEA;IACI,cAaC;IAXG;;;OAGG;IACH,QAFU,MAAM,GAAC,IAAI,CAEH;IAElB;;;OAGG;IACH,KAFU,sBAAsB,CAEjB;IAGnB,kCAkBC;IAED,mCAEC;CACJ;uBAzCsB,0CAA0C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionAddAction.d.ts","sourceRoot":"","sources":["SelectionAddAction.js"],"names":[],"mappings":";AAGA;IACI;;;;OAIG;IACH,sBAHW,GAAG,EAAE,EAWf;IANG,cAAoB;IACpB;;;OAGG;IACH,UAFU,GAAG,EAAE,CAES;IAG5B,kCAMC;IAED,mCAEC;CACJ;uBA9BsB,0CAA0C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionClearAction.d.ts","sourceRoot":"","sources":["SelectionClearAction.js"],"names":[],"mappings":";AAEA;IACI,cAGC;IADG,cAAoB;IAGxB,kCAGC;IAED,mCAEC;CACJ;uBAhBsB,0CAA0C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformModifyAction.d.ts","sourceRoot":"","sources":["TransformModifyAction.js"],"names":[],"mappings":";AAGA;IACI;;;;;OAKG;IACH,mCAHW,SAAS,EASnB;IAHG,cAAoB;IACpB,oBAAwB;IACxB,YAAoB;IAqBxB,mCAMC;CACJ;uBA1CsB,0CAA0C;0BADvC,gDAAgD"}
@@ -1 +1 @@
1
- {"version":3,"file":"enableEditor.d.ts","sourceRoot":"","sources":["enableEditor.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,qEAHoB,MAAM;;;;YACkD,MAAM;EAsEjF;mBA5EkB,aAAa"}
1
+ {"version":3,"file":"enableEditor.d.ts","sourceRoot":"","sources":["enableEditor.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,qCAJW,MAAM,mBACN,CAAS,IAAM,EAAN,MAAM,KAAE,GAAC,GAChB;IAAC,MAAM,WAAU;IAAC,OAAO,WAAW;IAAC,MAAM,WAAW;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAsElF;mBA5EkB,aAAa"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Fully featured ECS game engine written in JavaScript",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.120.3",
8
+ "version": "2.120.4",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  *
3
3
  * @param {number[]} mat4
4
- * @param {Vector3} position
4
+ * @param {Vector3|{set(x:number,y:number,z:number)}} position
5
5
  * @param {Quaternion} rotation
6
- * @param {Vector3} scale
6
+ * @param {Vector3|{set(x:number,y:number,z:number)}} scale
7
7
  */
8
- export function decompose_matrix_4_array(mat4: number[], position: Vector3, rotation: Quaternion, scale: Vector3): void;
8
+ export function decompose_matrix_4_array(mat4: number[], position: Vector3 | {
9
+ set(x: number, y: number, z: number): any;
10
+ }, rotation: Quaternion, scale: Vector3 | {
11
+ set(x: number, y: number, z: number): any;
12
+ }): void;
9
13
  //# sourceMappingURL=decompose_matrix_4_array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decompose_matrix_4_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/decompose_matrix_4_array.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,+CALW,MAAM,EAAE,YACR,OAAO,YACP,UAAU,SACV,OAAO,QA0DjB"}
1
+ {"version":3,"file":"decompose_matrix_4_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/decompose_matrix_4_array.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,+CALW,MAAM,EAAE,YACR,OAAO,GAAC;IAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,OAAC;CAAC,YACzC,UAAU,SACV,OAAO,GAAC;IAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,OAAC;CAAC,QA0DnD"}
@@ -3,9 +3,9 @@ import { v3_length } from "../../vec3/v3_length.js";
3
3
  /**
4
4
  *
5
5
  * @param {number[]} mat4
6
- * @param {Vector3} position
6
+ * @param {Vector3|{set(x:number,y:number,z:number)}} position
7
7
  * @param {Quaternion} rotation
8
- * @param {Vector3} scale
8
+ * @param {Vector3|{set(x:number,y:number,z:number)}} scale
9
9
  */
10
10
  export function decompose_matrix_4_array(mat4, position, rotation, scale) {
11
11
  const m11 = mat4[0];
@@ -94,5 +94,16 @@ export class Ray3 extends Float32Array<ArrayBuffer> {
94
94
  * @returns {boolean}
95
95
  */
96
96
  equals(other: Ray3): boolean;
97
+ /**
98
+ * Compute `t` value for a given point in 3d space.
99
+ * This is the distance along the direction from origin of the ray
100
+ * Value will be negative if the ray is pointing away from the point
101
+ * PRECONDITION: ray direction must be normalized
102
+ * @param {number} x
103
+ * @param {number} y
104
+ * @param {number} z
105
+ * @returns {number}
106
+ */
107
+ computeSignedDistance(x: number, y: number, z: number): number;
97
108
  }
98
109
  //# sourceMappingURL=Ray3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ray3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/ray/Ray3.js"],"names":[],"mappings":"AASA;;;GAGG;AACH;IA0MI;;;;;;;;;;OAUG;IACH,sBATW,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,UACN,MAAM,GACL,IAAI,CAqBf;IAvOD,cAKC;IAMD,iBAEC;IAND,gBAEC;IAGG,OAAW;IAOf;;;OAGG;IACH,cAFW,MAAM,EAAE,GAAC,YAAY,EAI/B;IAVD,cAMW,MAAM,EAAE,GAAC,YAAY,CAJ/B;IAUD,uBAEC;IAED,uBAEC;IAED,uBAEC;IAGD;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,KACN,MAAM,QAUhB;IAHG,UAAW;IACX,UAAW;IACX,UAAW;IAQf;;;OAGG;IACH,iBAFW,MAAM,EAAE,GAAC,YAAY,EAI/B;IAVD,iBAMW,MAAM,EAAE,GAAC,YAAY,CAJ/B;IAWD,0BAEC;IAED,0BAEC;IAED,0BAEC;IAED;;;;;OAKG;IACH,gBAJW,MAAM,KACN,MAAM,KACN,MAAM,QAUhB;IAHG,UAAW;IACX,UAAW;IACX,UAAW;IAGf,2BAEC;IAED;;;;;;;OAOG;IACH,gCANW,MAAM,KACN,MAAM,KACN,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,sBAC1B,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,QA6BpC;IAED;;;OAGG;IACH,uBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,iBAFW,MAAM,EAAE,GAAC,IAAI,GAAC,YAAY,QAepC;IAED;;;OAGG;IACH,SAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,YAFW,IAAI,QAId;IAED,eAEC;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CAInB;CAiCJ"}
1
+ {"version":3,"file":"Ray3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/ray/Ray3.js"],"names":[],"mappings":"AAUA;;;GAGG;AACH;IAkOI;;;;;;;;;;OAUG;IACH,sBATW,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,UACN,MAAM,GACL,IAAI,CAqBf;IA/PD,cAKC;IAMD,iBAEC;IAND,gBAEC;IAGG,OAAW;IAOf;;;OAGG;IACH,cAFW,MAAM,EAAE,GAAC,YAAY,EAI/B;IAVD,cAMW,MAAM,EAAE,GAAC,YAAY,CAJ/B;IAUD,uBAEC;IAED,uBAEC;IAED,uBAEC;IAGD;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,KACN,MAAM,QAUhB;IAHG,UAAW;IACX,UAAW;IACX,UAAW;IAQf;;;OAGG;IACH,iBAFW,MAAM,EAAE,GAAC,YAAY,EAI/B;IAVD,iBAMW,MAAM,EAAE,GAAC,YAAY,CAJ/B;IAWD,0BAEC;IAED,0BAEC;IAED,0BAEC;IAED;;;;;OAKG;IACH,gBAJW,MAAM,KACN,MAAM,KACN,MAAM,QAUhB;IAHG,UAAW;IACX,UAAW;IACX,UAAW;IAGf,2BAEC;IAED;;;;;;;OAOG;IACH,gCANW,MAAM,KACN,MAAM,KACN,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,sBAC1B,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,QA6BpC;IAED;;;OAGG;IACH,uBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,iBAFW,MAAM,EAAE,GAAC,IAAI,GAAC,YAAY,QAepC;IAED;;;OAGG;IACH,SAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,YAFW,IAAI,QAId;IAED,eAEC;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CAInB;IAED;;;;;;;;;OASG;IACH,yBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAclB;CAiCJ"}
@@ -4,6 +4,7 @@ import { array_range_equal_strict } from "../../../collection/array/array_range_
4
4
  import { computeHashFloatArray } from "../../../math/hash/computeHashFloatArray.js";
5
5
  import { v3_array_matrix4_rotate } from "../../vec3/v3_array_matrix4_rotate.js";
6
6
  import { v3_array_normalize } from "../../vec3/v3_array_normalize.js";
7
+ import { v3_dot } from "../../vec3/v3_dot.js";
7
8
  import { v3_matrix4_multiply } from "../../vec3/v3_matrix4_multiply.js";
8
9
  import { ray3_interval_array_apply_matrix4 } from "./ray3_interval_array_apply_matrix4.js";
9
10
 
@@ -213,6 +214,30 @@ export class Ray3 extends Float32Array {
213
214
  return array_range_equal_strict(this, 0, other, 0, 7);
214
215
  }
215
216
 
217
+ /**
218
+ * Compute `t` value for a given point in 3d space.
219
+ * This is the distance along the direction from origin of the ray
220
+ * Value will be negative if the ray is pointing away from the point
221
+ * PRECONDITION: ray direction must be normalized
222
+ * @param {number} x
223
+ * @param {number} y
224
+ * @param {number} z
225
+ * @returns {number}
226
+ */
227
+ computeSignedDistance(x, y, z) {
228
+ assert.isNumber(x, 'x');
229
+ assert.isNumber(y, 'y');
230
+ assert.isNumber(z, 'z');
231
+
232
+ // localize point to ray's origin
233
+ const _x = x - this.origin_x;
234
+ const _y = y - this.origin_y;
235
+ const _z = z - this.origin_z;
236
+
237
+ // we assume that direction is normalized
238
+ return v3_dot(_x, _y, _z, this.direction_x, this.direction_y, this.direction_z);
239
+ }
240
+
216
241
  /**
217
242
  *
218
243
  * @param {number} origin_x
@@ -1 +1 @@
1
- {"version":3,"file":"Stat.d.ts","sourceRoot":"","sources":["../../../../../src/core/model/stat/Stat.js"],"names":[],"mappings":";AASA;IAiPI;;;;;OAKG;IACH,6BAJW,MAAM,aACN,IAAI,CAAC,cAAc,CAAC,GAClB,MAAM,CAoBlB;IAxQD;;;OAGG;IACH,mBAHW,MAAM,EAoChB;IA5BG;;;OAGG;IACH,IAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,MAFU,OAAO,CAEa;IAE9B;;;;OAIG;IACH,6BAA6B;IAE7B,eAA+B;IAI/B;;;OAGG;IACH,aAFU,CAAS,IAAM,EAAN,MAAM,KAAG,MAAM,CAEE;IAGxC;;;OAGG;IACH,uBAFa,MAAM,CAAC,cAAc,CAAC,CAIlC;IAED;;;OAGG;IACH,yBAFa,MAAM,CAAC,cAAc,CAAC,CAIlC;IAED;;OAEG;IACH,uBAEC;IAUD;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED,oBAUC;IAED;;;OAGG;IACH,gBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFY,cAAc,EAAE,CAI3B;IAED;;;OAGG;IACH,iBAFW,cAAc,QAMxB;IAED;;;;OAIG;IACH,iBAHW,cAAc,GACb,OAAO,CAIlB;IAED;;;;OAIG;IACH,oBAHW,cAAc,GACZ,OAAO,CAQnB;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CASnB;IAED;;;OAGG;IACH,YAFW,IAAI,QAOd;IAED;;;OAGG;IACH,gBAFW,IAAI,QAId;IAED;;;;OAIG;IACH,iCAHW,CAAS,IAAM,EAAN,MAAM,KAAE,MAAM,KACvB,MAAM,QAKhB;IAED;;OAEG;IACH,wCAFW,IAAI,QAmBd;IAED;;;MAKC;IAED,0BAIC;IAED;;;OAGG;IACH,iBAFa,MAAM,CAIlB;IAqDL;;;OAGG;IACH,iBAFU,OAAO,CAEI;CA9BpB;;;QAOe,8BAHD,MAAM,GACL,MAAM,CAIjB;QACK,kCAEL;QAMS,gCAHC,MAAM,GACJ,CAAS,IAAM,EAAN,MAAM,KAAG,MAAM,CAMpC;;;;oBAtSe,uBAAuB;2BAIhB,qBAAqB;iBAN/B,+BAA+B;sBAC1B,yBAAyB"}
1
+ {"version":3,"file":"Stat.d.ts","sourceRoot":"","sources":["../../../../../src/core/model/stat/Stat.js"],"names":[],"mappings":";AASA;;;;;;;GAOG;AACH;IAyPI;;;;;OAKG;IACH,6BAJW,MAAM,aACN,IAAI,CAAC,cAAc,CAAC,GAClB,MAAM,CAoBlB;IA3PD;;;OAGG;IACH,oBAHW,MAAM,EAuBhB;IA7CD;;;OAGG;IACH,IAFU,MAAM,CAET;IAEP;;;;;;OAMG;IACH,6BAAyB;IAEzB;;;OAGG;IACH,aAFU,CAAS,IAAM,EAAN,MAAM,KAAG,MAAM,CAEF;IAY5B;;;OAGG;IACH,MAFU,OAAO,CAEa;IAE9B;;;OAGG;IACH,OAFU,OAAO,CAEc;IAMnC;;;OAGG;IACH,uBAFa,MAAM,CAAC,cAAc,CAAC,CAIlC;IAED;;;OAGG;IACH,yBAFa,MAAM,CAAC,cAAc,CAAC,CAIlC;IAED;;OAEG;IACH,uBAEC;IAUD;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED,oBAUC;IAED;;;OAGG;IACH,gBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFY,cAAc,EAAE,CAI3B;IAED;;;OAGG;IACH,iBAFW,cAAc,QAMxB;IAED;;;;OAIG;IACH,iBAHW,cAAc,GACb,OAAO,CAIlB;IAED;;;;OAIG;IACH,oBAHW,cAAc,GACZ,OAAO,CAQnB;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CASnB;IAED;;;OAGG;IACH,YAFW,IAAI,QAOd;IAED;;;OAGG;IACH,gBAFW,IAAI,QAId;IAED;;;;OAIG;IACH,iCAHW,CAAS,IAAM,EAAN,MAAM,KAAE,MAAM,KACvB,MAAM,QAKhB;IAED;;OAEG;IACH,wCAFW,IAAI,QAmBd;IAED;;;MAKC;IAED,0BAIC;IAED;;;OAGG;IACH,iBAFa,MAAM,CAIlB;IAwDL;;;OAGG;IACH,iBAFU,OAAO,CAEI;CAjCpB;;;QAOe,8BAHD,MAAM,GACL,MAAM,CAIjB;QACK,kCAEL;QAMS,gCAHC,MAAM,GACJ,CAAS,IAAM,EAAN,MAAM,KAAG,MAAM,CAMpC;;;;oBAtTe,uBAAuB;2BAIhB,qBAAqB;iBAN/B,+BAA+B;sBAC1B,yBAAyB"}
@@ -7,44 +7,60 @@ import { epsilonEquals } from "../../math/epsilonEquals.js";
7
7
  import { max2 } from "../../math/max2.js";
8
8
  import LinearModifier from "./LinearModifier.js";
9
9
 
10
+ /**
11
+ * Modifiable statistic.
12
+ * Allows non-destructive linear arithmetic.
13
+ * Useful when we wish to be able to reverse part or the whole of the computation
14
+ *
15
+ * Main purpose of the class is to facilitate implementation of RPG-like stats, such as maximum health, or armor.
16
+ * These stats can then be modified by various skills, equipment and effects. Each such modification will be added as a separate {@link LinearModifier} and can be reversed by removing the modifier.
17
+ */
10
18
  class Stat extends Number {
11
19
  /**
12
- * @param {number} value
20
+ * Unique identifier of a stat, such a health, armor etc.
21
+ * @type {number}
22
+ */
23
+ id = 0;
24
+
25
+ /**
26
+ * List of modifiers.
27
+ * Order has no influence on final computed value
28
+ * @private
29
+ * @readonly
30
+ * @type {List<LinearModifier>}
31
+ */
32
+ __modifiers = new List();
33
+
34
+ /**
35
+ *
36
+ * @type {function(number): number}
37
+ */
38
+ postprocess = Stat.Process.NONE;
39
+
40
+ /**
41
+ * @param {number} [value]
13
42
  * @constructor
14
43
  */
15
- constructor(value) {
44
+ constructor(value=0) {
16
45
  super();
17
46
 
18
47
  assert.isNumber(value, "value");
19
48
 
20
- /**
21
- * Unique identifier of a stat, such a health, armor etc.
22
- * @type {number}
23
- */
24
- this.id = 0;
25
49
 
26
50
  /**
27
- *
51
+ * Base value that will be affected by modifiers
28
52
  * @type {Vector1}
29
53
  */
30
54
  this.base = new Vector1(value);
31
55
 
32
56
  /**
33
- * @private
34
- * @readonly
35
- * @type {List<LinearModifier>}
57
+ * Final computed value. Do not modify this directly
58
+ * @type {Vector1}
36
59
  */
37
- this.__modifiers = new List();
38
-
39
60
  this.value = new Vector1(value);
40
61
 
41
62
  this.base.onChanged.add(this.updateValue, this);
42
63
 
43
- /**
44
- *
45
- * @type {function(number): number}
46
- */
47
- this.postprocess = Stat.Process.NONE;
48
64
  }
49
65
 
50
66
  /**
@@ -287,7 +303,7 @@ Stat.Process = {
287
303
  return v;
288
304
  },
289
305
  /**
290
- * Clamp lowest value forcing the result to always be >= value
306
+ * Clamp the lowest value forcing the result to always be >= value
291
307
  * @param {number} value
292
308
  * @returns {function(number): number}
293
309
  */
@@ -296,6 +312,9 @@ Stat.Process = {
296
312
  return max2(value, v);
297
313
  }
298
314
  },
315
+ /**
316
+ * Allows us to chain multiple effects
317
+ */
299
318
  chain: chain
300
319
  };
301
320
 
@@ -1,16 +1,24 @@
1
1
  export default Clock;
2
+ /**
3
+ * Construct for keeping track of time
4
+ */
2
5
  declare class Clock {
3
6
  /**
4
- *
7
+ * In seconds
5
8
  * @type {number}
6
9
  * @private
7
10
  */
8
11
  private __lastMeasurement;
9
12
  /**
10
- *
13
+ * In seconds
11
14
  * @type {number}
12
15
  */
13
16
  elapsedTime: number;
17
+ /**
18
+ * Timestamp when {@link getDelta} was last called
19
+ * In seconds
20
+ * @type {number}
21
+ */
14
22
  timeAtDelta: number;
15
23
  /**
16
24
  *
@@ -20,6 +28,8 @@ declare class Clock {
20
28
  private __isRunning;
21
29
  /**
22
30
  * how fast clock ticks in relation to real time
31
+ * Allows us to slow down or speed up flow of time via modifiers, see {@link Stat} for details
32
+ * Default speed is x1, i.e. - unmodified
23
33
  * @type {Stat}
24
34
  */
25
35
  speed: Stat;
@@ -47,7 +57,8 @@ declare class Clock {
47
57
  */
48
58
  updateElapsedTime(): number;
49
59
  /**
50
- *
60
+ * Time elapsed so far, since the clock was started
61
+ * Only counts time while running
51
62
  * @return {number}
52
63
  */
53
64
  getElapsedTime(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../src/engine/Clock.js"],"names":[],"mappings":";AAcA;IAEI;;;;OAIG;IACH,0BAAsB;IAEtB;;;OAGG;IACH,aAFU,MAAM,CAEA;IAEhB,oBAAgB;IAEhB;;;;OAIG;IACH,oBAAoB;IAGpB;;;OAGG;IACH,OAFU,IAAI,CAEM;IAMpB;;;OAGG;IACH,kBAFW,MAAM,EAIhB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED,cAIC;IAED,aAEC;IAED,cAIC;IAED;;;OAGG;IACH,YAFa,MAAM,CAOlB;IAED;;;OAGG;IACH,qBAFa,MAAM,CAOlB;IAED;;;OAGG;IACH,kBAFY,MAAM,CAIjB;IAED,cAGC;CACJ;iBAnHgB,4BAA4B"}
1
+ {"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../src/engine/Clock.js"],"names":[],"mappings":";AAcA;;GAEG;AACH;IAEI;;;;OAIG;IACH,0BAAsB;IAEtB;;;OAGG;IACH,aAFU,MAAM,CAEA;IAEhB;;;;OAIG;IACH,aAFU,MAAM,CAEA;IAEhB;;;;OAIG;IACH,oBAAoB;IAGpB;;;;;OAKG;IACH,OAFU,IAAI,CAEM;IAMpB;;;OAGG;IACH,kBAFW,MAAM,EAIhB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED,cAIC;IAED,aAEC;IAED,cAIC;IAED;;;OAGG;IACH,YAFa,MAAM,CAOlB;IAED;;;OAGG;IACH,qBAFa,MAAM,CAOlB;IAED;;;;OAIG;IACH,kBAFY,MAAM,CAIjB;IAED,cAGC;CACJ;iBA9HgB,4BAA4B"}
@@ -12,21 +12,29 @@ function updateElapsedTime(clock) {
12
12
  clock.elapsedTime += delta;
13
13
  }
14
14
 
15
+ /**
16
+ * Construct for keeping track of time
17
+ */
15
18
  class Clock {
16
19
 
17
20
  /**
18
- *
21
+ * In seconds
19
22
  * @type {number}
20
23
  * @private
21
24
  */
22
25
  __lastMeasurement = 0;
23
26
 
24
27
  /**
25
- *
28
+ * In seconds
26
29
  * @type {number}
27
30
  */
28
31
  elapsedTime = 0;
29
32
 
33
+ /**
34
+ * Timestamp when {@link getDelta} was last called
35
+ * In seconds
36
+ * @type {number}
37
+ */
30
38
  timeAtDelta = 0;
31
39
 
32
40
  /**
@@ -39,6 +47,8 @@ class Clock {
39
47
 
40
48
  /**
41
49
  * how fast clock ticks in relation to real time
50
+ * Allows us to slow down or speed up flow of time via modifiers, see {@link Stat} for details
51
+ * Default speed is x1, i.e. - unmodified
42
52
  * @type {Stat}
43
53
  */
44
54
  speed = new Stat(1);
@@ -102,7 +112,8 @@ class Clock {
102
112
  }
103
113
 
104
114
  /**
105
- *
115
+ * Time elapsed so far, since the clock was started
116
+ * Only counts time while running
106
117
  * @return {number}
107
118
  */
108
119
  getElapsedTime() {
@@ -1,12 +0,0 @@
1
- export class ActionUpdateTexture extends Action<any> {
2
- /**
3
- *
4
- * @param {THREE.Texture} texture
5
- */
6
- constructor(texture: THREE.Texture);
7
- __texture: import("three").Texture;
8
- apply(context: any): Promise<void>;
9
- revert(context: any): Promise<void>;
10
- }
11
- import { Action } from "../../../src/core/process/undo/Action.js";
12
- //# sourceMappingURL=ActionUpdateTexture.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionUpdateTexture.d.ts","sourceRoot":"","sources":["ActionUpdateTexture.js"],"names":[],"mappings":"AAEA;IACI;;;OAGG;IACH,qBAFW,MAAM,OAAO,EAMvB;IADG,mCAAwB;IAG5B,mCAEC;IAED,oCAEC;CACJ;uBApBsB,0CAA0C"}
@@ -1,20 +0,0 @@
1
- export class ArrayCopyAction extends Action<any> {
2
- /**
3
- * @template T
4
- * @param {ArrayLike<T>|T[]|Uint8Array|Float32Array} source
5
- * @param {ArrayLike<T>|T[]|Uint8Array|Float32Array} destination
6
- */
7
- constructor(source: Uint8Array | Float32Array | ArrayLike<T> | T[], destination: Uint8Array | Float32Array | ArrayLike<T> | T[]);
8
- __source: Uint8Array | Float32Array | ArrayLike<T> | T[];
9
- __destination: Uint8Array | Float32Array | ArrayLike<T> | T[];
10
- /**
11
- *
12
- * @type {ArrayLike<T>|null}
13
- * @private
14
- */
15
- private __restore_value;
16
- apply(context: any): Promise<void>;
17
- revert(context: any): Promise<void>;
18
- }
19
- import { Action } from "../../../src/core/process/undo/Action.js";
20
- //# sourceMappingURL=ArrayCopyAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArrayCopyAction.d.ts","sourceRoot":"","sources":["ArrayCopyAction.js"],"names":[],"mappings":"AAGA;IACI;;;;OAIG;IACH,iIAYC;IATG,yDAAsB;IACtB,8DAAgC;IAEhC;;;;OAIG;IACH,wBAA2B;IAG/B,mCAUC;IAED,oCAEC;CACJ;uBAtCsB,0CAA0C"}
@@ -1,11 +0,0 @@
1
- export default ComponentRemoveAction;
2
- declare class ComponentRemoveAction extends Action<any> {
3
- constructor(entity: any, componentType: any);
4
- entity: any;
5
- componentType: any;
6
- component: any;
7
- apply(editor: any): Promise<void>;
8
- revert(editor: any): Promise<void>;
9
- }
10
- import { Action } from "../../../src/core/process/undo/Action.js";
11
- //# sourceMappingURL=ComponentRemoveAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentRemoveAction.d.ts","sourceRoot":"","sources":["ComponentRemoveAction.js"],"names":[],"mappings":";AAEA;IACI,6CAMC;IAHG,YAAoB;IACpB,mBAAkC;IAClC,eAAqB;IAGzB,kCAcC;IAED,mCAGC;CACJ;uBA/BsB,0CAA0C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModifyPatchSampler2DAction.d.ts","sourceRoot":"","sources":["ModifyPatchSampler2DAction.js"],"names":[],"mappings":"AAMA;IACI;;;;OAIG;IACH,qBAHW,SAAS,UACT,MAAM,EAAE,EAkClB;IA7BG;;;;OAIG;IACH,kBAAwB;IAExB;;;;OAIG;IACH,iBAAsB;IAKtB;;;OAGG;IACH,aAFU,SAAS,CAEkD;IAErE;;;;OAIG;IACH,oBAAqE;IAGzE,uBAEC;IAED,gBAEC;IAED,gBAEC;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,YACN,MAAM,GACJ,MAAM,CAmBlB;IAED,uBAEC;IAGD,mCAiBC;IAED,oCAWC;CACJ;uBAxHsB,0CAA0C;0BACvC,2DAA2D"}
@@ -1,38 +0,0 @@
1
- export class ModifyPatchTextureArray2DAction extends Action<any> {
2
- /**
3
- *
4
- * @param {number[]|Uint8Array|Uint32Array|Float32Array} data
5
- * @param {number[]} data_resolution
6
- * @param {number[]} bounds
7
- */
8
- constructor(data: number[] | Uint8Array | Uint32Array | Float32Array, data_resolution: number[], bounds: number[]);
9
- __data: number[] | Uint8Array | Uint32Array | Float32Array;
10
- __data_resolution: number[];
11
- __bounds: number[];
12
- /**
13
- * @type {ArrayLike<number>}
14
- * @private
15
- */
16
- private __patch_new;
17
- /**
18
- * @type {ArrayLike<number>}
19
- * @private
20
- */
21
- private __patch_old;
22
- /**
23
- *
24
- * @param {number} center_x
25
- * @param {number} center_y
26
- * @param {Sampler2D} stamp
27
- * @param {number} layer_index
28
- * @param {number} weight
29
- * @param {number} clamp_min
30
- * @param {number} clamp_max
31
- */
32
- applyWeightStampToLayer(center_x: number, center_y: number, stamp: Sampler2D, layer_index: number, weight: number, clamp_min?: number, clamp_max?: number): void;
33
- get patch_data(): ArrayLike<number>;
34
- apply(context: any): Promise<void>;
35
- revert(context: any): Promise<void>;
36
- }
37
- import { Action } from "../../../src/core/process/undo/Action.js";
38
- //# sourceMappingURL=ModifyPatchTextureArray2DAction.d.ts.map
@@ -1,23 +0,0 @@
1
- export default PaintTerrainOverlayAction;
2
- declare class PaintTerrainOverlayAction extends Action<any> {
3
- /**
4
- *
5
- * @param {number} entity
6
- * @param {number} x
7
- * @param {number} y
8
- * @param {Vector4} color
9
- * @constructor
10
- */
11
- constructor(entity: number, x: number, y: number, color: Vector4);
12
- entity: number;
13
- x: number;
14
- y: number;
15
- color: Vector4;
16
- overlay: any;
17
- oldColor: Vector4;
18
- apply(editor: any): Promise<void>;
19
- revert(editor: any): Promise<void>;
20
- }
21
- import { Action } from "../../../src/core/process/undo/Action.js";
22
- import Vector4 from "../../../src/core/geom/Vector4.js";
23
- //# sourceMappingURL=PaintTerrainOverlayAction.d.ts.map
@@ -1,19 +0,0 @@
1
- export class PatchTerrainHeightAction extends ModifyPatchSampler2DAction {
2
- /**
3
- *
4
- * @param {Terrain} terrain
5
- * @param {number} x
6
- * @param {number} y
7
- * @param {number} width
8
- * @param {number} height
9
- */
10
- constructor(terrain: Terrain, x: number, y: number, width: number, height: number);
11
- /**
12
- *
13
- * @type {Terrain}
14
- */
15
- terrain: Terrain;
16
- updateTerrain(): Promise<void>;
17
- }
18
- import { ModifyPatchSampler2DAction } from "./ModifyPatchSampler2DAction.js";
19
- //# sourceMappingURL=PatchTerrainHeightAction.d.ts.map
@@ -1,10 +0,0 @@
1
- export default SelectionRemoveAction;
2
- declare class SelectionRemoveAction extends Action<any> {
3
- constructor(entities: any);
4
- oldState: any;
5
- entities: any;
6
- apply(editor: any): Promise<void>;
7
- revert(editor: any): Promise<void>;
8
- }
9
- import { Action } from "../../../src/core/process/undo/Action.js";
10
- //# sourceMappingURL=SelectionRemoveAction.d.ts.map
@@ -1,15 +0,0 @@
1
- export default WriteGridValueAction;
2
- declare class WriteGridValueAction extends Action<any> {
3
- constructor(entity: any, x: any, y: any, value: any);
4
- entity: any;
5
- x: any;
6
- y: any;
7
- value: any;
8
- obstacle: GridObstacle;
9
- oldValue: number;
10
- apply(editor: any): Promise<void>;
11
- revert(editor: any): Promise<void>;
12
- }
13
- import { Action } from "../../../src/core/process/undo/Action.js";
14
- import GridObstacle from "../../../src/engine/grid/obstacle/GridObstacle.js";
15
- //# sourceMappingURL=WriteGridValueAction.d.ts.map