summaryrefslogtreecommitdiff
path: root/src/systems/render.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/systems/render.js')
-rw-r--r--src/systems/render.js12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/systems/render.js b/src/systems/render.js
index 0a4c72d..4ec67c7 100644
--- a/src/systems/render.js
+++ b/src/systems/render.js
@@ -2,12 +2,18 @@ game.system.Render = (graphics) => {
const update = (elapsedTime, entities) => {
graphics.clear();
- for (let id in entities) {
- const entity = entities[id];
+ 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.sprite && entity.hasComponent("position") && entity.hasComponent("appearance")) {
entity.sprite.draw(elapsedTime, {...entity.components.position, ...entity.components.appearance});
}
- }
+ });
}
return { update };
}; \ No newline at end of file