0.0.3 • Published 7 years ago

peco.ecs v0.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

peco.ecs

lodash-like entity component system library

npm install peco.ecs

Components

createComponent

Create component object.

const position = createComponent('position', { x: 0, y: 0 });
// => { name: 'position', value: { x: 0, y: 0 } }

createComponentFactory

Create component factory.

const Position = createComponentFactory('position', { x: 0, y: 0 });

const position1 = Position();
// => { name: 'position', value: { x: 0, y: 0 } }

const position2 = Position({ x: 5 });
// => { name: 'position', value: { x: 5, y: 0 } }

extendComponentFactory

Create extended component factory. For overriding the default values.

const Position = createComponentFactory('position', { x: 0, y: 0 });
const PlayerPosition = extendComponentFactory(Position, { x: 100, y: 200 });
const position = PlayerPosition();
// => { name: 'position', value: { x: 100, y: 200 } }

Entities

createEntity

Create entity object.

const player = createEntity('player-1', [ 'player' ], {
    position: { x: 0, y: 0 },
});
// player.id         => 'player-1'
// player.flags      => { player: true },
// player.components => { position: { x: 0, y: 0 } }

createEntityFactory

Create entity facotry.

const components = {
    Position: createComponentFactory('position', { x: 0, y: 0 }),
    Velocity: createComponentFactory('velocity', { x: 0, y: 0 }),
};
const Player = createEntityFactory('player-1', [ 'player' ], [
    components.Position,
    components.Velocity,
]);

const player1 = Player('player-1');
const player2 = Player('player-2');
...
// player.id         => 'player-1'
// player.flags      => { player: true },
// player.components => { position: { x: 0, y: 0 } }
0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago