@lagless/core 0.0.36 → 0.0.39
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/LICENSE +26 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/lib/di/di-container.d.ts +7 -0
- package/dist/lib/di/di-container.d.ts.map +1 -0
- package/dist/lib/di/di-decorators.d.ts +4 -0
- package/dist/lib/di/di-decorators.d.ts.map +1 -0
- package/dist/lib/di/index.d.ts +3 -0
- package/dist/lib/di/index.d.ts.map +1 -0
- package/dist/lib/ecs-config.d.ts +16 -0
- package/dist/lib/ecs-config.d.ts.map +1 -0
- package/dist/lib/ecs-runner.d.ts +20 -0
- package/dist/lib/ecs-runner.d.ts.map +1 -0
- package/dist/lib/ecs-runner.js +8 -2
- package/dist/lib/ecs-runner.js.map +1 -1
- package/dist/lib/ecs-simulation.d.ts +64 -0
- package/dist/lib/ecs-simulation.d.ts.map +1 -0
- package/dist/lib/ecs-simulation.js +57 -1
- package/dist/lib/ecs-simulation.js.map +1 -1
- package/dist/lib/hash-verification/abstract-hash-verification.system.d.ts +32 -0
- package/dist/lib/hash-verification/abstract-hash-verification.system.d.ts.map +1 -0
- package/dist/lib/hash-verification/abstract-hash-verification.system.js +5 -0
- package/dist/lib/hash-verification/abstract-hash-verification.system.js.map +1 -1
- package/dist/lib/hash-verification/create-hash-reporter.d.ts +16 -0
- package/dist/lib/hash-verification/create-hash-reporter.d.ts.map +1 -0
- package/dist/lib/hash-verification/create-hash-reporter.js +11 -8
- package/dist/lib/hash-verification/create-hash-reporter.js.map +1 -1
- package/dist/lib/hash-verification/divergence.signal.d.ts +11 -0
- package/dist/lib/hash-verification/divergence.signal.d.ts.map +1 -0
- package/dist/lib/hash-verification/index.d.ts +4 -0
- package/dist/lib/hash-verification/index.d.ts.map +1 -0
- package/dist/lib/input/abstract-input-provider.d.ts +62 -0
- package/dist/lib/input/abstract-input-provider.d.ts.map +1 -0
- package/dist/lib/input/abstract-input-provider.js +8 -1
- package/dist/lib/input/abstract-input-provider.js.map +1 -1
- package/dist/lib/input/index.d.ts +8 -0
- package/dist/lib/input/index.d.ts.map +1 -0
- package/dist/lib/input/input-provider-di-token.d.ts +7 -0
- package/dist/lib/input/input-provider-di-token.d.ts.map +1 -0
- package/dist/lib/input/input-provider-di-token.js +3 -0
- package/dist/lib/input/input-provider-di-token.js.map +1 -1
- package/dist/lib/input/input-registry.d.ts +8 -0
- package/dist/lib/input/input-registry.d.ts.map +1 -0
- package/dist/lib/input/local-input-provider.d.ts +7 -0
- package/dist/lib/input/local-input-provider.d.ts.map +1 -0
- package/dist/lib/input/local-input-provider.js +5 -0
- package/dist/lib/input/local-input-provider.js.map +1 -1
- package/dist/lib/input/replay-input-provider.d.ts +13 -0
- package/dist/lib/input/replay-input-provider.d.ts.map +1 -0
- package/dist/lib/input/replay-input-provider.js +5 -0
- package/dist/lib/input/replay-input-provider.js.map +1 -1
- package/dist/lib/input/rpc-history.d.ts +40 -0
- package/dist/lib/input/rpc-history.d.ts.map +1 -0
- package/dist/lib/input/rpc.d.ts +8 -0
- package/dist/lib/input/rpc.d.ts.map +1 -0
- package/dist/lib/mem/abstract-memory.interface.d.ts +6 -0
- package/dist/lib/mem/abstract-memory.interface.d.ts.map +1 -0
- package/dist/lib/mem/index.d.ts +5 -0
- package/dist/lib/mem/index.d.ts.map +1 -0
- package/dist/lib/mem/managers/components-manager.d.ts +15 -0
- package/dist/lib/mem/managers/components-manager.d.ts.map +1 -0
- package/dist/lib/mem/managers/entities-manager.d.ts +32 -0
- package/dist/lib/mem/managers/entities-manager.d.ts.map +1 -0
- package/dist/lib/mem/managers/entities-manager.js +65 -23
- package/dist/lib/mem/managers/entities-manager.js.map +1 -1
- package/dist/lib/mem/managers/filters-manager.d.ts +17 -0
- package/dist/lib/mem/managers/filters-manager.d.ts.map +1 -0
- package/dist/lib/mem/managers/filters-manager.js +19 -4
- package/dist/lib/mem/managers/filters-manager.js.map +1 -1
- package/dist/lib/mem/managers/player-resources-manager.d.ts +21 -0
- package/dist/lib/mem/managers/player-resources-manager.d.ts.map +1 -0
- package/dist/lib/mem/managers/prng-manager.d.ts +36 -0
- package/dist/lib/mem/managers/prng-manager.d.ts.map +1 -0
- package/dist/lib/mem/managers/singletons-manager.d.ts +13 -0
- package/dist/lib/mem/managers/singletons-manager.d.ts.map +1 -0
- package/dist/lib/mem/managers/tick-manager.d.ts +10 -0
- package/dist/lib/mem/managers/tick-manager.d.ts.map +1 -0
- package/dist/lib/mem/mem.d.ts +28 -0
- package/dist/lib/mem/mem.d.ts.map +1 -0
- package/dist/lib/mem/mem.js +4 -2
- package/dist/lib/mem/mem.js.map +1 -1
- package/dist/lib/prefab.d.ts +16 -0
- package/dist/lib/prefab.d.ts.map +1 -0
- package/dist/lib/signals/event-emitter.d.ts +9 -0
- package/dist/lib/signals/event-emitter.d.ts.map +1 -0
- package/dist/lib/signals/signal.d.ts +41 -0
- package/dist/lib/signals/signal.d.ts.map +1 -0
- package/dist/lib/signals/signal.js +34 -34
- package/dist/lib/signals/signal.js.map +1 -1
- package/dist/lib/signals/signals.registry.d.ts +9 -0
- package/dist/lib/signals/signals.registry.d.ts.map +1 -0
- package/dist/lib/signals/signals.registry.js +2 -2
- package/dist/lib/signals/signals.registry.js.map +1 -1
- package/dist/lib/types/abstract-filter.d.ts +17 -0
- package/dist/lib/types/abstract-filter.d.ts.map +1 -0
- package/dist/lib/types/abstract-filter.js +22 -21
- package/dist/lib/types/abstract-filter.js.map +1 -1
- package/dist/lib/types/ecs-types.d.ts +111 -0
- package/dist/lib/types/ecs-types.d.ts.map +1 -0
- package/dist/lib/types/ecs-types.js.map +1 -1
- package/dist/lib/types/index.d.ts +3 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/package.json +5 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/signals/signals.registry.ts"],"sourcesContent":["import { Signal } from './signal.js';\n\nexport class SignalsRegistry {\n private readonly _signals: Signal[] = [];\n\n public init(signals: Signal[]): void {\n if (this._signals.length !== 0) {\n throw new Error('Signals already registered');\n }\n for (const signal of signals) {\n this._signals.push(signal);\n }\n }\n\n public onTick(
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/signals/signals.registry.ts"],"sourcesContent":["import { Signal } from './signal.js';\n\nexport class SignalsRegistry {\n private readonly _signals: Signal[] = [];\n\n public init(signals: Signal[]): void {\n if (this._signals.length !== 0) {\n throw new Error('Signals already registered');\n }\n for (const signal of signals) {\n this._signals.push(signal);\n }\n }\n\n public onTick(verifiedTick: number): void {\n for (const signal of this._signals) {\n signal._onTick(verifiedTick);\n }\n }\n\n public onBeforeRollback(toTick: number): void {\n for (const signal of this._signals) {\n signal._onBeforeRollback(toTick);\n }\n }\n\n public dispose(): void {\n for (const signal of this._signals) {\n signal.dispose();\n }\n this._signals.length = 0;\n }\n}\n"],"names":["SignalsRegistry","init","signals","_signals","length","Error","signal","push","onTick","verifiedTick","_onTick","onBeforeRollback","toTick","_onBeforeRollback","dispose"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAO,MAAMA;IAGJC,KAAKC,OAAiB,EAAQ;QACnC,IAAI,IAAI,CAACC,QAAQ,CAACC,MAAM,KAAK,GAAG;YAC9B,MAAM,IAAIC,MAAM;QAClB;QACA,KAAK,MAAMC,UAAUJ,QAAS;YAC5B,IAAI,CAACC,QAAQ,CAACI,IAAI,CAACD;QACrB;IACF;IAEOE,OAAOC,YAAoB,EAAQ;QACxC,KAAK,MAAMH,UAAU,IAAI,CAACH,QAAQ,CAAE;YAClCG,OAAOI,OAAO,CAACD;QACjB;IACF;IAEOE,iBAAiBC,MAAc,EAAQ;QAC5C,KAAK,MAAMN,UAAU,IAAI,CAACH,QAAQ,CAAE;YAClCG,OAAOO,iBAAiB,CAACD;QAC3B;IACF;IAEOE,UAAgB;QACrB,KAAK,MAAMR,UAAU,IAAI,CAACH,QAAQ,CAAE;YAClCG,OAAOQ,OAAO;QAChB;QACA,IAAI,CAACX,QAAQ,CAACC,MAAM,GAAG;IACzB;;aA5BiBD,WAAqB,EAAE;;AA6B1C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MemoryTracker } from '@lagless/binary';
|
|
2
|
+
export declare abstract class AbstractFilter {
|
|
3
|
+
private readonly _maxEntities;
|
|
4
|
+
abstract readonly includeMask: number[];
|
|
5
|
+
abstract readonly excludeMask: number[];
|
|
6
|
+
protected readonly _length: Uint32Array;
|
|
7
|
+
protected readonly _entities: Uint32Array;
|
|
8
|
+
protected readonly _entityToIndex: Uint32Array;
|
|
9
|
+
constructor(_maxEntities: number, buffer: ArrayBuffer, memoryTracker: MemoryTracker);
|
|
10
|
+
static calculateSize(maxEntities: number, memoryTracker: MemoryTracker): void;
|
|
11
|
+
get length(): number;
|
|
12
|
+
protected set length(value: number);
|
|
13
|
+
addEntityToFilter(entity: number): void;
|
|
14
|
+
removeEntityFromFilter(entity: number): void;
|
|
15
|
+
[Symbol.iterator](): IterableIterator<number>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=abstract-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-filter.d.ts","sourceRoot":"","sources":["../../../src/lib/types/abstract-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,8BAAsB,cAAc;IAQtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAPzC,kBAAyB,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/C,kBAAyB,WAAW,EAAE,MAAM,EAAE,CAAC;IAE/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;gBAElB,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa;WAYtF,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;IAM7E,IAAW,MAAM,IAIW,MAAM,CAFjC;IAED,SAAS,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,EAKjC;IAEM,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiBpC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC;CAKtD"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
const NOT_IN_FILTER = 0xFFFFFFFF;
|
|
1
2
|
export class AbstractFilter {
|
|
2
3
|
static calculateSize(maxEntities, memoryTracker) {
|
|
3
|
-
memoryTracker.add(Uint32Array.BYTES_PER_ELEMENT); //
|
|
4
|
-
memoryTracker.add(maxEntities * Uint32Array.BYTES_PER_ELEMENT);
|
|
4
|
+
memoryTracker.add(Uint32Array.BYTES_PER_ELEMENT); // length
|
|
5
|
+
memoryTracker.add(maxEntities * Uint32Array.BYTES_PER_ELEMENT); // dense entities
|
|
6
|
+
memoryTracker.add(maxEntities * Uint32Array.BYTES_PER_ELEMENT); // reverse index
|
|
5
7
|
}
|
|
6
8
|
get length() {
|
|
7
9
|
return this._length[0];
|
|
@@ -13,28 +15,24 @@ export class AbstractFilter {
|
|
|
13
15
|
this._length[0] = value;
|
|
14
16
|
}
|
|
15
17
|
addEntityToFilter(entity) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.
|
|
21
|
-
this.length++;
|
|
18
|
+
if (entity >= this._maxEntities || this._entityToIndex[entity] !== NOT_IN_FILTER) return;
|
|
19
|
+
const idx = this._length[0];
|
|
20
|
+
this._entities[idx] = entity;
|
|
21
|
+
this._entityToIndex[entity] = idx;
|
|
22
|
+
this._length[0] = idx + 1;
|
|
22
23
|
}
|
|
23
24
|
removeEntityFromFilter(entity) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (entityIdx === -1) return; // Not in filter
|
|
33
|
-
const lastIndex = this.length - 1;
|
|
34
|
-
if (entityIdx !== lastIndex) {
|
|
35
|
-
this._entities[entityIdx] = this._entities[lastIndex];
|
|
25
|
+
if (entity >= this._maxEntities) return;
|
|
26
|
+
const idx = this._entityToIndex[entity];
|
|
27
|
+
if (idx === NOT_IN_FILTER) return;
|
|
28
|
+
const lastIdx = this._length[0] - 1;
|
|
29
|
+
if (idx !== lastIdx) {
|
|
30
|
+
const lastEntity = this._entities[lastIdx];
|
|
31
|
+
this._entities[idx] = lastEntity;
|
|
32
|
+
this._entityToIndex[lastEntity] = idx;
|
|
36
33
|
}
|
|
37
|
-
this.
|
|
34
|
+
this._entityToIndex[entity] = NOT_IN_FILTER;
|
|
35
|
+
this._length[0] = lastIdx;
|
|
38
36
|
}
|
|
39
37
|
*[Symbol.iterator]() {
|
|
40
38
|
for(let i = 0; i < this.length; i++){
|
|
@@ -47,6 +45,9 @@ export class AbstractFilter {
|
|
|
47
45
|
memoryTracker.add(this._length.byteLength);
|
|
48
46
|
this._entities = new Uint32Array(buffer, memoryTracker.ptr, this._maxEntities);
|
|
49
47
|
memoryTracker.add(this._entities.byteLength);
|
|
48
|
+
this._entityToIndex = new Uint32Array(buffer, memoryTracker.ptr, this._maxEntities);
|
|
49
|
+
this._entityToIndex.fill(NOT_IN_FILTER);
|
|
50
|
+
memoryTracker.add(this._entityToIndex.byteLength);
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/types/abstract-filter.ts"],"sourcesContent":["import { MemoryTracker } from '@lagless/binary';\n\nexport abstract class AbstractFilter {\n public readonly abstract includeMask: number;\n public readonly abstract excludeMask: number;\n\n protected readonly _length: Uint32Array;\n protected readonly _entities: Uint32Array;\n\n constructor(private readonly _maxEntities: number, buffer: ArrayBuffer, memoryTracker: MemoryTracker) {\n this._length = new Uint32Array(buffer, memoryTracker.ptr, 1);\n memoryTracker.add(this._length.byteLength);\n this._entities = new Uint32Array(buffer, memoryTracker.ptr, this._maxEntities);\n memoryTracker.add(this._entities.byteLength);\n }\n\n public static calculateSize(maxEntities: number, memoryTracker: MemoryTracker) {\n memoryTracker.add(Uint32Array.BYTES_PER_ELEMENT); //
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/abstract-filter.ts"],"sourcesContent":["import { MemoryTracker } from '@lagless/binary';\n\nconst NOT_IN_FILTER = 0xFFFFFFFF;\n\nexport abstract class AbstractFilter {\n public readonly abstract includeMask: number[];\n public readonly abstract excludeMask: number[];\n\n protected readonly _length: Uint32Array;\n protected readonly _entities: Uint32Array;\n protected readonly _entityToIndex: Uint32Array;\n\n constructor(private readonly _maxEntities: number, buffer: ArrayBuffer, memoryTracker: MemoryTracker) {\n this._length = new Uint32Array(buffer, memoryTracker.ptr, 1);\n memoryTracker.add(this._length.byteLength);\n\n this._entities = new Uint32Array(buffer, memoryTracker.ptr, this._maxEntities);\n memoryTracker.add(this._entities.byteLength);\n\n this._entityToIndex = new Uint32Array(buffer, memoryTracker.ptr, this._maxEntities);\n this._entityToIndex.fill(NOT_IN_FILTER);\n memoryTracker.add(this._entityToIndex.byteLength);\n }\n\n public static calculateSize(maxEntities: number, memoryTracker: MemoryTracker) {\n memoryTracker.add(Uint32Array.BYTES_PER_ELEMENT); // length\n memoryTracker.add(maxEntities * Uint32Array.BYTES_PER_ELEMENT); // dense entities\n memoryTracker.add(maxEntities * Uint32Array.BYTES_PER_ELEMENT); // reverse index\n }\n\n public get length() {\n return this._length[0];\n }\n\n protected set length(value: number) {\n if (value < 0 || value > this._entities.length) {\n throw new Error('Invalid length value');\n }\n this._length[0] = value;\n }\n\n public addEntityToFilter(entity: number) {\n if (entity >= this._maxEntities || this._entityToIndex[entity] !== NOT_IN_FILTER) return;\n\n const idx = this._length[0];\n this._entities[idx] = entity;\n this._entityToIndex[entity] = idx;\n this._length[0] = idx + 1;\n }\n\n public removeEntityFromFilter(entity: number) {\n if (entity >= this._maxEntities) return;\n const idx = this._entityToIndex[entity];\n if (idx === NOT_IN_FILTER) return;\n\n const lastIdx = this._length[0] - 1;\n\n if (idx !== lastIdx) {\n const lastEntity = this._entities[lastIdx];\n this._entities[idx] = lastEntity;\n this._entityToIndex[lastEntity] = idx;\n }\n\n this._entityToIndex[entity] = NOT_IN_FILTER;\n this._length[0] = lastIdx;\n }\n\n public *[Symbol.iterator](): IterableIterator<number> {\n for (let i = 0; i < this.length; i++) {\n yield this._entities[i];\n }\n }\n}\n"],"names":["NOT_IN_FILTER","AbstractFilter","calculateSize","maxEntities","memoryTracker","add","Uint32Array","BYTES_PER_ELEMENT","length","_length","value","_entities","Error","addEntityToFilter","entity","_maxEntities","_entityToIndex","idx","removeEntityFromFilter","lastIdx","lastEntity","Symbol","iterator","i","constructor","buffer","ptr","byteLength","fill"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,MAAMA,gBAAgB;AAEtB,OAAO,MAAeC;IAoBpB,OAAcC,cAAcC,WAAmB,EAAEC,aAA4B,EAAE;QAC7EA,cAAcC,GAAG,CAACC,YAAYC,iBAAiB,GAAG,SAAS;QAC3DH,cAAcC,GAAG,CAACF,cAAcG,YAAYC,iBAAiB,GAAG,iBAAiB;QACjFH,cAAcC,GAAG,CAACF,cAAcG,YAAYC,iBAAiB,GAAG,gBAAgB;IAClF;IAEA,IAAWC,SAAS;QAClB,OAAO,IAAI,CAACC,OAAO,CAAC,EAAE;IACxB;IAEA,IAAcD,OAAOE,KAAa,EAAE;QAClC,IAAIA,QAAQ,KAAKA,QAAQ,IAAI,CAACC,SAAS,CAACH,MAAM,EAAE;YAC9C,MAAM,IAAII,MAAM;QAClB;QACA,IAAI,CAACH,OAAO,CAAC,EAAE,GAAGC;IACpB;IAEOG,kBAAkBC,MAAc,EAAE;QACvC,IAAIA,UAAU,IAAI,CAACC,YAAY,IAAI,IAAI,CAACC,cAAc,CAACF,OAAO,KAAKd,eAAe;QAElF,MAAMiB,MAAM,IAAI,CAACR,OAAO,CAAC,EAAE;QAC3B,IAAI,CAACE,SAAS,CAACM,IAAI,GAAGH;QACtB,IAAI,CAACE,cAAc,CAACF,OAAO,GAAGG;QAC9B,IAAI,CAACR,OAAO,CAAC,EAAE,GAAGQ,MAAM;IAC1B;IAEOC,uBAAuBJ,MAAc,EAAE;QAC5C,IAAIA,UAAU,IAAI,CAACC,YAAY,EAAE;QACjC,MAAME,MAAM,IAAI,CAACD,cAAc,CAACF,OAAO;QACvC,IAAIG,QAAQjB,eAAe;QAE3B,MAAMmB,UAAU,IAAI,CAACV,OAAO,CAAC,EAAE,GAAG;QAElC,IAAIQ,QAAQE,SAAS;YACnB,MAAMC,aAAa,IAAI,CAACT,SAAS,CAACQ,QAAQ;YAC1C,IAAI,CAACR,SAAS,CAACM,IAAI,GAAGG;YACtB,IAAI,CAACJ,cAAc,CAACI,WAAW,GAAGH;QACpC;QAEA,IAAI,CAACD,cAAc,CAACF,OAAO,GAAGd;QAC9B,IAAI,CAACS,OAAO,CAAC,EAAE,GAAGU;IACpB;IAEA,CAAQ,CAACE,OAAOC,QAAQ,CAAC,GAA6B;QACpD,IAAK,IAAIC,IAAI,GAAGA,IAAI,IAAI,CAACf,MAAM,EAAEe,IAAK;YACpC,MAAM,IAAI,CAACZ,SAAS,CAACY,EAAE;QACzB;IACF;IA3DAC,YAAY,AAAiBT,YAAoB,EAAEU,MAAmB,EAAErB,aAA4B,CAAE;aAAzEW,eAAAA;QAC3B,IAAI,CAACN,OAAO,GAAG,IAAIH,YAAYmB,QAAQrB,cAAcsB,GAAG,EAAE;QAC1DtB,cAAcC,GAAG,CAAC,IAAI,CAACI,OAAO,CAACkB,UAAU;QAEzC,IAAI,CAAChB,SAAS,GAAG,IAAIL,YAAYmB,QAAQrB,cAAcsB,GAAG,EAAE,IAAI,CAACX,YAAY;QAC7EX,cAAcC,GAAG,CAAC,IAAI,CAACM,SAAS,CAACgB,UAAU;QAE3C,IAAI,CAACX,cAAc,GAAG,IAAIV,YAAYmB,QAAQrB,cAAcsB,GAAG,EAAE,IAAI,CAACX,YAAY;QAClF,IAAI,CAACC,cAAc,CAACY,IAAI,CAAC5B;QACzBI,cAAcC,GAAG,CAAC,IAAI,CAACW,cAAc,CAACW,UAAU;IAClD;AAkDF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { InputFieldDefinition, MemoryTracker, TypedArray, TypedArrayConstructor } from '@lagless/binary';
|
|
2
|
+
import { AbstractFilter } from './abstract-filter.js';
|
|
3
|
+
export interface FieldDefinition {
|
|
4
|
+
type: string;
|
|
5
|
+
isArray: boolean;
|
|
6
|
+
arrayLength?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ComponentDefinition {
|
|
9
|
+
name: string;
|
|
10
|
+
id: number;
|
|
11
|
+
fields: Record<string, FieldDefinition>;
|
|
12
|
+
isTag?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface IComponentConstructor {
|
|
15
|
+
name: string;
|
|
16
|
+
ID: number;
|
|
17
|
+
IS_TAG?: boolean;
|
|
18
|
+
schema: Record<string, TypedArrayConstructor>;
|
|
19
|
+
calculateSize(maxEntities: number, memTracker: MemoryTracker): void;
|
|
20
|
+
new (maxEntities: number, buffer: ArrayBuffer, memTracker: MemoryTracker): IComponentInstance;
|
|
21
|
+
}
|
|
22
|
+
export interface IComponentInstance {
|
|
23
|
+
unsafe: Record<string, TypedArray>;
|
|
24
|
+
}
|
|
25
|
+
export interface SingletonDefinition {
|
|
26
|
+
name: string;
|
|
27
|
+
fields: Record<string, FieldDefinition>;
|
|
28
|
+
}
|
|
29
|
+
export interface ISingletonConstructor {
|
|
30
|
+
name: string;
|
|
31
|
+
schema: Record<string, TypedArrayConstructor>;
|
|
32
|
+
calculateSize(memTracker: MemoryTracker): void;
|
|
33
|
+
new (buffer: ArrayBuffer, memTracker: MemoryTracker): ISingletonInstance;
|
|
34
|
+
}
|
|
35
|
+
export interface ISingletonInstance {
|
|
36
|
+
safe?: Record<string, number | TypedArray>;
|
|
37
|
+
unsafe: Record<string, TypedArray>;
|
|
38
|
+
}
|
|
39
|
+
export interface PlayerResourceDefinition {
|
|
40
|
+
name: string;
|
|
41
|
+
fields: Record<string, FieldDefinition>;
|
|
42
|
+
}
|
|
43
|
+
export interface IPlayerResourceConstructor {
|
|
44
|
+
name: string;
|
|
45
|
+
schema: Record<string, TypedArrayConstructor>;
|
|
46
|
+
calculateSize(memTracker: MemoryTracker): void;
|
|
47
|
+
new (buffer: ArrayBuffer, memTracker: MemoryTracker): ISingletonInstance;
|
|
48
|
+
}
|
|
49
|
+
export interface IPlayerResourceInstance {
|
|
50
|
+
unsafe: Record<string, TypedArray>;
|
|
51
|
+
}
|
|
52
|
+
export interface FilterDefinition {
|
|
53
|
+
name: string;
|
|
54
|
+
include: ComponentDefinition[];
|
|
55
|
+
exclude: ComponentDefinition[];
|
|
56
|
+
}
|
|
57
|
+
export interface IFilterConstructor {
|
|
58
|
+
name: string;
|
|
59
|
+
include: IComponentConstructor[];
|
|
60
|
+
exclude: IComponentConstructor[];
|
|
61
|
+
calculateSize(maxEntities: number, memTracker: MemoryTracker): void;
|
|
62
|
+
new (maxEntities: number, buffer: ArrayBuffer, memTracker: MemoryTracker): IFilterInstance;
|
|
63
|
+
}
|
|
64
|
+
export interface IFilterInstance extends AbstractFilter {
|
|
65
|
+
includeMask: number[];
|
|
66
|
+
excludeMask: number[];
|
|
67
|
+
[Symbol.iterator](): IterableIterator<number>;
|
|
68
|
+
}
|
|
69
|
+
export interface IInputDefinition {
|
|
70
|
+
name: string;
|
|
71
|
+
id: number;
|
|
72
|
+
fields: Array<InputFieldDefinition>;
|
|
73
|
+
}
|
|
74
|
+
export interface IAbstractInputConstructor {
|
|
75
|
+
readonly id: number;
|
|
76
|
+
new (): IAbstractInput;
|
|
77
|
+
}
|
|
78
|
+
export interface IAbstractInput {
|
|
79
|
+
readonly id: number;
|
|
80
|
+
readonly byteLength: number;
|
|
81
|
+
readonly fields: ReadonlyArray<InputFieldDefinition>;
|
|
82
|
+
readonly schema: Record<string, TypedArray | number>;
|
|
83
|
+
}
|
|
84
|
+
export type InputMeta = {
|
|
85
|
+
tick: number;
|
|
86
|
+
seq: number;
|
|
87
|
+
ordinal: number;
|
|
88
|
+
playerSlot: number;
|
|
89
|
+
};
|
|
90
|
+
export type InputData<TInput extends IAbstractInput> = TInput['schema'];
|
|
91
|
+
export interface IECSSystem {
|
|
92
|
+
update(tick: number): void;
|
|
93
|
+
}
|
|
94
|
+
export interface IECSSystemConstructor {
|
|
95
|
+
new (...args: any[]): IECSSystem;
|
|
96
|
+
}
|
|
97
|
+
export interface ECSSchema {
|
|
98
|
+
components: ComponentDefinition[];
|
|
99
|
+
singletons: SingletonDefinition[];
|
|
100
|
+
playerResources: PlayerResourceDefinition[];
|
|
101
|
+
filters: FilterDefinition[];
|
|
102
|
+
inputs: IInputDefinition[];
|
|
103
|
+
}
|
|
104
|
+
export interface ECSDeps {
|
|
105
|
+
components: IComponentConstructor[];
|
|
106
|
+
singletons: ISingletonConstructor[];
|
|
107
|
+
playerResources: IPlayerResourceConstructor[];
|
|
108
|
+
filters: IFilterConstructor[];
|
|
109
|
+
inputs: IAbstractInputConstructor[];
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=ecs-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecs-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/ecs-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/types/ecs-types.ts"],"sourcesContent":["import { InputFieldDefinition, MemoryTracker, TypedArray, TypedArrayConstructor } from '@lagless/binary';\nimport { AbstractFilter } from './abstract-filter.js';\n\nexport interface FieldDefinition {\n type: string;\n isArray: boolean;\n arrayLength?: number;\n}\n\nexport interface ComponentDefinition {\n name: string;\n id: number;\n fields: Record<string, FieldDefinition>;\n}\n\nexport interface IComponentConstructor {\n name: string;\n ID: number;\n schema: Record<string, TypedArrayConstructor>;\n\n calculateSize(maxEntities: number, memTracker: MemoryTracker): void;\n\n new (maxEntities: number, buffer: ArrayBuffer, memTracker: MemoryTracker): IComponentInstance;\n}\n\nexport interface IComponentInstance {\n unsafe: Record<string, TypedArray>;\n}\n\nexport interface SingletonDefinition {\n name: string;\n fields: Record<string, FieldDefinition>;\n}\n\nexport interface ISingletonConstructor {\n name: string;\n schema: Record<string, TypedArrayConstructor>;\n\n calculateSize(memTracker: MemoryTracker): void;\n\n new (buffer: ArrayBuffer, memTracker: MemoryTracker): ISingletonInstance;\n}\n\nexport interface ISingletonInstance {\n safe?: Record<string, number>;\n unsafe: Record<string, TypedArray>;\n}\n\nexport interface PlayerResourceDefinition {\n name: string;\n fields: Record<string, FieldDefinition>;\n}\n\nexport interface IPlayerResourceConstructor {\n name: string;\n schema: Record<string, TypedArrayConstructor>;\n\n calculateSize(memTracker: MemoryTracker): void;\n\n new (buffer: ArrayBuffer, memTracker: MemoryTracker): ISingletonInstance;\n}\n\nexport interface IPlayerResourceInstance {\n unsafe: Record<string, TypedArray>;\n}\n\nexport interface FilterDefinition {\n name: string;\n include: ComponentDefinition[];\n exclude: ComponentDefinition[];\n}\n\nexport interface IFilterConstructor {\n name: string;\n include: IComponentConstructor[];\n exclude: IComponentConstructor[];\n\n calculateSize(maxEntities: number, memTracker: MemoryTracker): void;\n\n new (maxEntities: number, buffer: ArrayBuffer, memTracker: MemoryTracker): IFilterInstance;\n}\n\nexport interface IFilterInstance extends AbstractFilter {\n includeMask: number;\n excludeMask: number;\n\n [Symbol.iterator](): IterableIterator<number>;\n}\n\nexport interface IInputDefinition {\n name: string;\n id: number;\n fields: Array<InputFieldDefinition>;\n}\n\nexport interface IAbstractInputConstructor {\n readonly id: number;\n\n new (): IAbstractInput;\n}\n\nexport interface IAbstractInput {\n readonly id: number;\n readonly byteLength: number;\n readonly fields: ReadonlyArray<InputFieldDefinition>;\n readonly schema: Record<string, TypedArray | number>;\n}\n\nexport type InputMeta = {\n tick: number;\n seq: number;\n ordinal: number;\n playerSlot: number;\n};\n\nexport type InputData<TInput extends IAbstractInput> = TInput['schema'];\n\nexport interface IECSSystem {\n update(tick: number): void;\n}\n\nexport interface IECSSystemConstructor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): IECSSystem;\n}\n\nexport interface ECSSchema {\n components: ComponentDefinition[];\n singletons: SingletonDefinition[];\n playerResources: PlayerResourceDefinition[];\n filters: FilterDefinition[];\n inputs: IInputDefinition[];\n}\n\nexport interface ECSDeps {\n components: IComponentConstructor[];\n singletons: ISingletonConstructor[];\n playerResources: IPlayerResourceConstructor[];\n filters: IFilterConstructor[];\n inputs: IAbstractInputConstructor[];\n}\n"],"names":[],"rangeMappings":"","mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/ecs-types.ts"],"sourcesContent":["import { InputFieldDefinition, MemoryTracker, TypedArray, TypedArrayConstructor } from '@lagless/binary';\nimport { AbstractFilter } from './abstract-filter.js';\n\nexport interface FieldDefinition {\n type: string;\n isArray: boolean;\n arrayLength?: number;\n}\n\nexport interface ComponentDefinition {\n name: string;\n id: number;\n fields: Record<string, FieldDefinition>;\n isTag?: boolean;\n}\n\nexport interface IComponentConstructor {\n name: string;\n ID: number;\n IS_TAG?: boolean;\n schema: Record<string, TypedArrayConstructor>;\n\n calculateSize(maxEntities: number, memTracker: MemoryTracker): void;\n\n new (maxEntities: number, buffer: ArrayBuffer, memTracker: MemoryTracker): IComponentInstance;\n}\n\nexport interface IComponentInstance {\n unsafe: Record<string, TypedArray>;\n}\n\nexport interface SingletonDefinition {\n name: string;\n fields: Record<string, FieldDefinition>;\n}\n\nexport interface ISingletonConstructor {\n name: string;\n schema: Record<string, TypedArrayConstructor>;\n\n calculateSize(memTracker: MemoryTracker): void;\n\n new (buffer: ArrayBuffer, memTracker: MemoryTracker): ISingletonInstance;\n}\n\nexport interface ISingletonInstance {\n safe?: Record<string, number | TypedArray>;\n unsafe: Record<string, TypedArray>;\n}\n\nexport interface PlayerResourceDefinition {\n name: string;\n fields: Record<string, FieldDefinition>;\n}\n\nexport interface IPlayerResourceConstructor {\n name: string;\n schema: Record<string, TypedArrayConstructor>;\n\n calculateSize(memTracker: MemoryTracker): void;\n\n new (buffer: ArrayBuffer, memTracker: MemoryTracker): ISingletonInstance;\n}\n\nexport interface IPlayerResourceInstance {\n unsafe: Record<string, TypedArray>;\n}\n\nexport interface FilterDefinition {\n name: string;\n include: ComponentDefinition[];\n exclude: ComponentDefinition[];\n}\n\nexport interface IFilterConstructor {\n name: string;\n include: IComponentConstructor[];\n exclude: IComponentConstructor[];\n\n calculateSize(maxEntities: number, memTracker: MemoryTracker): void;\n\n new (maxEntities: number, buffer: ArrayBuffer, memTracker: MemoryTracker): IFilterInstance;\n}\n\nexport interface IFilterInstance extends AbstractFilter {\n includeMask: number[];\n excludeMask: number[];\n\n [Symbol.iterator](): IterableIterator<number>;\n}\n\nexport interface IInputDefinition {\n name: string;\n id: number;\n fields: Array<InputFieldDefinition>;\n}\n\nexport interface IAbstractInputConstructor {\n readonly id: number;\n\n new (): IAbstractInput;\n}\n\nexport interface IAbstractInput {\n readonly id: number;\n readonly byteLength: number;\n readonly fields: ReadonlyArray<InputFieldDefinition>;\n readonly schema: Record<string, TypedArray | number>;\n}\n\nexport type InputMeta = {\n tick: number;\n seq: number;\n ordinal: number;\n playerSlot: number;\n};\n\nexport type InputData<TInput extends IAbstractInput> = TInput['schema'];\n\nexport interface IECSSystem {\n update(tick: number): void;\n}\n\nexport interface IECSSystemConstructor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): IECSSystem;\n}\n\nexport interface ECSSchema {\n components: ComponentDefinition[];\n singletons: SingletonDefinition[];\n playerResources: PlayerResourceDefinition[];\n filters: FilterDefinition[];\n inputs: IInputDefinition[];\n}\n\nexport interface ECSDeps {\n components: IComponentConstructor[];\n singletons: ISingletonConstructor[];\n playerResources: IPlayerResourceConstructor[];\n filters: IFilterConstructor[];\n inputs: IAbstractInputConstructor[];\n}\n"],"names":[],"rangeMappings":"","mappings":"AAwIA,WAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lagless/core",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"license": "
|
|
3
|
+
"version": "0.0.39",
|
|
4
|
+
"license": "CC-BY-NC-4.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/GbGr/lagless",
|
|
@@ -32,7 +32,6 @@
|
|
|
32
32
|
"outputPath": "libs/core/dist",
|
|
33
33
|
"main": "libs/core/src/index.ts",
|
|
34
34
|
"tsConfig": "libs/core/tsconfig.lib.json",
|
|
35
|
-
"skipTypeCheck": true,
|
|
36
35
|
"stripLeadingPaths": true
|
|
37
36
|
}
|
|
38
37
|
}
|
|
@@ -40,9 +39,9 @@
|
|
|
40
39
|
},
|
|
41
40
|
"dependencies": {
|
|
42
41
|
"@swc/helpers": "~0.5.11",
|
|
43
|
-
"@lagless/
|
|
44
|
-
"@lagless/
|
|
45
|
-
"@lagless/
|
|
42
|
+
"@lagless/binary": "0.0.39",
|
|
43
|
+
"@lagless/misc": "0.0.39",
|
|
44
|
+
"@lagless/math": "0.0.39"
|
|
46
45
|
},
|
|
47
46
|
"devDependencies": {
|
|
48
47
|
"unplugin-swc": "^1.5.7"
|