0.0.3 • Published 7 years ago
peco.ecs v0.0.3
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 } }