mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
fix : reduce piskel model size : ImportController
+ ImportController is no longer relying on the deserializer to build a piskel instance + Static builders have been added to Piskel and Layer to help easily create new instances from existing elements
This commit is contained in:
@ -10,6 +10,19 @@
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a Layer instance from an already existing set a Frames
|
||||
* @static
|
||||
* @param {String} name layer's name
|
||||
* @param {Array<pskl.model.Frame>} frames should all have the same dimensions
|
||||
* @return {pskl.model.Layer}
|
||||
*/
|
||||
ns.Layer.fromFrames = function (name, frames) {
|
||||
var layer = new ns.Layer(name);
|
||||
frames.forEach(layer.addFrame.bind(layer));
|
||||
return layer;
|
||||
};
|
||||
|
||||
ns.Layer.prototype.getName = function () {
|
||||
return this.name;
|
||||
};
|
||||
|
@ -21,6 +21,24 @@
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a piskel instance from an existing set of (non empty) layers
|
||||
* Layers should all be synchronized : same number of frames, same dimensions
|
||||
* @param {Array<pskl.model.Layer>} layers
|
||||
* @return {pskl.model.Piskel}
|
||||
*/
|
||||
ns.Piskel.fromLayers = function (layers) {
|
||||
var piskel = null;
|
||||
if (layers.length > 0 && layers[0].length() > 0) {
|
||||
var sampleFrame = layers[0].getFrameAt(0);
|
||||
piskel = new pskl.model.Piskel(sampleFrame.getWidth(), sampleFrame.getHeight());
|
||||
layers.forEach(piskel.addLayer.bind(piskel));
|
||||
} else {
|
||||
throw 'Piskel.fromLayers expects array of non empty pskl.model.Layer as first argument';
|
||||
}
|
||||
return piskel;
|
||||
};
|
||||
|
||||
ns.Piskel.prototype.getLayers = function () {
|
||||
return this.layers;
|
||||
};
|
||||
|
Reference in New Issue
Block a user