var connectValues = [[1,2],[2]];
tileset1 = loadImage('Tileset_Rock_Extreme3.png');
tileset2 = loadImage('Tileset_Dirt_Extreme.png');
createCanvas(windowWidth, windowHeight-50);
unit = windowWidth/stageWidth;
stageWidth = ceil(windowWidth/unit);
for(var stageNoise = 0; stageNoise < ceil((windowWidth*windowHeight)/unit**2); stageNoise++) {
stage[stageNoise] = round(noise((stageNoise%stageWidth)/2,floor(stageNoise/stageWidth)/4));
if(stage[stageNoise]!=1) {
stage[stageNoise] = round(random(0,1))*2;
stage[floor(mouseX/unit)+floor(mouseY/unit)*stageWidth]=clickFunction;
for(var stageDraw = 0; stageDraw < stage.length; stageDraw++) {
if(stage[stageDraw]==1) {
image(tileset1,floor((stageDraw%stageWidth)*unit)-1,floor(floor(stageDraw/stageWidth)*unit)-1,unit+1,unit+1,stageMatrix[stageDraw][0],stageMatrix[stageDraw][1],8,8);
if(stage[stageDraw]==2) {
image(tileset2,floor((stageDraw%stageWidth)*unit)-1,floor(floor(stageDraw/stageWidth)*unit)-1,unit+1,unit+1,stageMatrix[stageDraw][0],stageMatrix[stageDraw][1],8,8);
function mousePressed() {
clickFunction=(!stage[floor(mouseX/unit)+floor(mouseY/unit)*stageWidth])*1;
clickFunction=(!stage[floor(mouseX/unit)+floor(mouseY/unit)*stageWidth])*2;
function redrawMatrix() {
for(var matrixDraw = 0; matrixDraw < stage.length; matrixDraw++) {
if(stageMatrix[matrixDraw]==undefined) {
stageMatrix[matrixDraw]=[0,0];
if(stage[matrixDraw]==0||stage[matrixDraw]==undefined) {
stageMatrix[matrixDraw][0] = connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw-stageWidth])*8+connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw+1])*16+connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw+stageWidth])*32+connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw-1])*64;
stageMatrix[matrixDraw][1] = connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw-stageWidth-1])*8+connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw-stageWidth+1])*16+connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw+stageWidth+1])*32+connectValues[stage[matrixDraw]-1].includes(stage[matrixDraw+stageWidth-1])*64;