js13kgames2017-muri/src/entity.js
2017-08-31 12:56:40 +02:00

53 lines
1.2 KiB
JavaScript

(function() {
"use strict";
var entity = {};
var allEntities = [];
entity.get = function(name) {
for (var i in allEntities)
if (allEntities[i].name === name)
return allEntities[i];
return false;
};
entity.create = function(name, sprite) {
allEntities.push({
name: name,
sprite: sprite,
callbacks: []
});
return {
addCallback: function(callback) {
entity.get(name).callbacks.push(callback);
return this;
}
};
};
entity.update = function() {
var clickedOnASprite = false;
allEntities.forEach(function(e) {
e.sprite.update();
if (muri.get('mouse').clickedOn(e.sprite)) {
clickedOnASprite = true;
e.callbacks.forEach(function(c) {
c();
});
}
});
if (clickedOnASprite)
muri.get('mouse').releaseClick();
};
entity.render = function() {
allEntities.forEach(function(e) {
e.sprite.render();
});
};
entity.name = 'entity';
muri.modules.push(entity);
}());