Path: blob/main/website/GAUSS/js/anims-manager.js
2941 views
var Anim = function(id)1{2this.id = id;3this.frames = new Array();4this.loop = true;5this.start_idx = 0;6this.animInt = null;7this.current_frame = this.start_idx;8this.frame_rate = 150;9this.addFrame = addAnimFrame;10this.removeFrame = removeAnimFrame;11this.incrCurrIdx = incrCurrFrame;12this.play = startRollingFrames;13this.stop = stopRollingFrames;14};1516var addAnimFrame = function(idx, image)17{18this.frames[idx] = image;19};2021var removeAnimFrame = function(idx)22{23this.frames.splice(idx, 1);24};2526var incrCurrFrame = function()27{28this.current_frame = (this.current_frame + 1) % this.frames.length;29};3031var createNewAnim = function(id)32{33var newAnim = new Anim(id);34editorAnimsList.push(newAnim);35editorMapIdAnim[id] = newAnim;36};3738var startRollingFrames = function()39{40if(this.animInt)41return;42var that = this;43this.animInt = setInterval(function()44{45if(that.loop === false && that.current_frame === that.frames.length - 1)46{47clearInterval(that.animInt);48that.animInt = null;49return;50}51that.incrCurrIdx();52}, that.frame_rate);53};5455var stopRollingFrames = function()56{57clearInterval(this.animInt);58this.animInt = null;59this.current_frame = this.start_idx;60};6162var editorAnimsList = [];63var editorMapIdAnim = {};64var editorAnimsCount = 0;6566var deleteEditorAnim = function(id)67{68var anim = editorMapIdAnim[id];69editorAnimsList.splice(editorCharactersList.indexOf(anim), 1);70delete editorMapIdAnim[id];71};7273747576