-
Notifications
You must be signed in to change notification settings - Fork 0
/
editor.js
70 lines (66 loc) · 2.45 KB
/
editor.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import Datas from "./datas.js";
import PatternEditor from "./patterneditor.js";
import Drawing from "./drawing.js";
export default class Editor {
constructor() {
this.selectorOfSheet = "#editor";
this.drawing = new Drawing(this.selectorOfSheet);
this.patternEditor = new PatternEditor().patternEditor;
this.patternProcessor();
}
patternProcessor = () => {
this.patternEditor();
let ok = document.getElementById("ok");
let x = document.getElementById("x");
let upperFull;
let lowerFull;
ok.addEventListener("click", () => {
let polygons = document.querySelectorAll("#editor > svg > polygon");
let fillAttributes = [];
polygons.forEach((hex) => {
fillAttributes.push(
hex.getAttribute("fill") === null ? "-" : hex.getAttribute("fill")
);
});
let fillAttributeString = fillAttributes
.join("")
.replaceAll("red", "s")
.replaceAll("white", "v")
.replaceAll("black", "f")
.replaceAll("#000000", "-");
upperFull = fillAttributeString.substring(0, 37);
lowerFull = fillAttributeString.substring(37, 73);
let upperStart = 0;
let lowerStart = 0;
while (upperFull[upperStart] === "-") upperStart++;
while (lowerFull[lowerStart] === "-") lowerStart++;
let upperEnd = upperFull.length - 1;
let lowerEnd = lowerFull.length - 1;
while (upperFull[upperEnd] === "-") upperEnd--;
while (lowerFull[lowerEnd] === "-") lowerEnd--;
let upper = upperFull.substring(upperStart, upperEnd + 1);
let lower = lowerFull.substring(lowerStart, lowerEnd + 1);
let myown = { upper: upper, lower: lower };
Datas.backstraps.patterns.myown = myown;
const regex = /^[-]*[svf]{4,}[-]*$/g;
let middle = 301 + 8 - (37 - upperStart - upperEnd) * 8;
if (upper.length === lower.length) middle += 4;
let lefty = 0;
if (upperStart - lowerStart === 1 && upper.length === lower.length)
lefty = -1;
if (
(upperStart - lowerStart === 0 || upperStart - lowerStart === 1) &&
(upperEnd - lowerEnd === 0 || upperEnd - lowerEnd === 1) &&
upperFull.match(regex) &&
lowerFull.match(regex)
)
this.drawing.initDraw("myown", middle, 92, 12, lefty);
else alert("Valami nincs rendben!");
});
x.addEventListener("click", (e) => {
this.color = "white";
this.drawing.reset(-1);
this.patternEditor();
});
};
}