var modName = "mods/invisible_things.js"; var libraryMod = "mods/code_library.js"; if(enabledMods.includes(libraryMod)) { if(!settings) { settings = {} } if(!(settings.bg)) { settings.bg = "#000000" } function getBackgroundColorOrAverageAsJSON() { if(!(settings?.bg)) { return {r: 0, g: 0, b: 0}; } else if(!(settings.bg instanceof Array)) { return convertColorFormats(settings.bg,"json") } else { return convertColorFormats(averageRgbPrefixedColorArray(settings.bg.map(color => convertColorFormats(color,"rgb"))),"json"); }; }; function makePixelInvisible(pixel) { var backgroundColor = getBackgroundColorOrAverageAsJSON(); pixel.color = `rgba(${backgroundColor.r},${backgroundColor.g},${backgroundColor.b},0)`; }; elements.invisible_wall = { color: settings.bg, behavior: behaviors.WALL, tick: function(pixel) { makePixelInvisible(pixel) }, insulate: true, hardness: 1, category: "special", state: "solid", }; elements.invisible_dye = { color: settings.bg, behavior: behaviors.LIQUID, tick: function(pixel) { makePixelInvisible(pixel) }, hardness: 0.8, breakInto: "invisible_dye_gas", tempHigh: 110, stateHigh: "invisible_dye_gas", category: "special", state: "liquid", density: 1, stain: elements.dye.stain, }; elements.invisible_dye_gas = { color: settings.bg, behavior: behaviors.GAS, tick: function(pixel) { makePixelInvisible(pixel) }, hardness: 0.5, breakInto: "invisible_dye_gas", tempLow: 109, stateLow: "invisible_dye", category: "special", state: "liquid", density: 1, stain: elements.spray_paint.stain, }; var temp = { invisible_wall: "asdfg", invisible_dye: 2, invisible_dye_gas: false }; if(enabledMods.includes("mods/gradient_background_support.js")) { for(var elemName in temp) { elements[elemName].desc = "Invisible dyes do not work and are not supported with gradient backgrouds"; elements[elemName].hidden = true; elements[elemName].excludeRandom = true; }; }; } else { enabledMods.splice(enabledMods.indexOf(modName),0,libraryMod) localStorage.setItem("enabledMods", JSON.stringify(enabledMods)); alert(`The ${libraryMod} mod is required and has been automatically inserted (reload for this to take effect).`) };