summaryrefslogtreecommitdiff
path: root/src/systems/render.js
blob: d3bacb8ba7e56576fda7728f7ebc41242e0dd4f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
game.system.Render = (graphics) => {
  const update = (elapsedTime, entities, _changedIds) => {
    graphics.clear();

    const entitiesArray = Object.keys(entities).map(key => entities[key]);
    const sortedEntities = entitiesArray.sort((a, b) => {
      const aprior = a.hasComponent("loadPriority") ? a.components.loadPriority.priority : 0;
      const bprior = b.hasComponent("loadPriority") ? b.components.loadPriority.priority : 0;
      return bprior - aprior;
    });

    sortedEntities.forEach((entity) => {
      if (entity.hasComponent("position") && entity.hasComponent("appearance") && entity.hasComponent("sprite")) {
        game.sprites[entity.components.sprite.spriteName].draw(elapsedTime, {...entity.components.position, ...entity.components.appearance});
      }
    });

    return new Set();
  }
  return { update };
};