mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
@ -101,7 +101,7 @@ const ColorModule = (() => {
|
||||
document.querySelector('#colors-menu li.selected')?.classList.remove('selected');
|
||||
|
||||
//set current color
|
||||
updateCurrentColor(e.target.style.backgroundColor);
|
||||
updateCurrentColor(Color.cssToHex(e.target.style.backgroundColor));
|
||||
|
||||
//make color selected
|
||||
e.target.parentElement.classList.add('selected');
|
||||
@ -136,8 +136,6 @@ const ColorModule = (() => {
|
||||
|
||||
//show color picker
|
||||
addedColor.firstElementChild.jscolor.show();
|
||||
console.log('showing picker');
|
||||
|
||||
//hide edit button
|
||||
addedColor.lastChild.classList.add('hidden');
|
||||
}
|
||||
@ -427,6 +425,9 @@ const ColorModule = (() => {
|
||||
}
|
||||
|
||||
function updateCurrentColor(color, refLayer) {
|
||||
if (color[0] != '#')
|
||||
color = '#' + color;
|
||||
|
||||
if (refLayer)
|
||||
color = refLayer.context.fillStyle;
|
||||
|
||||
|
13
js/Input.js
13
js/Input.js
@ -1,6 +1,7 @@
|
||||
const Input = (() => {
|
||||
let dragging = false;
|
||||
let currentMouseEvent = undefined;
|
||||
let lastMouseTarget = undefined;
|
||||
let spacePressed = false;
|
||||
let altPressed = false;
|
||||
let ctrlPressed = false;
|
||||
@ -19,6 +20,7 @@ const Input = (() => {
|
||||
Events.on("mouseup", window, onMouseUp);
|
||||
|
||||
function onMouseDown(event) {
|
||||
lastMouseTarget = event.target;
|
||||
currentMouseEvent = event;
|
||||
dragging = true;
|
||||
|
||||
@ -154,6 +156,10 @@ const Input = (() => {
|
||||
case 32:
|
||||
spacePressed = true;
|
||||
break;
|
||||
case 46:
|
||||
console.log("Pressed del");
|
||||
Events.emit("del");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -178,12 +184,17 @@ const Input = (() => {
|
||||
return spacePressed;
|
||||
}
|
||||
|
||||
function getLastTarget() {
|
||||
return lastMouseTarget;
|
||||
}
|
||||
|
||||
return {
|
||||
isDragging,
|
||||
getCurrMouseEvent,
|
||||
getCursorPosition,
|
||||
isAltPressed,
|
||||
isCtrlPressed,
|
||||
isSpacePressed
|
||||
isSpacePressed,
|
||||
getLastTarget
|
||||
}
|
||||
})();
|
@ -345,11 +345,11 @@ const LayerList = (() => {
|
||||
// Merging all the layer but the last one
|
||||
for (let i=0; i<visibleLayers.length - 1; i++) {
|
||||
nToFlatten++;
|
||||
console.log(visibleLayers[i].menuEntry.nextElementSibling);
|
||||
|
||||
new HistoryState().FlattenTwoVisibles(
|
||||
visibleLayers[i + 1].context.getImageData(0, 0, currFile.canvasSize[0], currFile.canvasSize[1]),
|
||||
visibleLayers[i].menuEntry.nextElementSibling,
|
||||
layers.indexOf(visibleLayers[i]),
|
||||
currFile.layers.indexOf(visibleLayers[i]),
|
||||
visibleLayers[i], visibleLayers[i + 1]
|
||||
);
|
||||
|
||||
|
@ -50,6 +50,7 @@ class Layer {
|
||||
if (this.menuEntry !== undefined) {
|
||||
this.name = this.menuEntry.getElementsByTagName("p")[0].innerHTML;
|
||||
this.menuEntry.id = "layer" + id;
|
||||
|
||||
this.menuEntry.onmouseover = () => this.hover();
|
||||
this.menuEntry.onmouseout = () => this.unhover();
|
||||
this.menuEntry.onclick = () => this.selectLayer();
|
||||
@ -63,6 +64,8 @@ class Layer {
|
||||
this.menuEntry.addEventListener("dragleave", this.layerDragLeave, false);
|
||||
this.menuEntry.addEventListener("dragend", this.layerDragEnd, false);
|
||||
|
||||
Events.onCustom("del", this.tryDelete.bind(this));
|
||||
|
||||
this.menuEntry.getElementsByTagName("canvas")[0].getContext('2d').imageSmoothingEnabled = false;
|
||||
}
|
||||
|
||||
@ -73,6 +76,12 @@ class Layer {
|
||||
return this.menuEntry != null;
|
||||
}
|
||||
|
||||
tryDelete() {
|
||||
if (Input.getLastTarget() != this.menuEntry && Input.getLastTarget().parentElement != this.menuEntry)
|
||||
return;
|
||||
LayerList.deleteLayer();
|
||||
}
|
||||
|
||||
// Initializes the canvas
|
||||
initialize() {
|
||||
//resize canvas
|
||||
|
@ -3,7 +3,7 @@ class PixelGrid extends Layer {
|
||||
// Start colour of the pixel grid (can be changed in the preferences)
|
||||
pixelGridColor = "#000000";
|
||||
// Distance between one line and another in HTML pixels
|
||||
lineDistance = 11;
|
||||
lineDistance = 10;
|
||||
// The grid is not visible by default
|
||||
pixelGridVisible = false;
|
||||
// The grid is enabled, but is disabled in order to save performance with big sprites
|
||||
@ -82,6 +82,8 @@ class PixelGrid extends Layer {
|
||||
|
||||
this.context.strokeStyle = Settings.getCurrSettings().pixelGridColour;
|
||||
|
||||
console.log("Line ditance: " + this.lineDistance)
|
||||
|
||||
// OPTIMIZABLE, could probably be a bit more elegant
|
||||
// Draw horizontal lines
|
||||
for (let i=0; i<this.canvas.width / Math.round(this.lineDistance); i++) {
|
||||
|
Reference in New Issue
Block a user