/** * System takes care of updating all the entities (based on their component data) * @param apiSystem GameLib.API.System * @constructor */ GameLib.System.Animation = function( apiSystem ) { GameLib.System.call( this, apiSystem ); }; GameLib.System.Animation.prototype = Object.create(GameLib.System.prototype); GameLib.System.Animation.prototype.constructor = GameLib.System.Animation; GameLib.System.Animation.prototype.start = function() { GameLib.System.prototype.start.call(this); this.animateSubscription = GameLib.Event.Subscribe( GameLib.Event.ANIMATE, this.animate ); }; GameLib.System.Animation.prototype.animate = function(data, clientCallback) { this.renderSubscription = GameLib.Event.Subscribe( GameLib.Event.BEFORE_RENDER, function(data) { if (clientCallback(data)) { this.renderSubscription.remove(); } }.bind(this) ) }; GameLib.System.Animation.prototype.stop = function() { GameLib.System.prototype.stop.call(this); this.animateSubscription.remove(); };