CabinGame/Program/src/Systems/ZOrderSystem.ts
2020-02-17 12:56:41 +01:00

38 lines
No EOL
1.2 KiB
TypeScript

import { PixiRepresentation } from "../Components/pixiRepresentation";
import { Entity, System } from "ecsy";
import { Position } from "../Components/position";
import { OrderZ } from "../Components/orderZ";
export class ZOrderSystem extends System {
priority: 98
// This method will get called on every frame by default
execute() {
this.queries.objects.added.forEach((entity:Entity) => {
let representation = entity.getComponent(PixiRepresentation).value
let order = entity.getComponent(OrderZ)
let pos = entity.getComponent(Position).value
representation.zIndex = pos.y + order.offset
});
this.queries.objects.changed.forEach((entity:Entity) => {
let representation = entity.getComponent(PixiRepresentation).value
let order = entity.getComponent(OrderZ)
let pos = entity.getComponent(Position).value
representation.zIndex = pos.y + order.offset
});
}
static queries = {
objects: {
// add all draw components here as not thingy otherwise your representation will be killed
components: [ Position, OrderZ , PixiRepresentation ],
listen: {
added: true,
changed: [ Position, OrderZ ],
}
},
}
queries: any;
}