@daneren2005/shared-memory-ecs 1.10.2 → 1.10.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.
@@ -7,7 +7,6 @@ export interface SchedulerContext<C extends ComponentMap = ComponentMap> extends
7
7
  readonly paused?: boolean;
8
8
  readonly dispatchAllowed?: boolean;
9
9
  prepareForSystemDispatch?(): boolean;
10
- systemSkipped?(system: System<C>): void;
11
10
  }
12
11
  export interface SchedulerUpdateResult {
13
12
  lastSystemError?: Error | null;
package/dist/world.d.ts CHANGED
@@ -25,6 +25,20 @@ export interface WorldConfig<Cfg = any> {
25
25
  timeScale?: number;
26
26
  }
27
27
  export type CompressedWorldConfig<Cfg = any> = Omit<WorldConfig<Cfg>, 'entities'> & CompressedEntities<Cfg>;
28
+ export type WorldLoadPhase = 'entities' | 'linking' | 'systems' | 'workers';
29
+ export interface WorldLoadProgress {
30
+ phase: WorldLoadPhase;
31
+ done: number;
32
+ total: number;
33
+ fraction: number;
34
+ }
35
+ export interface WorldLoadOptions {
36
+ sliceMs?: number;
37
+ yieldTo?: () => Promise<void>;
38
+ onProgress?: (progress: WorldLoadProgress) => void;
39
+ onEntitiesReady?: () => void;
40
+ signal?: AbortSignal;
41
+ }
28
42
  export interface WorldSharedMemory {
29
43
  components: {
30
44
  [name: string]: SharedPoolMemory;
@@ -49,6 +63,8 @@ export default class BaseWorld<R extends ComponentDefinitionMap = ComponentDefin
49
63
  destroyed: boolean;
50
64
  pristine: boolean;
51
65
  isBulkLoading: boolean;
66
+ isLoading: boolean;
67
+ private activeLoad;
52
68
  private activeFreeBuffer;
53
69
  private nextFreeBuffer;
54
70
  private clearing;
@@ -58,18 +74,21 @@ export default class BaseWorld<R extends ComponentDefinitionMap = ComponentDefin
58
74
  addGrownBuffer(data: GrowBufferData): void;
59
75
  private get needsSpareBuffer();
60
76
  init(): Promise<void>;
61
- private finishLoadingSystems;
62
77
  addEntity(entity: E, created?: boolean): E;
63
78
  loadEntity(config: Cfg, created?: boolean): E;
64
79
  adoptEntity(descriptor: WorkerCreatedEntity): E;
65
- load(config: WorldConfig<Cfg> | CompressedWorldConfig<Cfg>): Promise<void>;
80
+ load(config: WorldConfig<Cfg> | CompressedWorldConfig<Cfg>, options?: WorldLoadOptions): Promise<void>;
81
+ private loadSliced;
82
+ private loadSteps;
83
+ private awaitWorkers;
84
+ private abortActiveLoad;
66
85
  clear(): Promise<void>;
67
86
  removeEntity(entity: E): void;
68
87
  onEntityDied(entity: E): void;
69
88
  getEntityByEid(eid: number): E | undefined;
70
89
  deferComponentMemoryFree(memoryComponent: MemoryComponent, index: number, free?: () => void): void;
71
90
  notifySystemRunCompleted(system: System<C>): void;
72
- systemSkipped(system: System<C>): void;
91
+ notifyAbandonedRunFinished(system: System<C>): void;
73
92
  private processFreeBuffers;
74
93
  private promoteNextFreeBuffer;
75
94
  private consolidateFreeBuffersForReload;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@daneren2005/shared-memory-ecs",
3
3
  "description": "A small, reusable Entity/Component/System core backed by shared memory.",
4
4
  "author": "Scott Jackson",
5
- "version": "1.10.2",
5
+ "version": "1.10.4",
6
6
  "type": "module",
7
7
  "sideEffects": false,
8
8
  "license": "MIT",