mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
Various changes
- added `/:paletteSlug/:resolution` functionality for localhost testing
- created `currFile.sublayers` for *things that should zoom with the canvas layers*
- `currFile.layers` now solely contains the canvas layers
- added `getProjectData` to `FileManager`'s exported methods
---
- added `FileManager.localStorageSave` (it's basically just: localStorage.setItem("lpe-cache",FileManager.getProjectData()))
- added `FileManager.localStorageCheck` (it's basically just: `!!localStorage.getItem("lpe-cache")`)
- added `FileManager.localStorageLoad` (it's basically just: `return localStorage.getItem("lpe-cache")`)
- added `FileManager.localStorageReset` (for debugging purity)
---
- calling `FileManager.localStorageSave()` on mouse up (we should stress test this)
---
- changed lpe file format to `{canvasWidth:number,canvasHeight:number,selectedLayer:number,colors:[],layers:[]}`
- added backward compatibility for the old lpe file format
---
- added some canvas utility functions in `canvas_util`
- added Unsettled's color similarity utility functions in `color_util2`
---
- html boilerplate - wang tiles
-
- POC - tiny text boilerplate
- POC - tiny text font scraper
---
- WIP - added two optional url route parameters `/:paletteSlug/:resolution/:prefillWidth/:prefillBinaryStr`
- WIP POC - hbs_parser.js (outputs tree data about hbs file relationships)
This commit is contained in:
@@ -44,8 +44,10 @@ class SelectionTool extends Tool {
|
||||
this.currSelection = {};
|
||||
this.moveOffset = [0, 0];
|
||||
|
||||
this.updateBoundingBox(Math.min(Math.max(mouseX, 0), currFile.canvasSize[0]-1),
|
||||
Math.min(Math.max(mouseY, 0), currFile.canvasSize[1]-1));
|
||||
this.updateBoundingBox(
|
||||
Math.min(Math.max(mouseX, 0), currFile.canvasSize[0]-1),
|
||||
Math.min(Math.max(mouseY, 0), currFile.canvasSize[1]-1)
|
||||
);
|
||||
}
|
||||
|
||||
onDrag(mousePos) {
|
||||
@@ -66,8 +68,10 @@ class SelectionTool extends Tool {
|
||||
|
||||
|
||||
if (Util.cursorInCanvas(currFile.canvasSize, [mousePos[0]/currFile.zoom, mousePos[1]/currFile.zoom])) {
|
||||
this.updateBoundingBox(Math.min(Math.max(mouseX, 0), currFile.canvasSize[0]-1),
|
||||
Math.min(Math.max(mouseY, 0), currFile.canvasSize[1]-1));
|
||||
this.updateBoundingBox(
|
||||
Math.min(Math.max(mouseX, 0), currFile.canvasSize[0]-1),
|
||||
Math.min(Math.max(mouseY, 0), currFile.canvasSize[1]-1)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,8 +85,10 @@ class SelectionTool extends Tool {
|
||||
let mouseY = mousePos[1] / currFile.zoom;
|
||||
|
||||
if (Util.cursorInCanvas(currFile.canvasSize, [mousePos[0]/currFile.zoom, mousePos[1]/currFile.zoom])) {
|
||||
this.updateBoundingBox(Math.min(Math.max(mouseX, 0), currFile.canvasSize[0]-1),
|
||||
Math.min(Math.max(mouseY, 0), currFile.canvasSize[1]-1));
|
||||
this.updateBoundingBox(
|
||||
Math.min(Math.max(mouseX, 0), currFile.canvasSize[0]-1),
|
||||
Math.min(Math.max(mouseY, 0), currFile.canvasSize[1]-1)
|
||||
);
|
||||
}
|
||||
|
||||
this.boundingBoxCenter = [this.boundingBox.minX + (this.boundingBox.maxX - this.boundingBox.minX) / 2,
|
||||
@@ -211,6 +217,7 @@ class SelectionTool extends Tool {
|
||||
}
|
||||
}
|
||||
}
|
||||
////console.log('this.currSelection === ',this.currSelection);
|
||||
|
||||
// Save the selection outline
|
||||
this.outlineData = currFile.VFXLayer.context.getImageData(this.boundingBox.minX,
|
||||
@@ -246,16 +253,25 @@ class SelectionTool extends Tool {
|
||||
this.boundingBox.minY + this.moveOffset[1]);
|
||||
}
|
||||
|
||||
drawBoundingBox() {
|
||||
drawBoundingBox(xo = 0, yo = 0) {
|
||||
currFile.VFXLayer.context.fillStyle = "red";
|
||||
currFile.VFXLayer.context.fillRect(this.boundingBox.minX + this.moveOffset[0],
|
||||
this.boundingBox.minY + this.moveOffset[1], 1, 1);
|
||||
currFile.VFXLayer.context.fillRect(this.boundingBox.minX+ this.moveOffset[0],
|
||||
this.boundingBox.maxY + this.moveOffset[1], 1, 1);
|
||||
currFile.VFXLayer.context.fillRect(this.boundingBox.maxX+ this.moveOffset[0],
|
||||
this.boundingBox.minY + this.moveOffset[1], 1, 1);
|
||||
currFile.VFXLayer.context.fillRect(this.boundingBox.maxX+ this.moveOffset[0],
|
||||
this.boundingBox.maxY + this.moveOffset[1], 1, 1);
|
||||
|
||||
currFile.VFXLayer.context.fillRect(
|
||||
this.boundingBox.minX + this.moveOffset[0] - xo,
|
||||
this.boundingBox.minY + this.moveOffset[1] - yo,
|
||||
1, 1);
|
||||
currFile.VFXLayer.context.fillRect(
|
||||
this.boundingBox.minX + this.moveOffset[0] - xo,
|
||||
this.boundingBox.maxY + this.moveOffset[1] + yo,
|
||||
1, 1);
|
||||
currFile.VFXLayer.context.fillRect(
|
||||
this.boundingBox.maxX + this.moveOffset[0] + xo,
|
||||
this.boundingBox.minY + this.moveOffset[1] - yo,
|
||||
1, 1);
|
||||
currFile.VFXLayer.context.fillRect(
|
||||
this.boundingBox.maxX + this.moveOffset[0] + xo,
|
||||
this.boundingBox.maxY + this.moveOffset[1] + yo,
|
||||
1, 1);
|
||||
}
|
||||
|
||||
isBorderOfBox(pixel) {
|
||||
|
||||
Reference in New Issue
Block a user