LPE Loading Improvements

This commit is contained in:
Leamsi Escribano 2021-07-19 20:08:46 -05:00
parent f5fc762c5c
commit 94add8f3f7

View File

@ -67,7 +67,7 @@ const Startup = (() => {
if (fileContent != null) { if (fileContent != null) {
loadFromLPE(fileContent); loadFromLPE(fileContent);
// Deleting the default layer // Deleting the default layer
deleteLayer(false); //deleteLayer(false);
} }
} }
@ -80,62 +80,19 @@ const Startup = (() => {
// Creating the first layer // Creating the first layer
currentLayer = new Layer(width, height, canvas, layerListEntry); currentLayer = new Layer(width, height, canvas, layerListEntry);
currentLayer.canvas.style.zIndex = 2; currentLayer.canvas.style.zIndex = 2;
}
else {
// Deleting all the extra layers and canvases, leaving only one
let nLayers = layers.length;
for (let i=2; i < layers.length - nAppLayers; i++) {
let currentEntry = layers[i].menuEntry;
let associatedLayer;
if (currentEntry != null) { // Adding the checkerboard behind it
// Getting the associated layer checkerBoard = new Layer(width, height, checkerBoardCanvas);
associatedLayer = getLayerByID(currentEntry.id); VFXLayer = new Layer(width, height, VFXCanvas);
TMPLayer = new Layer(width, height, TMPCanvas);
pixelGrid = new Layer(width, height, pixelGridCanvas);
// Deleting its canvas // Setting the general canvasSize
associatedLayer.canvas.remove(); canvasSize = currentLayer.canvasSize;
// Adding the id to the unused ones // Cloning the entry so that when I change something on the first layer, those changes aren't propagated to the other ones
unusedIDs.push(currentEntry.id);
// Removing the entry from the menu
currentEntry.remove();
}
}
// Removing the old layers from the list
for (let i=2; i<nLayers - nAppLayers; i++) {
layers.splice(2, 1);
}
// Setting up the current layer
layers[1] = new Layer(width, height, layers[1].canvas, layers[1].menuEntry);
currentLayer = layers[1];
currentLayer.canvas.style.zIndex = 2;
// Updating canvas size to the new size
for (let i=0; i<nLayers; i++) {
layers[i].canvasSize = [width, height];
}
}
// Adding the checkerboard behind it
checkerBoard = new Layer(width, height, checkerBoardCanvas);
// Creating the vfx layer on top of everything
VFXLayer = new Layer(width, height, VFXCanvas);
// Tmp layer to draw previews on
TMPLayer = new Layer(width, height, TMPCanvas);
// Pixel grid
pixelGrid = new Layer(width, height, pixelGridCanvas);
// Setting the general canvasSize
canvasSize = currentLayer.canvasSize;
if (firstPixel) {
// Cloning the entry so that when I change something on the first layer, those changes aren't
// propagated to the other ones
layerListEntry = layerListEntry.cloneNode(true); layerListEntry = layerListEntry.cloneNode(true);
// Adding the first layer and the checkerboard to the list of layers // Adding the first layer and the checkerboard to the list of layers
layers.push(checkerBoard); layers.push(checkerBoard);
layers.push(currentLayer); layers.push(currentLayer);
@ -143,6 +100,34 @@ const Startup = (() => {
layers.push(TMPLayer); layers.push(TMPLayer);
layers.push(pixelGrid); layers.push(pixelGrid);
} }
else {
// Deleting all the extra layers and canvases, leaving only one, (nAppLayers=3)
const nLayers = layers.length;
for (let i=2; i < nLayers - nAppLayers; i++) {
const currentEntry = layers[i].menuEntry;
let associatedLayer;
if (currentEntry != null) {
// Getting the associated layer
associatedLayer = getLayerByID(currentEntry.id);
// Deleting its canvas
associatedLayer.canvas.remove();
// Adding the id to the unused ones
unusedIDs.push(currentEntry.id);
// Removing the entry from the menu
currentEntry.remove();
}
}
// Setting up the current layer
layers[1] = new Layer(width, height, canvas, layerListEntry);
currentLayer = layers[1];
currentLayer.canvas.style.zIndex = 9;
// Updating canvas size to the new size
for (let i=0; i<nLayers; i++) {
layers[i].canvasSize = [width, height];
}
}
} }
function initPalette() { function initPalette() {