From 1e4dbcd62304d91db5f5c6f413b9a6870551ddc2 Mon Sep 17 00:00:00 2001 From: "Laetitia (O-01-67)" <68935009+O-01-67@users.noreply.github.com> Date: Thu, 8 Dec 2022 11:03:20 -0500 Subject: [PATCH] move circle functions out to library (2) also a logic fix --- mods/code_library.js | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/mods/code_library.js b/mods/code_library.js index 183e0fb4..b9f5a178 100644 --- a/mods/code_library.js +++ b/mods/code_library.js @@ -410,7 +410,7 @@ }; }; } else if(typeof(color) === "object") { - if(!color.r || !color.g || !color.b) { + if(typeof(color.r) === "undefined" || typeof(color.g) === "undefined" || typeof(color.b) === "undefined") { throw new Error("Color must be of the form {r: red, g: green, b: blue}"); }; @@ -1094,6 +1094,38 @@ }; }; +//World + + function breakCircle(x,y,radius,respectHardness=false,changeTemp=false,defaultBreakIntoDust=false) { + var coords = circleCoords(x,y,radius); + for(i = 0; i < coords.length; i++) { + coordX = coords[i].x; + coordY = coords[i].y; + if(!isEmpty(coordX,coordY,true)) { + var pixel = pixelMap[coordX][coordY]; + respectHardness ? tryBreak(pixel,changeTemp,defaultBreakIntoDust) : breakPixel(pixel,changeTemp,defaultBreakIntoDust); + }; + }; + }; + + function fillCircle(element,x,y,radius,overwrite=false) { + var coords = circleCoords(x,y,radius); + var newElement = element; + if(Array.isArray(newElement)) { + newElement = newElement[Math.floor(Math.random() * newElement.length)]; + }; + for(i = 0; i < coords.length; i++) { + coordX = coords[i].x; + coordY = coords[i].y; + if(overwrite && !isEmpty(coordX,coordY,true)) { + changePixel(pixelMap[coordX][coordY],element); + }; + if(isEmpty(coordX,coordY,false)) { + createPixel(element,coordX,coordY); + }; + }; + }; + //Logic function xor(c1,c2) {