71 lines
1.4 KiB
JavaScript
71 lines
1.4 KiB
JavaScript
import { defineStore } from "pinia";
|
|
|
|
export const globalStore = defineStore("globalStore", {
|
|
state: () => {
|
|
return {
|
|
rules1d: {
|
|
name: "rule 73",
|
|
rules: {
|
|
111: 0,
|
|
110: 1,
|
|
101: 0,
|
|
100: 0,
|
|
"011": 1,
|
|
"010": 0,
|
|
"001": 0,
|
|
"000": 1,
|
|
},
|
|
},
|
|
cellProperties: {
|
|
size: 3,
|
|
liveColor: "#000000",
|
|
deadColor: "#F5F5F5",
|
|
},
|
|
canvasWidth: 0,
|
|
canvasHeight: 0,
|
|
boardWidth: 0,
|
|
boardHeight: 0,
|
|
refreshRate: 300,
|
|
initial1dState: "onecell",
|
|
drawingDirection: "y",
|
|
lastBoard: {},
|
|
draw1d: false,
|
|
draw2d: false,
|
|
draw2dLast: false,
|
|
reset: false,
|
|
canDraw: true,
|
|
};
|
|
},
|
|
actions: {
|
|
setBoardWidth() {
|
|
this.boardWidth = Math.floor(this.canvasWidth / this.cellProperties.size);
|
|
},
|
|
setBoardHeight() {
|
|
this.boardHeight = Math.floor(
|
|
this.canvasHeight / this.cellProperties.size
|
|
);
|
|
},
|
|
toggleDraw1d() {
|
|
this.draw1d = true;
|
|
},
|
|
toggleDraw2d() {
|
|
this.canDraw = true;
|
|
this.draw2d = true;
|
|
},
|
|
toggleDraw2dLast() {
|
|
this.canDraw = true;
|
|
this.draw2dLast = true;
|
|
},
|
|
toggleReset() {
|
|
this.toggleStop();
|
|
this.reset = true;
|
|
},
|
|
toggleStop() {
|
|
this.draw1d = false;
|
|
this.draw2d = false;
|
|
this.draw2dLast = false;
|
|
this.canDraw = false;
|
|
},
|
|
},
|
|
});
|