@woosh/meep-engine 2.129.4 → 2.130.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.
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Pure JavaScript game engine. Fully featured and production ready.",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.129.4",
8
+ "version": "2.130.0",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -19,6 +19,8 @@ export class Deque<T> {
19
19
 
20
20
  getLast(): T | undefined
21
21
 
22
+ getElementByIndex(index: number): T | undefined
23
+
22
24
  pop(): T
23
25
 
24
26
  add(e: T): void
@@ -30,4 +32,6 @@ export class Deque<T> {
30
32
  addLast(e: T): void
31
33
 
32
34
  removeLast(): T
35
+
36
+ toArray(result?:T[], result_offset?:number):T[]
33
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NodeInstancePortReference.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/NodeInstancePortReference.js"],"names":[],"mappings":"AASA;;GAEG;AACH;IAgFI;;;;;OAKG;IACH,iDAFa,yBAAyB,CAUrC;IA5FD;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,gCAAgB;IAEhB;;;OAGG;IACH,oBAAY;IAEZ;;;;;OAKG;IACH,sBAFU,YAAY,CAEL;IAEjB;;;OAGG;IACH,mCAEC;IAED;;;OAGG;IACH,kCAEC;IAED;;;OAGG;IACH,kBAFY,OAAO,CAIlB;IAED;;;;;OAKG;IACH,oCAHW,MAAM,GACJ,OAAO,CAqBnB;IAmBD;;;;OAIG;IACH,8CAWC;IAED;;;OAGG;IACH,QAFY,MAAM,CAOjB;IAED;;;;OAIG;IACH,cAHW,yBAAyB,GACvB,OAAO,CAMnB;IAED,mBAEC;IAGL;;;OAGG;IACH,sCAFU,OAAO,CAE8C;CAN9D"}
1
+ {"version":3,"file":"NodeInstancePortReference.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/NodeInstancePortReference.js"],"names":[],"mappings":"AASA;;GAEG;AACH;IAkFI;;;;;OAKG;IACH,iDAFa,yBAAyB,CAUrC;IA9FD;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,gCAAgB;IAEhB;;;OAGG;IACH,oBAAY;IAEZ;;;;;OAKG;IACH,sBAFU,YAAY,CAEL;IAEjB;;;OAGG;IACH,mCAEC;IAED;;;OAGG;IACH,kCAEC;IAED;;;;;OAKG;IACH,kBAFY,OAAO,CAIlB;IAED;;;;;OAKG;IACH,oCAHW,MAAM,GACJ,OAAO,CAqBnB;IAmBD;;;;OAIG;IACH,8CAWC;IAED;;;OAGG;IACH,QAFY,MAAM,CAOjB;IAED;;;;OAIG;IACH,cAHW,yBAAyB,GACvB,OAAO,CAMnB;IAED,mBAEC;IAGL;;;OAGG;IACH,sCAFU,OAAO,CAE8C;CAN9D"}
@@ -55,6 +55,8 @@ export class NodeInstancePortReference {
55
55
  }
56
56
 
57
57
  /**
58
+ * Is anything connected to this endpoint?
59
+ * Shortcut for `connections.length > 0`
58
60
  *
59
61
  * @return {boolean}
60
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BinaryClassSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;IAEI;;;;OAIG;IACH,0BAAa;IAEb;;;;;;OAMG;IACH,mBAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,qBAEC;IAED;;;;OAIG;IACH,cAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,iCAEC;IAED;;;;;OAKG;IACH,iBAEC;IAED;;;;;;OAMG;IACH,uCAFW,CAAC,QAIX;IAED;;;;;;OAMG;IACH,yCAFW,CAAC,QAIX;IAGL;;;OAGG;IACH,4CAFU,OAAO,CAE0D;CAN1E"}
1
+ {"version":3,"file":"BinaryClassSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;IAEI;;;;;;;OAOG;IACH,0BAAa;IAEb;;;;;;OAMG;IACH,mBAFU,MAAM,CAEJ;IAEZ;;;;;OAKG;IACH,iCAEC;IAED;;;;;OAKG;IACH,iBAEC;IAED;;;;;;OAMG;IACH,uCAFW,CAAC,QAIX;IAED;;;;;;OAMG;IACH,yCAFW,CAAC,QAIX;IAGL;;;OAGG;IACH,4CAFU,OAAO,CAE0D;CAN1E"}
@@ -1,15 +1,41 @@
1
1
  /**
2
- * Defines how to serialize and deserialize an instance of a given class
2
+ * Defines how to serialize and deserialize an instance of a given class.
3
+ * This class is intended to be overridden.
3
4
  *
4
5
  * @template T
5
6
  *
7
+ * @example
8
+ * class BookSerializer extends BinaryClassSerializationAdapter{
9
+ * klass = Book
10
+ * version = 0
11
+ *
12
+ * serialize(buffer: BinaryBuffer, book: Book){
13
+ *
14
+ * buffer.writeUTF8String(book.title);
15
+ * buffer.writeUint32(book.page_count);
16
+ * buffer.writeUTF8String(book.text);
17
+ *
18
+ * }
19
+ *
20
+ * deserialize(buffer: BinaryBuffer, book: Book){
21
+ *
22
+ * book.title = buffer.readUTF8String();
23
+ * book.page_count = buffer.readUint32();
24
+ * book.text = buffer.readUTF8String();
25
+ *
26
+ * }
27
+ * }
28
+ *
6
29
  * @author Alex Goldring
7
30
  * @copyright Company Named Limited (c) 2025
8
31
  */
9
32
  export class BinaryClassSerializationAdapter {
10
33
 
11
34
  /**
12
- * Class that this adapter handles
35
+ * Class that this adapter handles.
36
+ * NOTE: misspelling of the word "class" is intentional, in JavaScript "class" is a reserved word.
37
+ * @example
38
+ * klass = Vector3
13
39
  * @protected
14
40
  * @type {Class<T>}
15
41
  */
@@ -24,23 +50,6 @@ export class BinaryClassSerializationAdapter {
24
50
  */
25
51
  version = 0;
26
52
 
27
- /**
28
- * @deprecated use {@link this.klass}
29
- * @returns {Class<T>}
30
- */
31
- getClass() {
32
- return this.klass;
33
- }
34
-
35
- /**
36
- * @deprecated use {@link this.version}
37
- *
38
- * @returns {number}
39
- */
40
- getVersion() {
41
- return this.version;
42
- }
43
-
44
53
  /**
45
54
  * Invoked externally as part of the serialization lifecycle.
46
55
  * Guaranteed to be invoked before the first usage of the adapter.
@@ -46,7 +46,7 @@ export class BinarySerializationRegistry {
46
46
  let _className = className;
47
47
 
48
48
  if (_className === undefined) {
49
- const klass = adapter.getClass();
49
+ const klass = adapter.klass;
50
50
 
51
51
  const typeName = klass.typeName;
52
52
 
@@ -100,9 +100,9 @@ export class BinaryCollectionDeSerializer {
100
100
  getElementClass(): Class<T> | null;
101
101
  /**
102
102
  *
103
- * @param {function(string,Class, BinaryClassSerializationAdapter):[]} [adapterOptionsSupplier]
103
+ * @param {function(name:string, klass: Class, adapter:BinaryClassSerializationAdapter):[]} [adapterOptionsSupplier]
104
104
  */
105
- initialize({ adapterOptionsSupplier }?: (arg0: string, arg1: Class, arg2: BinaryClassSerializationAdapter) => []): void;
105
+ initialize({ adapterOptionsSupplier }?: (arg0: void) => string): void;
106
106
  finalize(): void;
107
107
  /**
108
108
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"BinaryCollectionDeSerializer.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH;IAEI;;;OAGG;IACH,iBAAgB;IAEhB;;;OAGG;IACH,eAAc;IAEd;;;;OAIG;IACH,4BAA4B;IAC5B;;;;OAIG;IACH,0BAA0B;IAE1B;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,gBAAe;IAEf;;;OAGG;IACH,kBAAiB;IAEjB;;;;OAIG;IACH,yBAAsC;IACtC;;;;OAIG;IACH,yBAAsC;IAEtC;;;OAGG;IACH,cAAsB;IAGtB;;;OAGG;IACH,yDAKC;IAED;;;OAGG;IACH,2CAEC;IAED;;;OAGG;IACH,kBAFW,YAAY,QAOtB;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAFa,WAAS,IAAI,CAUzB;IAED;;;OAGG;IACH,+CAFoB,MAAM,yDAAyC,EAAE,QAgFpE;IAED,iBAWC;IAED;;;OAGG;IACH,uBAeC;IAED;;;OAGG;IACH;;aAF6B,MAAM;MA8DlC;CAEJ;6BAvV4B,4CAA4C"}
1
+ {"version":3,"file":"BinaryCollectionDeSerializer.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH;IAEI;;;OAGG;IACH,iBAAgB;IAEhB;;;OAGG;IACH,eAAc;IAEd;;;;OAIG;IACH,4BAA4B;IAC5B;;;;OAIG;IACH,0BAA0B;IAE1B;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,gBAAe;IAEf;;;OAGG;IACH,kBAAiB;IAEjB;;;;OAIG;IACH,yBAAsC;IACtC;;;;OAIG;IACH,yBAAsC;IAEtC;;;OAGG;IACH,cAAsB;IAGtB;;;OAGG;IACH,yDAKC;IAED;;;OAGG;IACH,2CAEC;IAED;;;OAGG;IACH,kBAFW,YAAY,QAOtB;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAFa,WAAS,IAAI,CAUzB;IAED;;;OAGG;IACH,wDAFyB,MAAM,QAgF9B;IAED,iBAWC;IAED;;;OAGG;IACH,uBAeC;IAED;;;OAGG;IACH;;aAF6B,MAAM;MA8DlC;CAEJ;6BAvV4B,4CAA4C"}
@@ -155,12 +155,12 @@ export class BinaryCollectionDeSerializer {
155
155
  return null;
156
156
  }
157
157
 
158
- return adapter.getClass();
158
+ return adapter.klass;
159
159
  }
160
160
 
161
161
  /**
162
162
  *
163
- * @param {function(string,Class, BinaryClassSerializationAdapter):[]} [adapterOptionsSupplier]
163
+ * @param {function(name:string, klass: Class, adapter:BinaryClassSerializationAdapter):[]} [adapterOptionsSupplier]
164
164
  */
165
165
  initialize({ adapterOptionsSupplier = returnEmptyArray } = {}) {
166
166
  assert.isFunction(adapterOptionsSupplier, 'adapterOptionsSupplier');
@@ -186,7 +186,7 @@ export class BinaryCollectionDeSerializer {
186
186
 
187
187
  this.adapter = adapter;
188
188
 
189
- const adapterOptions = adapterOptionsSupplier(className, adapter.getClass(), adapter);
189
+ const adapterOptions = adapterOptionsSupplier(className, adapter.klass, adapter);
190
190
 
191
191
  assert.isArray(adapterOptions, 'adapterOptions');
192
192
 
@@ -212,18 +212,18 @@ export class BinaryCollectionDeSerializer {
212
212
  this.elementIndex = 0;
213
213
 
214
214
  //check if data needs to be upgraded
215
- if (version > adapter.getVersion()) {
216
- throw new Error(`${className} data version is ${version}, which is greater than the registered serialization adapter version(=${adapter.getVersion()})`);
215
+ if (version > adapter.version) {
216
+ throw new Error(`${className} data version is ${version}, which is greater than the registered serialization adapter version(=${(adapter.version)})`);
217
217
  }
218
218
 
219
- if (version < adapter.getVersion()) {
219
+ if (version < adapter.version) {
220
220
  this.__upgradeRequired = true;
221
221
 
222
222
  //data needs to be upgraded
223
- const upgradersChain = registry.getUpgradersChain(className, version, adapter.getVersion());
223
+ const upgradersChain = registry.getUpgradersChain(className, version, adapter.version);
224
224
 
225
225
  if (upgradersChain === null) {
226
- throw new Error(`No upgrade chain exists for class '${className}' from version ${version} to current adapter version ${adapter.getVersion()}`);
226
+ throw new Error(`No upgrade chain exists for class '${className}' from version ${version} to current adapter version ${(adapter.version)}`);
227
227
  }
228
228
 
229
229
  this.upgraders = upgradersChain;
@@ -267,7 +267,7 @@ export class BinaryCollectionDeSerializer {
267
267
  buffer = executeBinaryClassUpgraderChain(this.upgraders, buffer, this.__upgradeBuffer0, this.__upgradeBuffer1);
268
268
  }
269
269
 
270
- const Klass = this.adapter.getClass();
270
+ const Klass = this.adapter.klass;
271
271
 
272
272
  const value = new Klass();
273
273
 
@@ -135,7 +135,7 @@ export class BinaryCollectionSerializer {
135
135
 
136
136
  this.adapter = adapter;
137
137
 
138
- const adapterOptions = adapterOptionsSupplier(className, adapter.getClass(), adapter);
138
+ const adapterOptions = adapterOptionsSupplier(className, adapter.klass, adapter);
139
139
 
140
140
  assert.isArray(adapterOptions, 'adapterOptions');
141
141
 
@@ -160,7 +160,7 @@ export class BinaryCollectionSerializer {
160
160
 
161
161
  this.startAddress = buffer.position;
162
162
 
163
- const componentType = adapter.getClass();
163
+ const componentType = adapter.klass;
164
164
 
165
165
  //determine if dictionary can be used
166
166
  this.__dictionaryEnabled = typeof componentType.prototype.hash === "function"
@@ -182,7 +182,7 @@ export class BinaryCollectionSerializer {
182
182
  const headerValues = [];
183
183
 
184
184
  headerValues[BinaryCollectionHeaderLayout.Dictionary] = this.__dictionaryEnabled ? 1 : 0;
185
- headerValues[BinaryCollectionHeaderLayout.Version] = this.adapter.getVersion();
185
+ headerValues[BinaryCollectionHeaderLayout.Version] = this.adapter.version;
186
186
 
187
187
  const header = BinaryCollectionHeaderCodec.encode.apply(null, headerValues);
188
188
 
@@ -74,7 +74,7 @@ export class BinaryObjectSerializationAdapter {
74
74
  }
75
75
 
76
76
  buffer.writeUTF8String(className);
77
- buffer.writeUintVar(adapter.getVersion());
77
+ buffer.writeUintVar(adapter.version);
78
78
 
79
79
  adapter.initialize(this);
80
80
 
@@ -103,7 +103,7 @@ export class BinaryObjectSerializationAdapter {
103
103
  //serialization format version
104
104
  const version = buffer.readUintVar();
105
105
 
106
- const adapterVersion = adapter.getVersion();
106
+ const adapterVersion = adapter.version;
107
107
 
108
108
  if (version !== adapterVersion) {
109
109
  //upgrade is required
@@ -117,7 +117,7 @@ export class BinaryObjectSerializationAdapter {
117
117
  buffer = executeBinaryClassUpgraderChain(upgradersChain, buffer, this.__upgradeBuffer0, this.__upgradeBuffer1);
118
118
  }
119
119
 
120
- const Klass = adapter.getClass();
120
+ const Klass = adapter.klass;
121
121
 
122
122
  const value = new Klass();
123
123