mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
![pxlvxl](/assets/img/avatar_default.png)
- 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)
67 lines
2.2 KiB
JavaScript
67 lines
2.2 KiB
JavaScript
class BrushTool extends ResizableTool {
|
|
constructor(name, options, switchFunction) {
|
|
super(name, options);
|
|
|
|
Events.on('click', this.mainButton, switchFunction, this);
|
|
Events.on('click', this.biggerButton, this.increaseSize.bind(this));
|
|
Events.on('click', this.smallerButton, this.decreaseSize.bind(this));
|
|
|
|
this.resetTutorial();
|
|
this.addTutorialTitle("Pencil tool");
|
|
this.addTutorialKey("B", " to select the brush");
|
|
this.addTutorialKey("Left drag", " to draw a stroke");
|
|
this.addTutorialKey("Right drag", " to resize the brush");
|
|
this.addTutorialKey("+ or -", " to resize the brush");
|
|
this.addTutorialImg("/images/ToolTutorials/brush-tutorial.gif");
|
|
}
|
|
|
|
onStart(mousePos, cursorTarget) {
|
|
super.onStart(mousePos);
|
|
if (cursorTarget === undefined)
|
|
return;
|
|
new HistoryState().EditCanvas();
|
|
|
|
//draw line to current pixel
|
|
if (cursorTarget.className == 'drawingCanvas' || cursorTarget.className == 'drawingCanvas') {
|
|
currFile.currentLayer.drawLine(
|
|
Math.floor(mousePos[0]/currFile.zoom),
|
|
Math.floor(mousePos[1]/currFile.zoom),
|
|
Math.floor(mousePos[0]/currFile.zoom),
|
|
Math.floor(mousePos[1]/currFile.zoom),
|
|
this.currSize
|
|
);
|
|
}
|
|
|
|
currFile.currentLayer.updateLayerPreview();
|
|
}
|
|
|
|
onDrag(mousePos, cursorTarget) {
|
|
super.onDrag(mousePos);
|
|
|
|
if (cursorTarget === undefined)
|
|
return;
|
|
//draw line to current pixel
|
|
if (cursorTarget.className == 'drawingCanvas' || cursorTarget.className == 'drawingCanvas') {
|
|
currFile.currentLayer.drawLine(Math.floor(this.prevMousePos[0]/currFile.zoom),
|
|
Math.floor(this.prevMousePos[1]/currFile.zoom),
|
|
Math.floor(this.currMousePos[0]/currFile.zoom),
|
|
Math.floor(this.currMousePos[1]/currFile.zoom),
|
|
this.currSize
|
|
);
|
|
}
|
|
|
|
currFile.currentLayer.updateLayerPreview();
|
|
}
|
|
|
|
onEnd(mousePos) {
|
|
super.onEnd(mousePos);
|
|
}
|
|
|
|
onSelect() {
|
|
super.onSelect();
|
|
}
|
|
|
|
onDeselect() {
|
|
super.onDeselect();
|
|
}
|
|
} |