2025-11-26 10:07:13 -05:00
|
|
|
let isMachine = {"machines":true}
|
|
|
|
|
|
2025-11-30 17:45:32 -05:00
|
|
|
elements.static.border = false;
|
2025-12-01 17:36:47 -05:00
|
|
|
elements.mixer.border = false;
|
|
|
|
|
elements.grinder.border = false;
|
2025-11-30 17:45:32 -05:00
|
|
|
|
2025-11-25 22:02:54 -05:00
|
|
|
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 => {
|
2025-11-26 10:07:13 -05:00
|
|
|
if ((elements[pixel.element].movable !== true && isMachine[elements[pixel.element].category] === undefined) || elements[pixel.element].isGas === true) return;
|
2025-11-30 17:45:32 -05:00
|
|
|
if (elements[pixel.element].border === false) return;
|
2025-11-25 22:02:54 -05:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-26 10:19:56 -05:00
|
|
|
if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x-1,pixel.y-1,3);
|
2025-11-25 22:02:54 -05:00
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
viewInfo[1].pixel = function(pixel, ctx) {
|
2025-11-26 10:07:13 -05:00
|
|
|
if (elements[pixel.element].movable || isMachine[elements[pixel.element].category] === true) return oldPixelRenderer(pixel, ctx);
|
2025-11-25 21:57:38 -05:00
|
|
|
let edge = false;
|
2025-11-30 17:45:32 -05:00
|
|
|
if (elements[pixel.element].border !== 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;
|
|
|
|
|
}
|
2025-11-25 21:57:38 -05:00
|
|
|
}
|
2025-11-30 17:45:32 -05:00
|
|
|
};
|
2025-11-25 22:02:54 -05:00
|
|
|
if (edge) drawSquare(ctx,"rgb(0,0,0)",pixel.x,pixel.y);
|
|
|
|
|
else oldPixelRenderer(pixel, ctx);
|
2025-11-25 21:57:38 -05:00
|
|
|
}
|
2025-11-25 22:02:54 -05:00
|
|
|
|
|
|
|
|
// 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);
|
|
|
|
|
// })
|
|
|
|
|
// }
|
2025-11-25 21:57:38 -05:00
|
|
|
|
2025-11-25 22:02:54 -05:00
|
|
|
})
|
2025-11-25 21:57:38 -05:00
|
|
|
|