fixing point draw, fixing history

This commit is contained in:
Legonzaur
2020-06-26 19:46:04 +02:00
parent 1584f7af85
commit 34383e9b69
+25 -16
View File
@@ -13,9 +13,21 @@ var width = test.getBoundingClientRect().width;
var drawGrid = []; var drawGrid = [];
var drawHistory = { const drawHistory = {
forward: [], forwardData: [],
backward: [], backwardData: [],
forwards: function () {
if (this.forward[0]) {
this.backward.unshift(JSON.stringify(drawGrid));
return JSON.parse(this.forward.shift());
}
},
backwards: function () {
if (this.backward[0]) {
this.forward.unshift(JSON.stringify(drawGrid));
return JSON.parse(this.backward.shift());
}
},
}; };
var textify = new Worker("./js/textify.js"); var textify = new Worker("./js/textify.js");
@@ -54,14 +66,16 @@ content.addEventListener("mousedown", function (e) {
content.addEventListener("mousemove", moveMouse); content.addEventListener("mousemove", moveMouse);
let x = Math.floor(e.clientX / width); let x = Math.floor(e.clientX / width);
let y = Math.floor(e.clientY / height); let y = Math.floor(e.clientY / height);
drawHistory.backward.unshift(JSON.stringify(drawGrid)); //adding to history
drawHistory.forward = []; drawHistory.backwardData.unshift(JSON.stringify(drawGrid));
drawHistory.forwardData = [];
if (e.shiftKey) { if (e.shiftKey) {
drawLine(previousX, previousY, x, y); drawLine(previousX, previousY, x, y);
} }
if (e.ctrlKey) { if (e.ctrlKey) {
fill(x, y); fill(x, y);
} }
drawPoint(x, y);
previousX = x; previousX = x;
previousY = y; previousY = y;
render(); render();
@@ -70,24 +84,18 @@ content.addEventListener("mousedown", function (e) {
content.addEventListener("mouseup", mouseUp); content.addEventListener("mouseup", mouseUp);
document.addEventListener("keydown", function (e) { document.addEventListener("keydown", function (e) {
//history shit
if (e.ctrlKey == true) { if (e.ctrlKey == true) {
console.log(drawHistory.backward.length);
switch (e.key) { switch (e.key) {
case "z": case "z":
if (drawHistory.backward[0]) { let backwards = drawHistory.backwards();
drawHistory.forward.unshift(JSON.stringify(drawGrid)); drawGrid = backwards ? backwards : drawGrid;
drawGrid = JSON.parse(drawHistory.backward.shift());
render(); render();
}
break; break;
case "y": case "y":
if (drawHistory.forward[0]) { let forwards = drawHistory.forwards();
drawHistory.backward.unshift(JSON.stringify(drawGrid)); drawGrid = forwards ? forwards : drawGrid;
drawGrid = JSON.parse(drawHistory.forward.shift());
render(); render();
}
break; break;
default: default:
@@ -95,6 +103,7 @@ document.addEventListener("keydown", function (e) {
} }
return; return;
} }
//chage pencil
if (e.key.length == 1) { if (e.key.length == 1) {
pencil = e.key; pencil = e.key;
} }