From b9e61a75857f97680abe3c9aeb4f9cb957c92bb9 Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Tue, 25 Nov 2025 22:02:54 -0500 Subject: [PATCH] Update borders.js --- mods/borders.js | 90 ++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 43 deletions(-) diff --git a/mods/borders.js b/mods/borders.js index 7f69cbd8..a55500c4 100644 --- a/mods/borders.js +++ b/mods/borders.js @@ -1,56 +1,60 @@ -viewInfo[1].pre = function(ctx) { - currentPixels.forEach(pixel => { - if (elements[pixel.element].movable !== true || elements[pixel.element].isGas === true) return; +window.addEventListener("load", () => { + let oldPreRenderer = viewInfo[1].pre; + let oldPixelRenderer = viewInfo[1].pixel; + viewInfo[1].pre = function(ctx) { + if (oldPreRenderer) oldPreRenderer(ctx); + currentPixels.forEach(pixel => { + if (elements[pixel.element].movable !== true || elements[pixel.element].isGas === true) return; + let edge = false; + for (var i = 0; i < adjacentCoords.length; i++) { + var coords = adjacentCoords[i]; + var x = pixel.x + coords[0]; + var y = pixel.y + coords[1]; + if (isEmpty(x,y)) { + // if (elements[pixelMap[x][y].element].id !== elements[pixel.element].id || elements[pixelMap[x][y].element].state !== elements[pixel.element].id) continue + edge = true; + break; + } + } + if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x-0.5,pixel.y-0.5,2); + }) + } + + viewInfo[1].pixel = function(pixel, ctx) { + if (elements[pixel.element].movable) return oldPixelRenderer(pixel, ctx); let edge = false; for (var i = 0; i < adjacentCoords.length; i++) { var coords = adjacentCoords[i]; var x = pixel.x + coords[0]; var y = pixel.y + coords[1]; - if (isEmpty(x,y)) { + if (isEmpty(x,y) || (!outOfBounds(x,y) && + elements[pixelMap[x][y].element].movable + )) { // if (elements[pixelMap[x][y].element].id !== elements[pixel.element].id || elements[pixelMap[x][y].element].state !== elements[pixel.element].id) continue edge = true; break; } } - if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x-0.5,pixel.y-0.5,2); - }) -} - -let oldPixelRenderer = viewInfo[1].pixel; - -viewInfo[1].pixel = function(pixel, ctx) { - if (elements[pixel.element].movable) return oldPixelRenderer(pixel, ctx); - let edge = false; - for (var i = 0; i < adjacentCoords.length; i++) { - var coords = adjacentCoords[i]; - var x = pixel.x + coords[0]; - var y = pixel.y + coords[1]; - if (isEmpty(x,y) || (!outOfBounds(x,y) && - elements[pixelMap[x][y].element].movable - )) { - // if (elements[pixelMap[x][y].element].id !== elements[pixel.element].id || elements[pixelMap[x][y].element].state !== elements[pixel.element].id) continue - edge = true; - break; - } + if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x,pixel.y); + else oldPixelRenderer(pixel, ctx); } - if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x,pixel.y); - else oldPixelRenderer(pixel, ctx); -} + + // viewInfo[1].post = function(ctx) { + // currentPixels.forEach(pixel => { + // let edge = false; + // for (var i = 0; i < adjacentCoords.length; i++) { + // var coords = adjacentCoords[i]; + // var x = pixel.x + coords[0]; + // var y = pixel.y + coords[1]; + // if (!isEmpty(x,y,true) && elements[pixelMap[x][y].element].movable !== elements[pixel.element].movable) { + // // if (elements[pixelMap[x][y].element].id !== elements[pixel.element].id || elements[pixelMap[x][y].element].state !== elements[pixel.element].id) continue + // edge = true; + // break; + // } + // } + // if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x-0.5,pixel.y-0.5,2); + // }) + // } -// viewInfo[1].post = function(ctx) { -// currentPixels.forEach(pixel => { -// let edge = false; -// for (var i = 0; i < adjacentCoords.length; i++) { -// var coords = adjacentCoords[i]; -// var x = pixel.x + coords[0]; -// var y = pixel.y + coords[1]; -// if (!isEmpty(x,y,true) && elements[pixelMap[x][y].element].movable !== elements[pixel.element].movable) { -// // if (elements[pixelMap[x][y].element].id !== elements[pixel.element].id || elements[pixelMap[x][y].element].state !== elements[pixel.element].id) continue -// edge = true; -// break; -// } -// } -// if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x-0.5,pixel.y-0.5,2); -// }) -// } +})