2017-08-28 21:29:27 +02:00
|
|
|
(function() {
|
2017-08-31 12:56:40 +02:00
|
|
|
"use strict";
|
|
|
|
|
2017-08-28 21:29:27 +02:00
|
|
|
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);
|
|
|
|
}());
|