react-simple-game-engine 0.1.43 → 0.1.46
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/lib/classes/entities/entity-sult.d.ts +8 -0
- package/lib/classes/entities/entity-sult.d.ts.map +1 -1
- package/lib/classes/entities/entity-sult.js +33 -0
- package/lib/classes/entities/entity.d.ts +3 -7
- package/lib/classes/entities/entity.d.ts.map +1 -1
- package/lib/classes/entities/entity.js +21 -40
- package/lib/classes/scene.d.ts +14 -1
- package/lib/classes/scene.d.ts.map +1 -1
- package/lib/classes/scene.js +62 -1
- package/lib/classes/sound-watcher.d.ts +16 -0
- package/lib/classes/sound-watcher.d.ts.map +1 -0
- package/lib/classes/sound-watcher.js +22 -0
- package/lib/classes/sound.d.ts +10 -0
- package/lib/classes/sound.d.ts.map +1 -0
- package/lib/classes/sound.js +98 -0
- package/lib/classes/world-management.d.ts.map +1 -1
- package/lib/classes/world-management.js +7 -4
- package/lib/export-enums.d.ts +5 -0
- package/lib/export-enums.d.ts.map +1 -0
- package/lib/export-enums.js +5 -0
- package/lib/export-types.d.ts +5 -1
- package/lib/export-types.d.ts.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/ui-components/SceneRunner.d.ts.map +1 -1
- package/lib/ui-components/SceneRunner.js +4 -2
- package/lib/utilities.d.ts +2 -1
- package/lib/utilities.d.ts.map +1 -1
- package/lib/utilities.js +2 -1
- package/lib/utils.d.ts +4 -2
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +3 -2
- package/package.json +1 -1
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Initialler } from "../../export-interfaces";
|
2
2
|
import { Camera } from "../camera";
|
3
|
+
import { LogicComponent } from "../logic-component";
|
3
4
|
import { Scene } from "../scene";
|
4
5
|
import { WorldManagement } from "../world-management";
|
5
6
|
export declare abstract class EntitySult<P = any> implements Initialler<P> {
|
@@ -9,14 +10,21 @@ export declare abstract class EntitySult<P = any> implements Initialler<P> {
|
|
9
10
|
private _name;
|
10
11
|
private _scene;
|
11
12
|
private _worldManagement;
|
13
|
+
private _children;
|
14
|
+
private _parent?;
|
12
15
|
abstract update(): void;
|
13
16
|
abstract draw(): void;
|
17
|
+
get children(): EntitySult<any>[];
|
14
18
|
get layerIndex(): number;
|
15
19
|
get name(): string;
|
16
20
|
set layerIndex(_layerIndex: number);
|
17
21
|
set name(_name: string);
|
22
|
+
get parent(): EntitySult<any> | undefined;
|
18
23
|
get scene(): Scene<any>;
|
19
24
|
get worldManagement(): WorldManagement;
|
25
|
+
addChild(target: EntitySult | LogicComponent<EntitySult>): void;
|
26
|
+
removeChild(entity: EntitySult): void;
|
27
|
+
unChild(entity: EntitySult): void;
|
20
28
|
getProperty<T>(name: string): T;
|
21
29
|
preInitial(worldManagement: WorldManagement): void;
|
22
30
|
active(worldManagement: WorldManagement): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entity-sult.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity-sult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,8BAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,EAAG,MAAM,CAAC;IACvB,SAAgB,EAAE,EAAE,MAAM,CAA8C;IAExE,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAmB;
|
1
|
+
{"version":3,"file":"entity-sult.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity-sult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,8BAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,EAAG,MAAM,CAAC;IACvB,SAAgB,EAAE,EAAE,MAAM,CAA8C;IAExE,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAa;IAE7B,QAAQ,CAAC,MAAM,IAAI,IAAI;IACvB,QAAQ,CAAC,IAAI,IAAI,IAAI;IAErB,IAAI,QAAQ,sBAEX;IAED,IAAI,UAAU,IAQc,MAAM,CANjC;IAED,IAAI,IAAI,IAWQ,MAAM,CATrB;IAED,IAAI,UAAU,CAAC,WAAW,EAAE,MAAM,EAKjC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAUrB;IAED,IAAI,MAAM,gCAET;IAED,IAAI,KAAK,eAER;IAED,IAAI,eAAe,oBAElB;IAED,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IAWxD,WAAW,CAAC,MAAM,EAAE,UAAU;IAK9B,OAAO,CAAC,MAAM,EAAE,UAAU;IAO1B,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI/B,UAAU,CAAC,eAAe,EAAE,eAAe;IAM3C,MAAM,CAAC,eAAe,EAAE,eAAe;IAUvC,QAAQ;IACR,OAAO,CAAC,MAAM,EAAE,CAAC;CAClB"}
|
@@ -3,7 +3,15 @@ var EntitySult = /** @class */ (function () {
|
|
3
3
|
this.id = "".concat(Math.random(), "-").concat(new Date().getTime());
|
4
4
|
this._layerIndex = 0;
|
5
5
|
this._name = this.id;
|
6
|
+
this._children = [];
|
6
7
|
}
|
8
|
+
Object.defineProperty(EntitySult.prototype, "children", {
|
9
|
+
get: function () {
|
10
|
+
return this._children;
|
11
|
+
},
|
12
|
+
enumerable: false,
|
13
|
+
configurable: true
|
14
|
+
});
|
7
15
|
Object.defineProperty(EntitySult.prototype, "layerIndex", {
|
8
16
|
get: function () {
|
9
17
|
return this._layerIndex;
|
@@ -37,6 +45,13 @@ var EntitySult = /** @class */ (function () {
|
|
37
45
|
enumerable: false,
|
38
46
|
configurable: true
|
39
47
|
});
|
48
|
+
Object.defineProperty(EntitySult.prototype, "parent", {
|
49
|
+
get: function () {
|
50
|
+
return this._parent;
|
51
|
+
},
|
52
|
+
enumerable: false,
|
53
|
+
configurable: true
|
54
|
+
});
|
40
55
|
Object.defineProperty(EntitySult.prototype, "scene", {
|
41
56
|
get: function () {
|
42
57
|
return this._scene;
|
@@ -51,6 +66,24 @@ var EntitySult = /** @class */ (function () {
|
|
51
66
|
enumerable: false,
|
52
67
|
configurable: true
|
53
68
|
});
|
69
|
+
EntitySult.prototype.addChild = function (target) {
|
70
|
+
var entity = target instanceof EntitySult
|
71
|
+
? target
|
72
|
+
: target.output({ worldManagement: this.worldManagement });
|
73
|
+
entity._parent = this;
|
74
|
+
this.children.push(entity);
|
75
|
+
this.worldManagement.addEntity(entity);
|
76
|
+
};
|
77
|
+
EntitySult.prototype.removeChild = function (entity) {
|
78
|
+
this.unChild(entity);
|
79
|
+
this.worldManagement.removeEntity(entity);
|
80
|
+
};
|
81
|
+
EntitySult.prototype.unChild = function (entity) {
|
82
|
+
var delIndex = this.children.indexOf(entity);
|
83
|
+
if (delIndex > -1) {
|
84
|
+
this.children.splice(delIndex, 1);
|
85
|
+
}
|
86
|
+
};
|
54
87
|
EntitySult.prototype.getProperty = function (name) {
|
55
88
|
return this[name];
|
56
89
|
};
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import Matter from "matter-js";
|
2
2
|
import { Sprite } from "../sprites/sprite";
|
3
|
-
import { CreateBodyDefine, EntityInitial, EntityPrepare, MasterBody
|
3
|
+
import { CreateBodyDefine, EntityInitial, EntityPrepare, MasterBody } from "../../export-types";
|
4
4
|
import { EntitySult } from "./entity-sult";
|
5
5
|
import { LogicComponent } from "../logic-component";
|
6
|
+
import { Sound } from "../sound";
|
6
7
|
declare type TimerJobListener = () => void;
|
7
8
|
declare type TerminateOptions = {
|
8
9
|
duration?: number;
|
@@ -11,7 +12,6 @@ declare type TerminateOptions = {
|
|
11
12
|
export declare abstract class Entity<P extends Record<string, any> = Record<string, any>> extends EntitySult<EntityInitial<Entity>> {
|
12
13
|
private _body;
|
13
14
|
private _sprite;
|
14
|
-
private _children;
|
15
15
|
private _props;
|
16
16
|
private timerJobListeners;
|
17
17
|
private isTerminate;
|
@@ -21,7 +21,6 @@ export declare abstract class Entity<P extends Record<string, any> = Record<stri
|
|
21
21
|
get sprite(): Sprite<any>;
|
22
22
|
get position(): Matter.Vector;
|
23
23
|
get body(): MasterBody;
|
24
|
-
get children(): EntitySult<any>[];
|
25
24
|
get props(): P;
|
26
25
|
/**
|
27
26
|
* @param {TerminateOptions} options
|
@@ -31,14 +30,11 @@ export declare abstract class Entity<P extends Record<string, any> = Record<stri
|
|
31
30
|
*/
|
32
31
|
terminate(options?: TerminateOptions): void;
|
33
32
|
/**
|
34
|
-
* @param {string} name
|
35
33
|
* @param {number} interval in seconds
|
36
34
|
* @param {TimerJobListener} job function that run per #interval
|
37
35
|
* @void
|
38
36
|
*/
|
39
|
-
onTimer(
|
40
|
-
addChild(target: EntitySult | LogicComponent<EntitySult>): void;
|
41
|
-
removeChild(entity: EntitySult): void;
|
37
|
+
onTimer(interval: number, job: TimerJobListener, defaultRun?: boolean): () => void;
|
42
38
|
createBody(transform: CreateBodyDefine["transform"], options?: CreateBodyDefine["bodyOptions"]): MasterBody;
|
43
39
|
protected abstract onCreateBody(transform: CreateBodyDefine["transform"], options?: CreateBodyDefine["bodyOptions"]): Matter.Body;
|
44
40
|
initial({ transform, sprite: spriteComponent, bodyOptions, props, ...params }: EntityInitial<this>): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAwB,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAwB,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,aAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AAEnC,aAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;CACjD,CAAC;AAEF,8BAAsB,MAAM,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACnD,SAAQ,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAKhB;IACT,OAAO,CAAC,WAAW,CAAS;IAErB,cAAc,EAAE,OAAO,CAAQ;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IAErB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAG7B;IAED,IAAI,MAAM,IALS,MAAM,CAAC,GAAG,CAAC,CAO7B;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,IAAI,eAEP;IAED,IAAI,KAAK,MAER;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAkBpC;;;;OAIG;IACH,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,EACrB,UAAU,UAAQ,GACjB,MAAM,IAAI;IAiBb,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,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,MAAM,CAAC,IAAI;IAEd,OAAO,CAAC,EACN,SAAS,EACT,MAAM,EAAE,eAAe,EACvB,WAAW,EACX,KAAU,EACV,GAAG,MAAM,EACV,EAAE,aAAa,CAAC,IAAI,CAAC;IAiDtB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IACnD,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAI1C,MAAM;IAeN,QAAQ;IAER,IAAI;IAMJ,QAAQ,CAAC,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAExE,WAAW,CAAC,MAAM,EAAE,MAAM;IAC1B,cAAc,CAAC,MAAM,EAAE,MAAM;IAC7B,iBAAiB,CAAC,MAAM,EAAE,MAAM;CACjC"}
|
@@ -43,9 +43,8 @@ var Entity = /** @class */ (function (_super) {
|
|
43
43
|
__extends(Entity, _super);
|
44
44
|
function Entity() {
|
45
45
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
46
|
-
_this._children = [];
|
47
46
|
_this._props = {};
|
48
|
-
_this.timerJobListeners =
|
47
|
+
_this.timerJobListeners = [];
|
49
48
|
_this.isTerminate = false;
|
50
49
|
_this.enabledGravity = true;
|
51
50
|
return _this;
|
@@ -75,13 +74,6 @@ var Entity = /** @class */ (function (_super) {
|
|
75
74
|
enumerable: false,
|
76
75
|
configurable: true
|
77
76
|
});
|
78
|
-
Object.defineProperty(Entity.prototype, "children", {
|
79
|
-
get: function () {
|
80
|
-
return this._children;
|
81
|
-
},
|
82
|
-
enumerable: false,
|
83
|
-
configurable: true
|
84
|
-
});
|
85
77
|
Object.defineProperty(Entity.prototype, "props", {
|
86
78
|
get: function () {
|
87
79
|
return this._props;
|
@@ -114,38 +106,26 @@ var Entity = /** @class */ (function (_super) {
|
|
114
106
|
}
|
115
107
|
};
|
116
108
|
/**
|
117
|
-
* @param {string} name
|
118
109
|
* @param {number} interval in seconds
|
119
110
|
* @param {TimerJobListener} job function that run per #interval
|
120
111
|
* @void
|
121
112
|
*/
|
122
|
-
Entity.prototype.onTimer = function (
|
113
|
+
Entity.prototype.onTimer = function (interval, job, defaultRun) {
|
114
|
+
var _this = this;
|
123
115
|
if (defaultRun === void 0) { defaultRun = false; }
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
var entity = target instanceof EntitySult
|
138
|
-
? target
|
139
|
-
: target.output({ worldManagement: this.worldManagement });
|
140
|
-
this.children.push(entity);
|
141
|
-
this.worldManagement.addEntity(entity);
|
142
|
-
};
|
143
|
-
Entity.prototype.removeChild = function (entity) {
|
144
|
-
var delIndex = this.children.indexOf(entity);
|
145
|
-
if (delIndex > -1) {
|
146
|
-
this.children.splice(delIndex, 1);
|
147
|
-
this.worldManagement.removeEntity(entity);
|
148
|
-
}
|
116
|
+
var listener = {
|
117
|
+
timeCounter: 0,
|
118
|
+
interval: interval,
|
119
|
+
job: job,
|
120
|
+
defaultRun: defaultRun,
|
121
|
+
};
|
122
|
+
this.timerJobListeners.push(listener);
|
123
|
+
return function () {
|
124
|
+
var index = _this.timerJobListeners.indexOf(listener);
|
125
|
+
if (index > -1) {
|
126
|
+
_this.timerJobListeners.splice(index, 1);
|
127
|
+
}
|
128
|
+
};
|
149
129
|
};
|
150
130
|
Entity.prototype.createBody = function (transform, options) {
|
151
131
|
this._body = this.onCreateBody(transform, options);
|
@@ -174,15 +154,16 @@ var Entity = /** @class */ (function (_super) {
|
|
174
154
|
if (!this.isTerminate) {
|
175
155
|
this.onUpdate();
|
176
156
|
}
|
177
|
-
for (var
|
178
|
-
var
|
157
|
+
for (var _i = 0, _a = this.timerJobListeners; _i < _a.length; _i++) {
|
158
|
+
var jobListener = _a[_i];
|
159
|
+
var timeCounter = jobListener.timeCounter, interval = jobListener.interval, job = jobListener.job, defaultRun = jobListener.defaultRun;
|
179
160
|
if (defaultRun || timeCounter / 1000 >= interval) {
|
180
161
|
timeCounter = 0;
|
181
162
|
job();
|
182
|
-
|
163
|
+
jobListener.defaultRun = false;
|
183
164
|
}
|
184
165
|
timeCounter += Renderer.deltaTime;
|
185
|
-
|
166
|
+
jobListener.timeCounter = timeCounter;
|
186
167
|
}
|
187
168
|
};
|
188
169
|
Entity.prototype.onUpdate = function () { };
|
package/lib/classes/scene.d.ts
CHANGED
@@ -4,6 +4,9 @@ import { LogicComponent } from "./logic-component";
|
|
4
4
|
import { SceneManagement } from "./scene-management";
|
5
5
|
import { EntitySult } from "./entities/entity-sult";
|
6
6
|
import { Prefab } from "./prefab";
|
7
|
+
import { SoundManagement } from "../export-types";
|
8
|
+
import { SoundType } from "../export-enums";
|
9
|
+
declare type SoundOptionsChangeListener<O extends SoundType> = (options: SoundManagement[O]) => void;
|
7
10
|
declare type LoadAssetsListener = (loadedAssets: boolean) => void;
|
8
11
|
declare type EntityPropsChangeListener<V = any> = (value: V) => void;
|
9
12
|
export declare abstract class Scene<UIP = any> {
|
@@ -11,7 +14,9 @@ export declare abstract class Scene<UIP = any> {
|
|
11
14
|
private worldManagement;
|
12
15
|
private _loadedAssets;
|
13
16
|
private loadAssetsListener;
|
14
|
-
private entityPropsChangeListeners;
|
17
|
+
private readonly entityPropsChangeListeners;
|
18
|
+
private readonly soundBackgroundOptionsChangeListeners;
|
19
|
+
private readonly soundOnceOptionsChangeListeners;
|
15
20
|
private readonly prefabs;
|
16
21
|
assetsDelay: number;
|
17
22
|
tag: string;
|
@@ -21,6 +26,14 @@ export declare abstract class Scene<UIP = any> {
|
|
21
26
|
constructor();
|
22
27
|
get UI(): ComponentType<UIP>;
|
23
28
|
get UIProps(): UIP;
|
29
|
+
get soundBackgroundOptions(): SoundManagement[SoundType.BACKGROUND];
|
30
|
+
get soundOnceOptions(): SoundManagement[SoundType.ONCE];
|
31
|
+
set soundBackgroundOptions(options: SoundManagement[SoundType.BACKGROUND]);
|
32
|
+
set soundOnceOptions(options: SoundManagement[SoundType.ONCE]);
|
33
|
+
onSoundOnceOptionsChange(func: SoundOptionsChangeListener<SoundType.ONCE>): () => void;
|
34
|
+
onSoundBackgroundOptionsChange(func: SoundOptionsChangeListener<SoundType.BACKGROUND>): () => void;
|
35
|
+
private bootSoundOptions;
|
36
|
+
protected getSoundOptions(): Partial<SoundManagement>;
|
24
37
|
protected onBorn(): void;
|
25
38
|
protected getUIProps(): UIP;
|
26
39
|
get loadedAssets(): boolean;
|
@@ -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;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,aAAK,kBAAkB,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;AAC1D,aAAK,yBAAyB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAE7D,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;IAChD,OAAO,CAAC,0BAA0B,
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"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"}
|
package/lib/classes/scene.js
CHANGED
@@ -35,10 +35,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
35
|
}
|
36
36
|
};
|
37
37
|
import { WorldManagement } from "./world-management";
|
38
|
-
import { tick } from "../utils";
|
38
|
+
import { copyProperties, tick } from "../utils";
|
39
|
+
import { Sound } from "./sound";
|
40
|
+
import { SoundType } from "../export-enums";
|
39
41
|
var Scene = /** @class */ (function () {
|
40
42
|
function Scene() {
|
41
43
|
this.entityPropsChangeListeners = {};
|
44
|
+
this.soundBackgroundOptionsChangeListeners = [];
|
45
|
+
this.soundOnceOptionsChangeListeners = [];
|
42
46
|
this.prefabs = [];
|
43
47
|
this.assetsDelay = 0;
|
44
48
|
this.sessionId = "".concat(Math.random(), "-").concat(new Date().getTime());
|
@@ -62,6 +66,62 @@ var Scene = /** @class */ (function () {
|
|
62
66
|
enumerable: false,
|
63
67
|
configurable: true
|
64
68
|
});
|
69
|
+
Object.defineProperty(Scene.prototype, "soundBackgroundOptions", {
|
70
|
+
get: function () {
|
71
|
+
return Sound.Management[SoundType.BACKGROUND];
|
72
|
+
},
|
73
|
+
set: function (options) {
|
74
|
+
copyProperties(Sound.Management[SoundType.BACKGROUND], options);
|
75
|
+
for (var _i = 0, _a = this.soundBackgroundOptionsChangeListeners; _i < _a.length; _i++) {
|
76
|
+
var listener = _a[_i];
|
77
|
+
listener(Sound.Management[SoundType.BACKGROUND]);
|
78
|
+
}
|
79
|
+
},
|
80
|
+
enumerable: false,
|
81
|
+
configurable: true
|
82
|
+
});
|
83
|
+
Object.defineProperty(Scene.prototype, "soundOnceOptions", {
|
84
|
+
get: function () {
|
85
|
+
return Sound.Management[SoundType.ONCE];
|
86
|
+
},
|
87
|
+
set: function (options) {
|
88
|
+
copyProperties(Sound.Management[SoundType.ONCE], options);
|
89
|
+
for (var _i = 0, _a = this.soundOnceOptionsChangeListeners; _i < _a.length; _i++) {
|
90
|
+
var listener = _a[_i];
|
91
|
+
listener(Sound.Management[SoundType.ONCE]);
|
92
|
+
}
|
93
|
+
},
|
94
|
+
enumerable: false,
|
95
|
+
configurable: true
|
96
|
+
});
|
97
|
+
Scene.prototype.onSoundOnceOptionsChange = function (func) {
|
98
|
+
var listeners = this.soundOnceOptionsChangeListeners;
|
99
|
+
listeners.push(func);
|
100
|
+
return function () {
|
101
|
+
var index = listeners.indexOf(func);
|
102
|
+
if (index > -1) {
|
103
|
+
listeners.splice(index, 1);
|
104
|
+
}
|
105
|
+
};
|
106
|
+
};
|
107
|
+
Scene.prototype.onSoundBackgroundOptionsChange = function (func) {
|
108
|
+
var listeners = this.soundBackgroundOptionsChangeListeners;
|
109
|
+
listeners.push(func);
|
110
|
+
return function () {
|
111
|
+
var index = listeners.indexOf(func);
|
112
|
+
if (index > -1) {
|
113
|
+
listeners.splice(index, 1);
|
114
|
+
}
|
115
|
+
};
|
116
|
+
};
|
117
|
+
Scene.prototype.bootSoundOptions = function () {
|
118
|
+
var options = this.getSoundOptions();
|
119
|
+
copyProperties(Sound.Management[SoundType.ONCE], options[SoundType.ONCE] || {});
|
120
|
+
copyProperties(Sound.Management[SoundType.BACKGROUND], options[SoundType.BACKGROUND] || {});
|
121
|
+
};
|
122
|
+
Scene.prototype.getSoundOptions = function () {
|
123
|
+
return {};
|
124
|
+
};
|
65
125
|
Scene.prototype.onBorn = function () { };
|
66
126
|
Scene.prototype.getUIProps = function () {
|
67
127
|
return {};
|
@@ -139,6 +199,7 @@ var Scene = /** @class */ (function () {
|
|
139
199
|
return this.prefabs.find(function (pf) { return pf instanceof Class; });
|
140
200
|
};
|
141
201
|
Scene.prototype.bootstrap = function (camera) {
|
202
|
+
this.bootSoundOptions();
|
142
203
|
this.worldManagement = new WorldManagement(camera, this);
|
143
204
|
var components = this.getComponents(camera);
|
144
205
|
var layerIndex = 0;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { ReactNode } from "react";
|
2
|
+
import { SoundType } from "../export-enums";
|
3
|
+
import { SoundManagement } from "../export-types";
|
4
|
+
import { Scene } from "./scene";
|
5
|
+
declare type SoundOnceWatcherProps = {
|
6
|
+
scene: Scene;
|
7
|
+
children: (value: SoundManagement[SoundType.ONCE]) => ReactNode;
|
8
|
+
};
|
9
|
+
export declare function SoundOnceWatcher({ scene, children }: SoundOnceWatcherProps): JSX.Element;
|
10
|
+
declare type SoundBackgroundWatcherProps = {
|
11
|
+
scene: Scene;
|
12
|
+
children: (value: SoundManagement[SoundType.BACKGROUND]) => ReactNode;
|
13
|
+
};
|
14
|
+
export declare function SoundBackgroundWatcher({ scene, children, }: SoundBackgroundWatcherProps): JSX.Element;
|
15
|
+
export {};
|
16
|
+
//# sourceMappingURL=sound-watcher.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sound-watcher.d.ts","sourceRoot":"","sources":["../../src/classes/sound-watcher.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,aAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;CACjE,CAAC;AACF,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,qBAAqB,eAS1E;AAED,aAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;CACvE,CAAC;AACF,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,QAAQ,GACT,EAAE,2BAA2B,eAU7B"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { useEffect, useState } from "react";
|
3
|
+
export function SoundOnceWatcher(_a) {
|
4
|
+
var scene = _a.scene, children = _a.children;
|
5
|
+
var _b = useState(scene.soundOnceOptions), values = _b[0], setValues = _b[1];
|
6
|
+
useEffect(function () {
|
7
|
+
return scene.onSoundOnceOptionsChange(function (options) {
|
8
|
+
setValues(options);
|
9
|
+
});
|
10
|
+
}, [scene]);
|
11
|
+
return _jsx(_Fragment, { children: children(values) });
|
12
|
+
}
|
13
|
+
export function SoundBackgroundWatcher(_a) {
|
14
|
+
var scene = _a.scene, children = _a.children;
|
15
|
+
var _b = useState(scene.soundBackgroundOptions), values = _b[0], setValues = _b[1];
|
16
|
+
useEffect(function () {
|
17
|
+
return scene.onSoundBackgroundOptionsChange(function (options) {
|
18
|
+
setValues(options);
|
19
|
+
});
|
20
|
+
}, [scene]);
|
21
|
+
return _jsx(_Fragment, { children: children(values) });
|
22
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { SoundType } from "../export-enums";
|
2
|
+
import { SoundManagement } from "../export-types";
|
3
|
+
export declare class Sound extends Audio {
|
4
|
+
private readonly type;
|
5
|
+
static Management: SoundManagement;
|
6
|
+
constructor(type?: SoundType);
|
7
|
+
playNow(): Promise<void>;
|
8
|
+
play(): Promise<void>;
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=sound.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../src/classes/sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,KAAM,SAAQ,KAAK;IAUlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,MAAM,CAAC,UAAU,EAAE,eAAe,CAOhC;gBAE2B,IAAI,GAAE,SAA0B;IAIvD,OAAO;IAKP,IAAI;CAMX"}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
2
|
+
var extendStatics = function (d, b) {
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
6
|
+
return extendStatics(d, b);
|
7
|
+
};
|
8
|
+
return function (d, b) {
|
9
|
+
if (typeof b !== "function" && b !== null)
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
11
|
+
extendStatics(d, b);
|
12
|
+
function __() { this.constructor = d; }
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
14
|
+
};
|
15
|
+
})();
|
16
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
17
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
18
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
19
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
20
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
21
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
22
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
23
|
+
});
|
24
|
+
};
|
25
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
26
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
27
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
28
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
29
|
+
function step(op) {
|
30
|
+
if (f) throw new TypeError("Generator is already executing.");
|
31
|
+
while (_) try {
|
32
|
+
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;
|
33
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
34
|
+
switch (op[0]) {
|
35
|
+
case 0: case 1: t = op; break;
|
36
|
+
case 4: _.label++; return { value: op[1], done: false };
|
37
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
38
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
39
|
+
default:
|
40
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
41
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
42
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
43
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
44
|
+
if (t[2]) _.ops.pop();
|
45
|
+
_.trys.pop(); continue;
|
46
|
+
}
|
47
|
+
op = body.call(thisArg, _);
|
48
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
49
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
50
|
+
}
|
51
|
+
};
|
52
|
+
var _a;
|
53
|
+
import { SoundType } from "../export-enums";
|
54
|
+
var Sound = /** @class */ (function (_super) {
|
55
|
+
__extends(Sound, _super);
|
56
|
+
function Sound(type) {
|
57
|
+
if (type === void 0) { type = SoundType.ONCE; }
|
58
|
+
var _this = _super.call(this) || this;
|
59
|
+
_this.type = type;
|
60
|
+
return _this;
|
61
|
+
}
|
62
|
+
Sound.prototype.playNow = function () {
|
63
|
+
return __awaiter(this, void 0, void 0, function () {
|
64
|
+
return __generator(this, function (_a) {
|
65
|
+
switch (_a.label) {
|
66
|
+
case 0:
|
67
|
+
this.currentTime = 0;
|
68
|
+
return [4 /*yield*/, this.play()];
|
69
|
+
case 1:
|
70
|
+
_a.sent();
|
71
|
+
return [2 /*return*/];
|
72
|
+
}
|
73
|
+
});
|
74
|
+
});
|
75
|
+
};
|
76
|
+
Sound.prototype.play = function () {
|
77
|
+
return __awaiter(this, void 0, void 0, function () {
|
78
|
+
var canPlay;
|
79
|
+
return __generator(this, function (_a) {
|
80
|
+
canPlay = Sound.Management[this.type].canPlay;
|
81
|
+
if (canPlay) {
|
82
|
+
_super.prototype.play.call(this);
|
83
|
+
}
|
84
|
+
return [2 /*return*/];
|
85
|
+
});
|
86
|
+
});
|
87
|
+
};
|
88
|
+
Sound.Management = (_a = {},
|
89
|
+
_a[SoundType.ONCE] = {
|
90
|
+
canPlay: true,
|
91
|
+
},
|
92
|
+
_a[SoundType.BACKGROUND] = {
|
93
|
+
canPlay: true,
|
94
|
+
},
|
95
|
+
_a);
|
96
|
+
return Sound;
|
97
|
+
}(Audio));
|
98
|
+
export { Sound };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"world-management.d.ts","sourceRoot":"","sources":["../../src/classes/world-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,WAAW,CAAC;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,qBAAa,eAAe;IAWd,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,MAAM;IAVnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGtB;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY,CACxB;IAEL,OAAO,CAAC,OAAO,CAAU;gBAEL,OAAO,EAAE,MAAM,EAAU,MAAM,EAAE,KAAK;IAgD1D,IAAI,MAAM,WAET;IAED,IAAI,MAAM,WAET;IAED,IAAI,KAAK,eAER;IAED,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAWf,UAAU;IAKV,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAK3D,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;IAKpD,SAAS,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAK7D,SAAS,CAAC,MAAM,EAAE,UAAU;IAW5B,YAAY,CAAC,MAAM,EAAE,UAAU;
|
1
|
+
{"version":3,"file":"world-management.d.ts","sourceRoot":"","sources":["../../src/classes/world-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,WAAW,CAAC;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,qBAAa,eAAe;IAWd,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,MAAM;IAVnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGtB;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY,CACxB;IAEL,OAAO,CAAC,OAAO,CAAU;gBAEL,OAAO,EAAE,MAAM,EAAU,MAAM,EAAE,KAAK;IAgD1D,IAAI,MAAM,WAET;IAED,IAAI,MAAM,WAET;IAED,IAAI,KAAK,eAER;IAED,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAWf,UAAU;IAKV,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAK3D,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;IAKpD,SAAS,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAK7D,SAAS,CAAC,MAAM,EAAE,UAAU;IAW5B,YAAY,CAAC,MAAM,EAAE,UAAU;IAe/B,MAAM;IAON,IAAI;CAKL"}
|
@@ -132,10 +132,13 @@ var WorldManagement = /** @class */ (function () {
|
|
132
132
|
WorldManagement.prototype.removeEntity = function (entity) {
|
133
133
|
if (entity instanceof Entity) {
|
134
134
|
World.remove(this.engine.world, entity.body);
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
135
|
+
}
|
136
|
+
for (var _i = 0, _a = entity.children; _i < _a.length; _i++) {
|
137
|
+
var child = _a[_i];
|
138
|
+
this.removeEntity(child);
|
139
|
+
}
|
140
|
+
if (entity.parent) {
|
141
|
+
entity.parent.unChild(entity);
|
139
142
|
}
|
140
143
|
delete this.entitiesName[entity.name];
|
141
144
|
delete this.entitiesHash[entity.id];
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"export-enums.d.ts","sourceRoot":"","sources":["../src/export-enums.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,UAAU,IAAA;CACX"}
|
package/lib/export-types.d.ts
CHANGED
@@ -2,8 +2,9 @@ import { Entity } from "./classes/entities/entity";
|
|
2
2
|
import { Sprite } from "./classes/sprites/sprite";
|
3
3
|
import type { Body, IChamferableBodyDefinition } from "matter-js";
|
4
4
|
import { Initialler } from "./export-interfaces";
|
5
|
+
import { Sound } from "./classes/sound";
|
6
|
+
import { SoundType } from "./export-enums";
|
5
7
|
export type { Collection } from "./classes/p5";
|
6
|
-
export declare type Sound = HTMLAudioElement;
|
7
8
|
export declare type Avatar = ReturnType<import("./classes/p5").P5["loadImage"]>;
|
8
9
|
export declare type Color = [number, number, number, number?];
|
9
10
|
export declare type EntityPrepare<E extends Entity> = EntityInitial<E>;
|
@@ -34,4 +35,7 @@ export declare type Configable<C extends Initialler = Initialler> = {
|
|
34
35
|
} | [{
|
35
36
|
new (): C;
|
36
37
|
}, Configation<C>];
|
38
|
+
export declare type SoundManagement = Record<SoundType, {
|
39
|
+
canPlay: boolean;
|
40
|
+
}>;
|
37
41
|
//# 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,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,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,OAAO,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,oBAAY,MAAM,GAAG,UAAU,CAAC,OAAO,cAAc,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACxE,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,IAAI,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,gBAAgB,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACjD;IACF,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,0BAA0B,CAAC;CAC1C,CAAC;AAGF,aAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAGxE,aAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1E,oBAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IAC5C,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,2BAA2B,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF,oBAAY,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5E,oBAAY,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IACpD;IACE,QAAQ,CAAC,CAAC;CACX,GACD,CAAC;IAAE,QAAQ,CAAC,CAAA;CAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC,oBAAY,eAAe,GAAG,MAAM,CAClC,SAAS,EACT;IACE,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CAAC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,WAAW,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,WAAW,CAAC"}
|
package/lib/index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SceneRunner.d.ts","sourceRoot":"","sources":["../../src/ui-components/SceneRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,SAAS,
|
1
|
+
{"version":3,"file":"SceneRunner.d.ts","sourceRoot":"","sources":["../../src/ui-components/SceneRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,SAAS,EAIV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,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,eA+ClB"}
|
@@ -10,15 +10,17 @@ var __assign = (this && this.__assign) || function () {
|
|
10
10
|
return __assign.apply(this, arguments);
|
11
11
|
};
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
13
|
-
import { useEffect, useMemo, } from "react";
|
13
|
+
import { useEffect, useMemo, useState, } from "react";
|
14
14
|
import { Sketch } from "./Sketch";
|
15
15
|
export function SceneRunner(_a) {
|
16
16
|
var assetsDelay = _a.assetsDelay, current = _a.current, width = _a.width, height = _a.height, AssetsLoader = _a.assetsLoader;
|
17
|
+
var _b = useState(false), isBootDone = _b[0], setBootDone = _b[1];
|
17
18
|
useEffect(function () {
|
18
19
|
current.loadAssets(assetsDelay);
|
19
20
|
}, [current, assetsDelay]);
|
20
21
|
var setup = function (camera) {
|
21
22
|
current.bootstrap(camera);
|
23
|
+
setBootDone(true);
|
22
24
|
};
|
23
25
|
var draw = function () {
|
24
26
|
current.action();
|
@@ -37,5 +39,5 @@ export function SceneRunner(_a) {
|
|
37
39
|
right: 0,
|
38
40
|
userSelect: "none",
|
39
41
|
zIndex: 2,
|
40
|
-
} }, { children: _jsx(current.UI, __assign({ scene: current }, current.UIProps)) }))] }))) : (assetsLoader);
|
42
|
+
} }, { children: isBootDone ? (_jsx(current.UI, __assign({ scene: current }, current.UIProps))) : (_jsx("div", {})) }))] }))) : (assetsLoader);
|
41
43
|
}
|
package/lib/utilities.d.ts
CHANGED
package/lib/utilities.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
package/lib/utilities.js
CHANGED
package/lib/utils.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import { Sound } from "./classes/sound";
|
2
|
+
import { SoundType } from "./export-enums";
|
3
|
+
import { Avatar } from "./export-types";
|
2
4
|
export declare function createAssetImage(src: string): Promise<Avatar>;
|
3
|
-
export declare function createAssetSound(src: string): Promise<Sound>;
|
5
|
+
export declare function createAssetSound(src: string, type?: SoundType): Promise<Sound>;
|
4
6
|
export declare function tick(delay?: number): Promise<unknown>;
|
5
7
|
export declare function copyProperties(source: Record<string, any>, target: Record<string, any>): void;
|
6
8
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,KAAK,CAAC,CAWhB;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO5B"}
|
package/lib/utils.js
CHANGED
@@ -35,6 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
35
|
}
|
36
36
|
};
|
37
37
|
import OutofScopeP5 from "p5";
|
38
|
+
import { Sound } from "./classes/sound";
|
38
39
|
var outofScopeP5;
|
39
40
|
document.addEventListener("DOMContentLoaded", function () {
|
40
41
|
var noop = document.createElement("div");
|
@@ -56,11 +57,11 @@ export function createAssetImage(src) {
|
|
56
57
|
});
|
57
58
|
});
|
58
59
|
}
|
59
|
-
export function createAssetSound(src) {
|
60
|
+
export function createAssetSound(src, type) {
|
60
61
|
return __awaiter(this, void 0, void 0, function () {
|
61
62
|
var media;
|
62
63
|
return __generator(this, function (_a) {
|
63
|
-
media = new
|
64
|
+
media = new Sound(type);
|
64
65
|
return [2 /*return*/, new Promise(function (res, rej) {
|
65
66
|
media.onloadedmetadata = function () {
|
66
67
|
res(media);
|