@curbl/ecs
TypeScript icon, indicating that this package has built-in type declarations

3.2.2 • Public • Published

CURBL-ECS

curbl-ecs is a lightweight Entity Component.

Example

  • Creating a Component
import { ECS } from '@curbl/ecs';

const ecs = new ECS();

@ecs.Component('Position') 
class PositionComponent {
    x: number = 0;
    y: number = 0;
}
  • Adding a Entity with components
const ecs = new ECS();
const entity = ecs.addEntity(new PositionComponent());
  • Create entity and add Component
const ecs = new ECS();
const entity = ecs.addEntity();
entity.add(new PositionComponent());
  • Get Component from Entity
entity.get<PositionComponent>('Position').x = 42;
  • Creating a System
const ecs = new ECS();

@ecs.System('Position')
export class MySystem {

    setUp(): void {
        //Called when the System is created/added to the ECS 
    }

    tearDown(): void {
        //Called when the System is removed from the ECS
    }

    update(): void {
        const entities = this.entities();
        for (let i = 0, entity: Entity; entity = entities[i]; i++) {
            //Do stuff with the entities
        }
    }
}

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
3.2.22latest

Version History

VersionDownloads (Last 7 Days)Published
3.2.22
3.2.12
3.2.1-91
3.2.1-82
3.2.1-72
3.2.1-62
3.2.1-51
3.2.1-43
3.2.1-32
3.2.1-22
3.2.0-03
3.1.02
3.0.03
2.2.12
2.2.00
2.1.21

Package Sidebar

Install

npm i @curbl/ecs

Weekly Downloads

30

Version

3.2.2

License

MIT

Unpacked Size

189 kB

Total Files

22

Last publish

Collaborators

  • nan0c