Skip to content

Commit 478afc7

Browse files
committed
add ComponentEvent, Component.dispatch method
1 parent b5eab18 commit 478afc7

File tree

5 files changed

+34
-5
lines changed

5 files changed

+34
-5
lines changed

index.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export { default as ComponentEvent } from './lib/event';
12
export { default as Component } from './lib/component';
23
export { default as Entity } from './lib/entity';
34
export { default as Level } from './lib/level';

lib/component.js

+13
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import ComponentEvent from './event';
2+
13
export default class Component {
24
constructor() {
35
this._enabled = true;
@@ -42,6 +44,17 @@ export default class Component {
4244
return this._entity;
4345
}
4446

47+
dispatch(evt, opts) {
48+
let event = evt;
49+
if (typeof evt === 'string') {
50+
event = new ComponentEvent(evt, opts);
51+
}
52+
53+
event.target = this._entity;
54+
event.component = this;
55+
this._entity.dispatch(event);
56+
}
57+
4558
destroy() {
4659
if (this._destroyed) {
4760
return;

lib/event.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Event } from 'event-sys';
2+
3+
export default class ComponentEvent extends Event {
4+
/**
5+
* @param {string} name
6+
* @param {object} opts
7+
* @param {object} [opts.detail]
8+
* @param {boolean} [opts.bubbles]
9+
*/
10+
constructor(name, opts) {
11+
super(name, opts);
12+
13+
this.component = null;
14+
}
15+
}

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ecs.js",
3-
"version": "1.4.1",
3+
"version": "1.5.0",
44
"description": "Entity-Component-System for javascript",
55
"main": "dist/ecs.js",
66
"module": "index.js",
@@ -31,7 +31,7 @@
3131
"homepage": "https://github.com/gamedev-js/ecs.js/issues",
3232
"dependencies": {},
3333
"devDependencies": {
34-
"event-sys": "^1.1.0",
34+
"event-sys": "^1.1.3",
3535
"fs-jetpack": "^0.13.0",
3636
"memop": "^1.6.0",
3737
"rollup": "^0.54.1",

yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -478,9 +478,9 @@ esutils@^2.0.2:
478478
version "2.0.2"
479479
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
480480

481-
event-sys@^1.1.0:
482-
version "1.1.0"
483-
resolved "https://registry.yarnpkg.com/event-sys/-/event-sys-1.1.0.tgz#eaf64361acf885a7e6a8eae3e7cc3acfc9aed23a"
481+
event-sys@^1.1.3:
482+
version "1.1.3"
483+
resolved "https://registry.yarnpkg.com/event-sys/-/event-sys-1.1.3.tgz#55bc5bb15f8f54da8e3576f80c37833050b572f1"
484484

485485
events-to-array@^1.0.1:
486486
version "1.1.2"

0 commit comments

Comments
 (0)