react-simple-game-engine 0.0.6 → 0.0.9

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.
@@ -1,4 +1,5 @@
1
1
  import { Body } from "matter-js";
2
+ import { CreateBodyDefine, EntityInitial } from "../../export-types";
2
3
  import { Entity } from "./entity";
3
4
  export declare class CircleEntity extends Entity {
4
5
  radius: number;
@@ -1 +1 @@
1
- {"version":3,"file":"circle.entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/circle.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAU,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,YAAa,SAAQ,MAAM;IAC/B,MAAM,EAAG,MAAM,CAAC;IAEvB,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAO/D,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,YAAY,CAAC;IAQlD,SAAS,CAAC,YAAY,CACpB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC7D,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,IAAI;CAIR"}
1
+ {"version":3,"file":"circle.entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/circle.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAU,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,YAAa,SAAQ,MAAM;IAC/B,MAAM,EAAG,MAAM,CAAC;IAEvB,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAO/D,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,YAAY,CAAC;IAQlD,SAAS,CAAC,YAAY,CACpB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC7D,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,IAAI;CAIR"}
@@ -1,7 +1,8 @@
1
1
  import Matter from "matter-js";
2
2
  import { Camera } from "../camera";
3
3
  import { WorldManagement } from "../world-management";
4
- import { EntityPrepare, MasterBody, Sound } from "../../export-types";
4
+ import { Sprite } from "../sprites/sprite";
5
+ import { CreateBodyDefine, EntityInitial, EntityPrepare, MasterBody, Sound } from "../../export-types";
5
6
  export declare abstract class Entity {
6
7
  private _body;
7
8
  private _sprite;
@@ -11,8 +12,8 @@ export declare abstract class Entity {
11
12
  protected worldManagement: WorldManagement;
12
13
  protected sound?: Sound;
13
14
  constructor();
14
- set sprite(sprite: ISprite);
15
- get sprite(): ISprite;
15
+ set sprite(sprite: Sprite);
16
+ get sprite(): Sprite;
16
17
  get position(): Matter.Vector;
17
18
  get body(): MasterBody;
18
19
  active(worldManagement: WorldManagement): void;
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEtE,8BAAsB,MAAM;IAC1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAsD;IAEzE,SAAgB,GAAG,EAAG,MAAM,CAAC;IACtB,MAAM,EAAG,MAAM,CAAC;IAEvB,SAAS,CAAC,eAAe,EAAG,eAAe,CAAC;IAC5C,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;;IAMxB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAGzB;IAED,IAAI,MAAM,IALS,OAAO,CAOzB;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,IAAI,eAEP;IAED,MAAM,CAAC,eAAe,EAAE,eAAe;IAKvC,QAAQ;IAER,UAAU,CACR,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC;IAO3C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAAS,EACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,MAAM,CAAC,IAAI;IAEd,OAAO,CAAC,EACN,KAAK,EACL,SAAc,EACd,MAAM,EAAE,eAAe,EACvB,WAAgB,GACjB,EAAE,aAAa,CAAC,IAAI,CAAC;IA+BtB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IACnD,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAI1C,MAAM;IAGN,QAAQ;IAER,IAAI;IAIJ,QAAQ,CAAC,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAExE,WAAW,CAAC,MAAM,EAAE,MAAM;CAC3B"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,EACN,MAAM,oBAAoB,CAAC;AAE5B,8BAAsB,MAAM;IAC1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAsD;IAEzE,SAAgB,GAAG,EAAG,MAAM,CAAC;IACtB,MAAM,EAAG,MAAM,CAAC;IAEvB,SAAS,CAAC,eAAe,EAAG,eAAe,CAAC;IAC5C,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;;IAMxB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAGxB;IAED,IAAI,MAAM,IALS,MAAM,CAOxB;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,IAAI,eAEP;IAED,MAAM,CAAC,eAAe,EAAE,eAAe;IAKvC,QAAQ;IAER,UAAU,CACR,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC;IAO3C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAAS,EACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,MAAM,CAAC,IAAI;IAEd,OAAO,CAAC,EACN,KAAK,EACL,SAAc,EACd,MAAM,EAAE,eAAe,EACvB,WAAgB,GACjB,EAAE,aAAa,CAAC,IAAI,CAAC;IA+BtB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IACnD,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAI1C,MAAM;IAGN,QAAQ;IAER,IAAI;IAIJ,QAAQ,CAAC,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAExE,WAAW,CAAC,MAAM,EAAE,MAAM;CAC3B"}
@@ -1,4 +1,5 @@
1
1
  import { Body } from "matter-js";
2
+ import { CreateBodyDefine, EntityInitial } from "../../export-types";
2
3
  import { Entity } from "./entity";
3
4
  export declare class RectEntity extends Entity {
4
5
  width: number;
@@ -1 +1 @@
1
- {"version":3,"file":"rect.entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/rect.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,IAAI,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,UAAW,SAAQ,MAAM;IAC7B,KAAK,EAAG,MAAM,CAAC;IACf,MAAM,EAAG,MAAM,CAAC;IAEvB,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAO/D,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,UAAU,CAAC;IAShD,SAAS,CAAC,YAAY,CACpB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG;QACzC,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,EACD,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,IAAI;CAWR"}
1
+ {"version":3,"file":"rect.entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/rect.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,IAAI,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,UAAW,SAAQ,MAAM;IAC7B,KAAK,EAAG,MAAM,CAAC;IACf,MAAM,EAAG,MAAM,CAAC;IAEvB,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAO/D,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,UAAU,CAAC;IAShD,SAAS,CAAC,YAAY,CACpB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG;QACzC,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,EACD,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,IAAI;CAWR"}
@@ -1,6 +1,8 @@
1
+ import { Configable } from "../export-types";
2
+ import { Entity } from "./entities/entity";
1
3
  export declare class LogicComponent<C extends {
2
4
  initial: any;
3
- } = IEntity> {
5
+ } = Entity> {
4
6
  private instance;
5
7
  constructor(configale: Configable<C>);
6
8
  output(): C;
@@ -1 +1 @@
1
- {"version":3,"file":"logic-component.d.ts","sourceRoot":"","sources":["../../src/classes/logic-component.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG,OAAO;IAC9D,OAAO,CAAC,QAAQ,CAAI;gBACR,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAOpC,MAAM;CAGP"}
1
+ {"version":3,"file":"logic-component.d.ts","sourceRoot":"","sources":["../../src/classes/logic-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,qBAAa,cAAc,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG,MAAM;IAC7D,OAAO,CAAC,QAAQ,CAAI;gBACR,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAOpC,MAAM;CAGP"}
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,aAAK,kBAAkB,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;AAE1D,8BAAsB,KAAK,CAAC,GAAG,GAAG,GAAG;IACnC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,kBAAkB,CAAsB;IAEzC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAG,eAAe,CAAC;IACjC,SAAgB,SAAS,EAAE,MAAM,CAA8C;aAC/D,aAAa,IAAI,cAAc,EAAE;;IAQjD,IAAI,EAAE,uBAGL;IAED,IAAI,OAAO,QAEV;IAED,SAAS,CAAC,UAAU;IAIpB,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;IAI1C,UAAU;IAIV,kBAAkB,CAAC,YAAY,EAAE,OAAO;IAKxC,aAAa,CAAC,GAAG,EAAE,MAAM;IAInB,UAAU;IAQV,YAAY;IAElB,SAAS,CAAC,MAAM,EAAE,MAAM;IAUxB,MAAM;CAIP"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,aAAK,kBAAkB,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;AAE1D,8BAAsB,KAAK,CAAC,GAAG,GAAG,GAAG;IACnC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,kBAAkB,CAAsB;IAEzC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAG,eAAe,CAAC;IACjC,SAAgB,SAAS,EAAE,MAAM,CAA8C;aAC/D,aAAa,IAAI,cAAc,EAAE;;IAQjD,IAAI,EAAE,uBAGL;IAED,IAAI,OAAO,QAEV;IAED,SAAS,CAAC,UAAU;IAIpB,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;IAI1C,UAAU;IAIV,kBAAkB,CAAC,YAAY,EAAE,OAAO;IAKxC,aAAa,CAAC,GAAG,EAAE,MAAM;IAInB,UAAU;IAQV,YAAY;IAElB,SAAS,CAAC,MAAM,EAAE,MAAM;IAUxB,MAAM;CAIP"}
@@ -7,7 +7,7 @@ declare type GetInitialParams<S extends {
7
7
  sprite?: S["sprite"];
8
8
  animation?: LogicComponent<AnimationSprite>;
9
9
  };
10
- export declare abstract class Sprite<SpriteType> {
10
+ export declare abstract class Sprite<SpriteType = any> {
11
11
  sprite: SpriteType;
12
12
  private _entity;
13
13
  private _width;
@@ -1 +1 @@
1
- {"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../src/classes/sprites/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,aAAK,gBAAgB,CAAC,CAAC,SAAS;IAAE,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,GAAG,IAAI;IACxD,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;CAC7C,CAAC;AAEF,8BAAsB,MAAM,CAAC,UAAU;IAC9B,MAAM,EAAG,UAAU,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,UAAU,CAA8B;IAEhD,IAAI,SAAS,CAAC,GAAG,EAAE,eAAe,EAGjC;IAED,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAKxB;IAED,IAAI,MAAM,IAPS,MAAM,CASxB;IAED,IAAI,KAAK,WAER;IAED,IAAI,MAAM,WAET;IAED,IAAI;IAUJ,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC;CAexC"}
1
+ {"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../src/classes/sprites/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,aAAK,gBAAgB,CAAC,CAAC,SAAS;IAAE,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,GAAG,IAAI;IACxD,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;CAC7C,CAAC;AAEF,8BAAsB,MAAM,CAAC,UAAU,GAAG,GAAG;IACpC,MAAM,EAAG,UAAU,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,UAAU,CAA8B;IAEhD,IAAI,SAAS,CAAC,GAAG,EAAE,eAAe,EAGjC;IAED,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAKxB;IAED,IAAI,MAAM,IAPS,MAAM,CASxB;IAED,IAAI,KAAK,WAER;IAED,IAAI,MAAM,WAET;IAED,IAAI;IAUJ,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC;CAexC"}
@@ -1,10 +1,32 @@
1
1
  /// <reference types="matter-js" />
2
+ import { Entity } from "./classes/entities/entity";
3
+ import { Sprite } from "./classes/sprites/sprite";
2
4
  export declare type Sound = HTMLAudioElement;
3
5
  export declare type Avatar = ReturnType<P5["loadImage"]>;
4
6
  export declare type Color = [number, number, number, number?];
5
- export declare type EntityPrepare<E extends IEntity> = EntityInitial<E>;
7
+ export declare type EntityPrepare<E extends Entity> = EntityInitial<E>;
6
8
  export declare type MasterBody = Matter.Body & {
7
- entity: IEntity;
9
+ entity: Entity;
8
10
  };
9
11
  export declare type P5 = import("p5");
12
+ export declare type CreateBodyDefine = {
13
+ transform?: {
14
+ x?: number;
15
+ y?: number;
16
+ };
17
+ bodyOptions?: Matter.IChamferableBodyDefinition;
18
+ };
19
+ export declare type EntityInitial<E extends Entity> = {
20
+ transform?: Parameters<E["onCreateBody"]>[0];
21
+ bodyOptions?: Parameters<E["onCreateBody"]>[1];
22
+ sound?: Sound;
23
+ sprite?: import("./classes/logic-component").LogicComponent<Sprite>;
24
+ };
25
+ export declare type Configable<C extends {
26
+ initial: any;
27
+ } = Entity> = {
28
+ new (): C;
29
+ } | [{
30
+ new (): C;
31
+ }, Parameters<C["initial"]>[0]?];
10
32
  //# sourceMappingURL=export-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-types.d.ts","sourceRoot":"","sources":["../src/export-types.ts"],"names":[],"mappings":";AAAA,oBAAY,KAAK,GAAG,gBAAgB,CAAC;AACrC,oBAAY,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACjD,oBAAY,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtD,oBAAY,aAAa,CAAC,CAAC,SAAS,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAChE,oBAAY,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG;IACrC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,oBAAY,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"export-types.d.ts","sourceRoot":"","sources":["../src/export-types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,oBAAY,KAAK,GAAG,gBAAgB,CAAC;AACrC,oBAAY,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACjD,oBAAY,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtD,oBAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAC/D,oBAAY,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;AAE9B,oBAAY,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC,0BAA0B,CAAC;CACjD,CAAC;AAEF,oBAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IAE5C,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,2BAA2B,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CACrE,CAAC;AAEF,oBAAY,UAAU,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG,MAAM,IACtD;IACE,QAAQ,CAAC,CAAC;CACX,GACD,CAAC;IAAE,QAAQ,CAAC,CAAA;CAAE,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,10 +1,14 @@
1
- /// <reference types="react" />
1
+ import { ComponentType, ReactNode } from "react";
2
2
  import { Scene } from "../classes/scene";
3
- declare type SceneRunnerProps = {
4
- current: Scene;
3
+ export declare type SceneRunnerPublicProps = {
5
4
  width: number;
6
5
  height: number;
6
+ assetsLoader?: ReactNode | ComponentType;
7
+ assetsDelay?: number;
8
+ };
9
+ declare type SceneRunnerProps = SceneRunnerPublicProps & {
10
+ current: Scene;
7
11
  };
8
- export declare function SceneRunner({ current, width, height }: SceneRunnerProps): JSX.Element;
12
+ export declare function SceneRunner({ assetsDelay, current, width, height, assetsLoader: AssetsLoader, }: SceneRunnerProps): JSX.Element;
9
13
  export {};
10
14
  //# sourceMappingURL=SceneRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SceneRunner.d.ts","sourceRoot":"","sources":["../../src/ui-components/SceneRunner.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,aAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,eAiCvE"}
1
+ {"version":3,"file":"SceneRunner.d.ts","sourceRoot":"","sources":["../../src/ui-components/SceneRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,SAAS,EAGV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,oBAAY,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,aAAK,gBAAgB,GAAG,sBAAsB,GAAG;IAC/C,OAAO,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAY,EAAE,YAAY,GAC3B,EAAE,gBAAgB,eA8ClB"}
@@ -9,20 +9,81 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { useEffect } from "react";
49
+ import { useEffect, useMemo, } from "react";
14
50
  import { Sketch } from "./Sketch";
51
+ import { tick } from "../utils";
15
52
  export function SceneRunner(_a) {
16
- var current = _a.current, width = _a.width, height = _a.height;
53
+ var assetsDelay = _a.assetsDelay, current = _a.current, width = _a.width, height = _a.height, AssetsLoader = _a.assetsLoader;
17
54
  useEffect(function () {
18
- current.loadAssets();
19
- }, [current]);
55
+ (function () {
56
+ return __awaiter(this, void 0, void 0, function () {
57
+ return __generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0:
60
+ if (!(assetsDelay != null)) return [3 /*break*/, 2];
61
+ // assetsDelay = 0, will wait forever
62
+ return [4 /*yield*/, tick(assetsDelay || undefined)];
63
+ case 1:
64
+ // assetsDelay = 0, will wait forever
65
+ _a.sent();
66
+ _a.label = 2;
67
+ case 2:
68
+ current.loadAssets();
69
+ return [2 /*return*/];
70
+ }
71
+ });
72
+ });
73
+ })();
74
+ }, [current, assetsDelay]);
20
75
  var setup = function (camera) {
21
76
  current.bootstrap(camera);
22
77
  };
23
78
  var draw = function () {
24
79
  current.action();
25
80
  };
81
+ var assetsLoader = useMemo(function () {
82
+ if (typeof AssetsLoader === "function") {
83
+ return _jsx(AssetsLoader, {});
84
+ }
85
+ return (AssetsLoader !== null && AssetsLoader !== void 0 ? AssetsLoader : _jsx("div", { children: "Assets loading..." }));
86
+ }, [AssetsLoader]);
26
87
  return current.loadedAssets ? (_jsxs("div", __assign({ style: { width: width, height: height, position: "relative" } }, { children: [_jsx(Sketch, { width: width, height: height, onSetup: setup, onDraw: draw }), _jsx("div", __assign({ style: {
27
88
  position: "absolute",
28
89
  top: 0,
@@ -31,5 +92,5 @@ export function SceneRunner(_a) {
31
92
  right: 0,
32
93
  userSelect: "none",
33
94
  zIndex: 2,
34
- } }, { children: _jsx(current.UI, __assign({}, current.UIProps)) }))] }))) : (_jsx("div", { children: "Assets loading..." }));
95
+ } }, { children: _jsx(current.UI, __assign({}, current.UIProps)) }))] }))) : (assetsLoader);
35
96
  }
@@ -1,10 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { SceneManagement } from "../classes/scene-management";
3
- declare type WorldViewProps = {
3
+ import { SceneRunnerPublicProps } from "./SceneRunner";
4
+ declare type WorldViewProps = SceneRunnerPublicProps & {
4
5
  list: ConstructorParameters<typeof SceneManagement>[0];
5
- width: number;
6
- height: number;
7
6
  };
8
- export declare function ScenesProcess({ list, width, height }: WorldViewProps): JSX.Element;
7
+ export declare function ScenesProcess({ list, ...props }: WorldViewProps): JSX.Element;
9
8
  export {};
10
9
  //# sourceMappingURL=ScenesProcess.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScenesProcess.d.ts","sourceRoot":"","sources":["../../src/ui-components/ScenesProcess.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,aAAK,cAAc,GAAG;IACpB,IAAI,EAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,eA+BpE"}
1
+ {"version":3,"file":"ScenesProcess.d.ts","sourceRoot":"","sources":["../../src/ui-components/ScenesProcess.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAe,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEpE,aAAK,cAAc,GAAG,sBAAsB,GAAG;IAC7C,IAAI,EAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,eA8B/D"}
@@ -1,9 +1,31 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
1
23
  import { jsx as _jsx } from "react/jsx-runtime";
2
24
  import { useEffect, useMemo, useState } from "react";
3
25
  import { SceneManagement } from "../classes/scene-management";
4
26
  import { SceneRunner } from "./SceneRunner";
5
27
  export function ScenesProcess(_a) {
6
- var list = _a.list, width = _a.width, height = _a.height;
28
+ var list = _a.list, props = __rest(_a, ["list"]);
7
29
  var sceneManagement = useMemo(function () {
8
30
  return new SceneManagement(list);
9
31
  }, [list]);
@@ -20,5 +42,5 @@ export function ScenesProcess(_a) {
20
42
  setLoadedAssets(isLoaded);
21
43
  });
22
44
  }, [currentScene]);
23
- return (_jsx(SceneRunner, { current: currentScene, width: width, height: height }, currentScene.sessionId));
45
+ return (_jsx(SceneRunner, __assign({ current: currentScene }, props), currentScene.sessionId));
24
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Sketch.d.ts","sourceRoot":"","sources":["../../src/ui-components/Sketch.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,aAAK,WAAW,GAAG;IACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,GACP,EAAE,WAAW,eAgDb"}
1
+ {"version":3,"file":"Sketch.d.ts","sourceRoot":"","sources":["../../src/ui-components/Sketch.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,aAAK,WAAW,GAAG;IACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,GACP,EAAE,WAAW,eAgDb"}
package/lib/utils.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Avatar, Sound } from "./export-types";
2
2
  export declare function createAssetImage(src: string): Promise<Avatar>;
3
3
  export declare function createAssetSound(src: string): Promise<Sound>;
4
+ export declare function tick(delay?: number): Promise<unknown>;
4
5
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAiB/C,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAWlE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAiB/C,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAWlE;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC"}
package/lib/utils.js CHANGED
@@ -73,3 +73,17 @@ export function createAssetSound(src) {
73
73
  });
74
74
  });
75
75
  }
76
+ export function tick(delay) {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ return __generator(this, function (_a) {
79
+ return [2 /*return*/, new Promise(function (res) {
80
+ if (delay != null) {
81
+ setTimeout(res, delay);
82
+ }
83
+ else {
84
+ // wait forever
85
+ }
86
+ })];
87
+ });
88
+ });
89
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.0.6",
3
+ "version": "0.0.9",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",
@@ -11,8 +11,7 @@
11
11
  "react": "^18.0.0"
12
12
  },
13
13
  "scripts": {
14
- "build": "rm -rf lib && tsc -p .",
15
- "publish": "npm publish"
14
+ "build": "rm -rf lib && tsc -p ."
16
15
  },
17
16
  "files": [
18
17
  "/lib"