Skip to content

Commit

Permalink
fix: transform system memory leak (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
pravusjif authored Nov 3, 2020
1 parent 981ef95 commit 90f8500
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/transform/system/transfromSystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export class TransformSystem implements ISystem {
private static _instance: TransformSystem | null = null

private _components: ComponentConstructor<ITransformComponent>[] = []
private _componentGroups = []

static createAndAddToEngine(): TransformSystem {
if (this._instance == null) {
Expand All @@ -27,24 +28,32 @@ export class TransformSystem implements ISystem {
private constructor() {
TransformSystem._instance = this
this._components.push(MoveTransformComponent)
this._componentGroups.push(engine.getComponentGroup(MoveTransformComponent, Transform))

this._components.push(RotateTransformComponent)
this._componentGroups.push(engine.getComponentGroup(RotateTransformComponent, Transform))

this._components.push(ScaleTransformComponent)
this._componentGroups.push(engine.getComponentGroup(ScaleTransformComponent, Transform))

this._components.push(FollowPathComponent)
this._componentGroups.push(engine.getComponentGroup(FollowPathComponent, Transform))

this._components.push(KeepRotatingComponent)
this._componentGroups.push(engine.getComponentGroup(KeepRotatingComponent, Transform))
}

update(dt: number) {
this._components.forEach(component => {
this.updateComponent(dt, component)
})
for (let i = 0; i < this._components.length; i++) {
this.updateComponent(dt, this._components[i], this._componentGroups[i])
}
}

private updateComponent<T extends ITransformComponent>(
dt: number,
component: ComponentConstructor<T>
component: ComponentConstructor<T>,
group: ComponentGroup
) {
const group = engine.getComponentGroup(component, Transform)

group.entities.forEach(entity => {
const transform = entity.getComponent(Transform)
const comp = entity.getComponent(component)
Expand Down

0 comments on commit 90f8500

Please sign in to comment.