diff --git a/mods/background_changer.js b/mods/background_changer.js index 200daa97..1a61fc1f 100644 --- a/mods/background_changer.js +++ b/mods/background_changer.js @@ -1,4 +1,4 @@ -function setCanvasBG(url) { +function setCanvasBG(url, color) { delete settings.bg; let canvas = document.getElementById("game"); @@ -9,32 +9,45 @@ function setCanvasBG(url) { canvas.style.backgroundPosition = "bottom"; settings.bgimg = url; + if (color) settings.bgimgcolor = color; + else delete settings.bgimgcolor; + + if (color) document.head.insertAdjacentHTML("beforeend", ``); + else document.getElementById("canvasBGStyles")?.remove(); saveSettings() } +function clearCanvasBG() { + delete settings.bgimg; + let canvas = document.getElementById("game"); + canvas.style.backgroundImage = ""; + canvas.style.backgroundRepeat = ""; + canvas.style.backgroundSize = ""; + canvas.style.backgroundPosition = ""; + document.getElementById("canvasBGStyles")?.remove(); +} -keybinds.KeyB = () => { +function setCanvasBGPrompt() { promptInput("Enter an image URL. Leave blank to clear background.", (url) => { if (!url) { - delete settings.bgimg; - let canvas = document.getElementById("game"); - canvas.style.backgroundImage = ""; - canvas.style.backgroundRepeat = ""; - canvas.style.backgroundSize = ""; - canvas.style.backgroundPosition = ""; + clearCanvasBG(); } setCanvasBG(url); }, "Background") } +keybinds.KeyB = () => { + setCanvasBGPrompt() +} + document.addEventListener("load", () => { if (settings.bgimg) { - setCanvasBG(settings.bgimg) + setCanvasBG(settings.bgimg, settings.bgimgcolor) } }) runAfterReset(() => { if (settings.bgimg) { - setCanvasBG(settings.bgimg) + setCanvasBG(settings.bgimg, settings.bgimgcolor) } }) \ No newline at end of file diff --git a/mods/borders.js b/mods/borders.js index 9d96dcf3..443dc844 100644 --- a/mods/borders.js +++ b/mods/borders.js @@ -18,7 +18,7 @@ window.addEventListener("load", () => { var coords = adjacentCoords[i]; var x = pixel.x + coords[0]; var y = pixel.y + coords[1]; - if (isEmpty(x,y)) { + if (isEmpty(x,y, true)) { // 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; diff --git a/mods/content.js b/mods/content.js new file mode 100644 index 00000000..11dc6a63 --- /dev/null +++ b/mods/content.js @@ -0,0 +1,98 @@ +dependOn("borders.js", ()=>{}, true); +dependOn("glow.js", ()=>{}, true); +dependOn("background_changer.js", ()=>{}, true); +dependOn("cursor.js", ()=>{}, true); + +function minimizeElement(selector) { + document.querySelectorAll(selector).forEach(element => { + element.classList.add("minimized"); + }); +} +function maximizeAll() { + document.querySelectorAll(".minimized").forEach((e) => { + e.classList.remove("minimized"); + }) +} +document.head.insertAdjacentHTML("beforeend", ` + +`); + +settings.pixelsize = "6w"; + +contentModOptions = { + "Set Background": () => { + setCanvasBGPrompt(); + }, + "Set Cursor Color": () => { + promptInput("Enter an image URL. Leave blank to clear background.", (color) => { + if (!color) { + delete settings.mouseColor; + return; + } + mouseColor = color; + settings.mouseColor = color; + }, "Mouse Color") + }, + "Clear Background": () => { + clearCanvasBG(); + }, + "Grassland": () => setCanvasBG("https://i.imgur.com/Id9WZv4.png", "#2d6138ff"), + "Sky": () => setCanvasBG("https://i.imgur.com/Er068gC.png", "#647690ff"), + "Sky Warm": () => setCanvasBG("https://i.imgur.com/aJeSRLk.png", "#904f45ff"), + "Minimize UI": () => { + minimizeElement("#stats"); + minimizeElement("#extraInfo"); + minimizeElement("#bottomInfoBox"); + minimizeElement("#logDiv"); + minimizeElement("#toolControls"); + document.getElementById("category-tools").style.borderTop = "6px black solid"; + document.getElementById("category-tools").style.paddingTop = "0.5em"; + resetPrompt(); + }, + "Maximize UI": () => { + maximizeAll(); + }, + "Content Hub": () => { + window.open("https://r74n.com/content/", '_blank'); + }, +} + +keybinds.KeyV = () => { + promptChoose("", Object.keys(contentModOptions), (r) => { + contentModOptions[r](); + }) +} + +elements.invis = { + renderer: (pixel,ctx) => { + if (currentElement === "invis") { + drawSquare(ctx,"#00ff00",pixel.x,pixel.y); + } + }, + behavior: (pixel) => { + doDefaults(pixel); + }, + onPlace: (pixel) => { + pixel.alpha = 0; + }, + tool: (pixel) => { + pixel.alpha = 0; + }, + category: "special", + color: "#00ff00" +} + +window.addEventListener("load", () => { + contentModOptions["Minimize UI"](); +}) \ No newline at end of file diff --git a/mods/devsnacks.js b/mods/devsnacks.js index 20734dc8..2b52f790 100644 --- a/mods/devsnacks.js +++ b/mods/devsnacks.js @@ -5,6 +5,8 @@ smash into tea powder tea powder + hot water = colored tea */ +dependOn("mustard.js", ()=>{}, true); + elements.herb.tempHigh = 100; elements.herb.stateHigh = ["steamed_herb","steamed_herb","steam",null];