fix : reduce piskel model size

- added backward compatible implementation for v1 models
This commit is contained in:
jdescottes
2013-11-13 22:57:07 +01:00
parent 4f54715f70
commit 781abb735b

View File

@@ -30,13 +30,7 @@
}); });
}, },
deserializePiskel : function (piskelString) {
var data = JSON.parse(piskelString);
return this.createPiskel(data);
},
/** /**
* Similar to deserializePiskel, but dealing directly with a parsed piskel
* @param {Object} data JSON.parse of a serialized piskel * @param {Object} data JSON.parse of a serialized piskel
* @return {pskl.model.Piskel} a piskel * @return {pskl.model.Piskel} a piskel
*/ */
@@ -45,13 +39,13 @@
if (data.modelVersion == Constants.MODEL_VERSION) { if (data.modelVersion == Constants.MODEL_VERSION) {
var piskelData = data.piskel; var piskelData = data.piskel;
piskel = new pskl.model.Piskel(piskelData.width, piskelData.height); piskel = new pskl.model.Piskel(piskelData.width, piskelData.height);
layersToLoad = piskelData.layers;
piskelData.layers.forEach(function (serializedLayer) { piskelData.layers.forEach(function (serializedLayer) {
var layer = pskl.utils.Serializer.deserializeLayer(serializedLayer); var layer = pskl.utils.Serializer.deserializeLayer(serializedLayer);
piskel.addLayer(layer); piskel.addLayer(layer);
}); });
} else if (data.modelVersion == 1) { } else if (data.modelVersion == 1) {
throw 'No backward compatible adapter for modelVersion 1'; piskel = pskl.utils.Serializer.backwardDeserializer_v1(data);
} else { } else {
piskel = pskl.utils.Serializer.backwardDeserializer_(data); piskel = pskl.utils.Serializer.backwardDeserializer_(data);
} }
@@ -91,6 +85,23 @@
return layer; return layer;
}, },
deserializeFrame : function (frameString) {
var framePixelGrid = JSON.parse(frameString);
return pskl.model.Frame.fromPixelGrid(framePixelGrid);
},
backwardDeserializer_v1 : function (data) {
var piskelData = data.piskel;
var piskel = new pskl.model.Piskel(piskelData.width, piskelData.height);
piskelData.layers.forEach(function (serializedLayer) {
var layer = pskl.utils.Serializer.deserializeLayer_v1(serializedLayer);
piskel.addLayer(layer);
});
return piskel;
},
deserializeLayer_v1 : function (layerString) { deserializeLayer_v1 : function (layerString) {
var layerData = JSON.parse(layerString); var layerData = JSON.parse(layerString);
var layer = new pskl.model.Layer(layerData.name); var layer = new pskl.model.Layer(layerData.name);
@@ -102,11 +113,6 @@
return layer; return layer;
}, },
deserializeFrame : function (frameString) {
var framePixelGrid = JSON.parse(frameString);
return pskl.model.Frame.fromPixelGrid(framePixelGrid);
},
/** /**
* Deserialize old piskel framesheets. Initially piskels were stored as arrays of frames : "[[pixelGrid],[pixelGrid],[pixelGrid]]". * Deserialize old piskel framesheets. Initially piskels were stored as arrays of frames : "[[pixelGrid],[pixelGrid],[pixelGrid]]".
*/ */