From 09a8a696531ec149138cd1ebe13030491ffad1df Mon Sep 17 00:00:00 2001 From: emwimcdo <135271728+emwimcdo@users.noreply.github.com> Date: Fri, 18 Jul 2025 17:26:21 -0400 Subject: [PATCH] Update LimesAdditions.js I updated the volcano and the cat's movement system. No longer crashes browser. --- mods/LimesAdditions.js | 205 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 183 insertions(+), 22 deletions(-) diff --git a/mods/LimesAdditions.js b/mods/LimesAdditions.js index dee1132a..73ffc5e8 100644 --- a/mods/LimesAdditions.js +++ b/mods/LimesAdditions.js @@ -1,3 +1,23 @@ +function sendAlert() { + alert("This mod can be weird with TPS. It won't crash, but not everything will work perfectly. Thank you for your understanding. :)") +} +sendAlert() +function coolArea(centerPixel, radius = 3, amount = 10) { + for (let dx = -radius; dx <= radius; dx++) { + for (let dy = -radius; dy <= radius; dy++) { + let x = centerPixel.x + dx; + let y = centerPixel.y + dy; + let target = pixelMap[x]?.[y]; + + if (target && typeof target.temp === "number") { + target.temp -= amount; + pixelTempCheck(target); // ensures proper state update + } + } + } +} + + elements.EXPLODE = { color: "#FF5555", behavior: [ @@ -95,30 +115,162 @@ elements.right_powder = { } elements.volcano = { - color: "#4f4848", + color: "#2e2e2e", category: "weapons", + cooldown: defaultCooldown, + maxSize: 1, + temp: 0, + //insulate: true, tick: function(pixel) { - let isPlaced = false - if (!tryMove(pixel,pixel.x,pixel.y+1)) { - if (!pixel.isPlaced) { - pixel.y -= 5 + if (!pixelMap[pixel.x]?.[pixel.y]) {return} + + if (!pixel.isPlaced) { + if (!tryMove(pixel,pixel.x,pixel.y+1)) { + movePixel(pixel, pixel.x, pixel.y - 5) pixel.isPlaced = true } - let height = 5; // number of pyramid layers - while (!isEmpty(pixel.x-4,pixel.y+4)) { - for (let row = 2; row < height; row++) { - let width = row + 2; // pyramid gets wider each row - for (let col = 0; col < width; col++) { - let xOffset = col - row; // center the row - let x = pixel.x + xOffset; - let y = pixel.y + row; - - createPixel("basalt", x, y); - - } - } } - } } + if (!pixel.hasRun && pixel.isPlaced) { + createPixel("basalt", pixel.x, pixel.y+4) + createPixel("basalt", pixel.x, pixel.y+3) + createPixel("basalt", pixel.x, pixel.y+2) + createPixel("basalt", pixel.x-1, pixel.y+1) + createPixel("basalt", pixel.x, pixel.y+1) + createPixel("basalt", pixel.x+1, pixel.y+1) + createPixel("basalt", pixel.x+1, pixel.y+2) + createPixel("basalt", pixel.x-1, pixel.y+2) + createPixel("basalt", pixel.x-2, pixel.y+2) + createPixel("basalt", pixel.x+2, pixel.y+2) + createPixel("basalt", pixel.x, pixel.y+2) + createPixel("basalt", pixel.x, pixel.y+3) + createPixel("basalt", pixel.x+1, pixel.y+3) + createPixel("basalt", pixel.x+2, pixel.y+3) + createPixel("basalt", pixel.x+3, pixel.y+3) + createPixel("basalt", pixel.x-1, pixel.y+3) + createPixel("basalt", pixel.x-2, pixel.y+3) + createPixel("basalt", pixel.x-3, pixel.y+3) + createPixel("basalt", pixel.x, pixel.y+4) + createPixel("basalt", pixel.x+1, pixel.y+4) + createPixel("basalt", pixel.x+2, pixel.y+4) + createPixel("basalt", pixel.x+3, pixel.y+4) + createPixel("basalt", pixel.x+4, pixel.y+4) + createPixel("basalt", pixel.x-1, pixel.y+4) + createPixel("basalt", pixel.x-2, pixel.y+4) + createPixel("basalt", pixel.x-3, pixel.y+4) + createPixel("basalt", pixel.x-4, pixel.y+4) + createPixel("basalt", pixel.x, pixel.y+5) + createPixel("basalt", pixel.x+1, pixel.y+5) + createPixel("basalt", pixel.x+2, pixel.y+5) + createPixel("basalt", pixel.x+3, pixel.y+5) + createPixel("basalt", pixel.x+4, pixel.y+5) + createPixel("basalt", pixel.x+5, pixel.y+5) + createPixel("basalt", pixel.x-1, pixel.y+5) + createPixel("basalt", pixel.x-2, pixel.y+5) + createPixel("basalt", pixel.x-3, pixel.y+5) + createPixel("basalt", pixel.x-4, pixel.y+5) + createPixel("basalt", pixel.x-5, pixel.y+5) + pixel.hasRun = true + } + if (pixel.hasRun && pixel.isPlaced) { + let left = pixelMap[pixel.x - 1]?.[pixel.y]; + let right = pixelMap[pixel.x + 1]?.[pixel.y]; + if ( + (left?.element === "basalt" || left?.element === "rock") && + (right?.element === "basalt" || right?.element === "rock") + ){ + if (typeof pixel.height !== "number") { + pixel.height = 0 + } + let oldY = pixel.y; + deletePixel(pixel.x, oldY - 1); + movePixel(pixel, pixel.x, oldY - 1); + createPixel("basalt", pixel.x, oldY + 1); + pixel.height ++ + + + } + if (pixel.height >= 7) { + deletePixel(pixel.x, pixel.y) + let select = pixelMap[pixel.x]?.[pixel.y+5] + coolArea(pixel, 20, 150) + /*if (select) { + select.temp = -273 + pixelTempCheck(select) + togglePause(); + console.log("x: "+pixel.x+" y: "+(pixel.y+5)) + } + return + */ + } + let target = pixelMap[pixel.x]?.[pixel.y] + if (typeof pixel.cool !== "number") { + pixel.cool = 0 + } + pixel.cool += 0.25 + //console.log(Math.round(pixel.cool)) + if (target && Number.isInteger(pixel.cool)) { + target.temp -= Math.round(pixel.cool) + } + /*let target2 = pixelMap[pixel.x-2]?.[pixel.y+3] + if (target2) { + target2.temp -= 40 + } + let target3 = pixelMap[pixel.x+2]?.[pixel.y+3] + if (target3) { + target3.temp -= 40 + } + let target4 = pixelMap[pixel.x-1]?.[pixel.y] + if (target4) { + target4.temp -= 40 + } + let target5 = pixelMap[pixel.x+1]?.[pixel.y] + if (target5) { + target5.temp -= 40 + } + */ + pixel.spread = 1 + if (!pixelMap[pixel.x]?.[pixel.y-1]) { + createPixel("magma", pixel.x, pixel.y-1) + + } + if (!pixelMap[pixel.x-(pixel.spread*-1)]?.[pixel.y-1]) { + createPixel("magma", pixel.x-(pixel.spread*-1), pixel.y-1) + + } + if (!pixelMap[pixel.x+(pixel.spread*1)]?.[pixel.y-1]) { + createPixel("magma", pixel.x+(pixel.spread*1), pixel.y-1) + + } + if (!pixelMap[pixel.x-(pixel.spread*-1)]?.[pixel.y-2]) { + createPixel("magma", pixel.x+(pixel.spread*1), pixel.y-2) + + } + if (!pixelMap[pixel.x+(pixel.spread*1)]?.[pixel.y-2]) { + createPixel("magma", pixel.x+(pixel.spread*1), pixel.y-2) + + } + if (!pixelMap[pixel.x]?.[pixel.y-2]) { + createPixel("magma", pixel.x, pixel.y-2) + + } + if (!pixelMap[pixel.x]?.[pixel.y-3]) { + createPixel("magma", pixel.x, pixel.y-3) + + } + if (!pixelMap[pixel.x-(pixel.spread*-1)]?.[pixel.y-3]) { + createPixel("magma", pixel.x-(pixel.spread*-1), pixel.y-3) + + } + if (!pixelMap[pixel.x+(pixel.spread*1)]?.[pixel.y-3]) { + createPixel("magma", pixel.x+(pixel.spread*1), pixel.y-3) + + } + pixel.spread++ + } + + } + + } elements.cat = { @@ -143,11 +295,14 @@ elements.cat = { if (!tryMove(pixel, pixel.x + lr + lr, pixel.y)) { if (!tryMove(pixel, pixel.x + lr, pixel.y - 1)) { if (!tryMove(pixel, pixel.x + lr, pixel.y + 1)) { - lr = 1 + } } } } + if (!tryMove(pixel, pixel.x + lr, pixel.y - 1)) { + lr = 1 + } @@ -157,10 +312,14 @@ elements.cat = { if (!tryMove(pixel, pixel.x + lr + lr, pixel.y)) { if (!tryMove(pixel, pixel.x + lr, pixel.y - 1)) { if (!tryMove(pixel, pixel.x + lr, pixel.y + 1)) { - lr = -1 + } } } + + } + if (!tryMove(pixel, pixel.x + lr, pixel.y - 1)) { + lr = -1 } } } @@ -229,7 +388,9 @@ elements.hairball = { ], tempHigh: 250, stateHigh: "ash", - hidden: true + hidden: true, + burn: 50, + burnTime: 600, } elements.hot_stuff = {