diff --git a/mods/Neutronium Mod.js b/mods/Neutronium Mod.js index e028fb15..4b50d87e 100644 --- a/mods/Neutronium Mod.js +++ b/mods/Neutronium Mod.js @@ -1056,6 +1056,38 @@ temp: 2000, viscosity: 10000, density: 2.65 }; +elements.liquid_cloner = { +color: "#ffff00", +category: "special", +state: "liquid", +behavior: [ +"CF|CF|CF", +"CF AND M2|XX|CF AND M2", +"CF AND M1|CF AND M1|CF AND M1", +], +density: 975, +}; +elements.fire_cloner = { +color: "#ff8000", +category: "special", +state: "gas", +behavior: [ +"CF AND HT%1 AND M1|CF AND HT%1|CF AND HT%1 AND M1", +"CF AND HT%1|HT%1|CF AND HT%1", +"CF AND HT%1|CF AND HT%1|CF AND HT%1", +], +}; +elements.antigravity_powder_cloner = { +color: "#808000", +category: "special", +state: "powder", +behavior: [ +"CF AND M2|CF AND M1|CF AND M2", +"CF|XX|CF", +"CF|CF|CF", +], +density: 1050, +}; /* Unfinished: magnesium hematite mixture diff --git a/mods/Shroomboxels.js b/mods/Shroomboxels.js new file mode 100644 index 00000000..f871bbe0 --- /dev/null +++ b/mods/Shroomboxels.js @@ -0,0 +1,54 @@ +var incrementt = 0; + +var interval = setInterval( increment, 500/30); + +function increment(){ + incrementt = incrementt % (Math.PI*8.8) + (Math.PI/30); +} + +function drawPixels(forceTick=false) { + // newCurrentPixels = shuffled currentPixels + var newCurrentPixels = currentPixels.slice(); + newCurrentPixels.sort(function() {return 0.5 - Math.random()}); + for (var i = 0; i < newCurrentPixels.length; i++) { + pixel = newCurrentPixels[i]; + //if (pixelMap[pixel.x][pixel.y] == undefined || currentPixels.indexOf(pixel) == -1) {continue} + if (pixel.del) {continue} + if ((!paused) || forceTick) { + if (elements[pixel.element].tick) { // Run tick function if it exists + elements[pixel.element].tick(pixel); + } + if (elements[pixel.element].behavior) { // Parse behavior if it exists + pixelTick(pixel); + } + }; + } + // Draw the current pixels + var canvas = document.getElementById("game"); + var ctx = canvas.getContext("2d"); + for (var i = 0; i < newCurrentPixels.length; i++) { + pixel = newCurrentPixels[i]; + if (pixelMap[pixel.x][pixel.y] == undefined) {continue} + if (view===null) { + ctx.fillStyle = pixel.color; + } + else if (view === "thermal") { + // set the color to pixel.temp, from hottest at 0 hue to coldest 225 hue, with the minimum being -273, max being 6000 + var temp = pixel.temp; + if (temp < -273) {temp = -273} + if (temp > 6000) {temp = 6000} + var hue = 225 - (temp/6000)*225; + if (hue < 0) {hue = 0} + if (hue > 225) {hue = 225} + ctx.fillStyle = "hsl("+hue+",100%,50%)"; + } + ctx.fillRect(pixel.x*pixelSize+(19.8*Math.tan((pixel.y+incrementt )/4.4)), pixel.y*pixelSize+(21.6*Math.tan((pixel.x+incrementt)/4.4)), pixelSize, pixelSize); + if (pixel.charge) { // Yellow glow on charge + if (!elements[pixel.element].colorOn) { + ctx.fillStyle = "rgba(255,255,0,0.5)"; + ctx.fillRect(pixel.x*pixelSize+(18*Math.sec((pixel.y+incrementt)/4.4)), pixel.y*pixelSize+(9*Math.sec((pixel.x+incrementt)/4.4)), pixelSize, pixelSize); + } + } + } + if ((!paused) || forceTick) {pixelTicks++}; +} diff --git a/mods/acidboxels.js b/mods/acidboxels.js index 842b7399..32b54e9d 100644 --- a/mods/acidboxels.js +++ b/mods/acidboxels.js @@ -1,31 +1,54 @@ -runAfterLoad(function() { - drawPixels = function(forceTick=false) { - // newCurrentPixels = shuffled currentPixels - var newCurrentPixels = currentPixels.slice(); - newCurrentPixels.sort(function() {return 0.5 - Math.random()}); +var incrementt = 0; + +var interval = setInterval( increment, 500/30); + +function increment(){ + incrementt = incrementt % (Math.PI*8.8) + (Math.PI/30); +} + +function drawPixels(forceTick=false) { + // newCurrentPixels = shuffled currentPixels + var newCurrentPixels = currentPixels.slice(); + newCurrentPixels.sort(function() {return 0.5 - Math.random()}); + for (var i = 0; i < newCurrentPixels.length; i++) { + pixel = newCurrentPixels[i]; + //if (pixelMap[pixel.x][pixel.y] == undefined || currentPixels.indexOf(pixel) == -1) {continue} + if (pixel.del) {continue} + if ((!paused) || forceTick) { + if (elements[pixel.element].tick) { // Run tick function if it exists + elements[pixel.element].tick(pixel); + } + if (elements[pixel.element].behavior) { // Parse behavior if it exists + pixelTick(pixel); + } + }; + } + // Draw the current pixels + var canvas = document.getElementById("game"); + var ctx = canvas.getContext("2d"); for (var i = 0; i < newCurrentPixels.length; i++) { pixel = newCurrentPixels[i]; - //if (pixelMap[pixel.x][pixel.y] == undefined || currentPixels.indexOf(pixel) == -1) {continue} - if (pixel.del) {continue} - if ((!paused) || forceTick) {pixelTick(pixel);}; - } - // Draw the current pixels - if (!hiding) { - var canvas = document.getElementById("game"); - var ctx = canvas.getContext("2d"); - for (var i = 0; i < newCurrentPixels.length; i++) { - pixel = newCurrentPixels[i]; - if (pixelMap[pixel.x][pixel.y] == undefined) {continue} + if (pixelMap[pixel.x][pixel.y] == undefined) {continue} + if (view===null) { ctx.fillStyle = pixel.color; - ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y)/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x)/4.4)), pixelSize, pixelSize); - if (pixel.charge) { // Yellow glow on charge - if (!elements[pixel.element].colorOn) { - ctx.fillStyle = "rgba(255,255,0,0.5)"; - ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y)/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x)/4.4)), pixelSize, pixelSize); - } + } + else if (view === "thermal") { + // set the color to pixel.temp, from hottest at 0 hue to coldest 225 hue, with the minimum being -273, max being 6000 + var temp = pixel.temp; + if (temp < -273) {temp = -273} + if (temp > 6000) {temp = 6000} + var hue = 225 - (temp/6000)*225; + if (hue < 0) {hue = 0} + if (hue > 225) {hue = 225} + ctx.fillStyle = "hsl("+hue+",100%,50%)"; + } + ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y+incrementt )/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x+incrementt)/4.4)), pixelSize, pixelSize); + if (pixel.charge) { // Yellow glow on charge + if (!elements[pixel.element].colorOn) { + ctx.fillStyle = "rgba(255,255,0,0.5)"; + ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y+incrementt)/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x+incrementt)/4.4)), pixelSize, pixelSize); } } } - if ((!paused) || forceTick) {pixelTicks++}; - } -}); + if ((!paused) || forceTick) {pixelTicks++}; +} diff --git a/mods/clone_liquid.js b/mods/clone_liquid.js new file mode 100644 index 00000000..2edfdf2c --- /dev/null +++ b/mods/clone_liquid.js @@ -0,0 +1,22 @@ +elements.clone_liquid = { + color: "#f0f000", + behavior: [ + "XX|CF|XX", + "CF AND M2|XX|CF AND M2", + "M1|CF AND M1|M1", + ], + ignore: ["cloner","ecloner","slow_cloner","floating_cloner","clone_powder","clone_liquid_spout"], + category:"machines", + insulate:true, + state:"gas", + density:2710, + hardness: 1, +}, + +elements.floating_cloner.state = "gas" + +runAfterLoad(function() { + if(enabledMods.includes("mods/spouts.js")) { + elements.floating_cloner.ignore.push("floating_cloner_spout") + } +}); \ No newline at end of file diff --git a/mods/evenmoretemptools.js b/mods/evenmoretemptools.js new file mode 100644 index 00000000..70f50b84 --- /dev/null +++ b/mods/evenmoretemptools.js @@ -0,0 +1,41 @@ +//base syntax by sightnado +elements.warm = { + color: "#7fff7f", + tool: function(pixel) { + pixel.temp = 20; + pixelTempCheck(pixel) + }, + category: "tools", +}; +elements.ultraheat = { + color: ["#ff0000", "#ffbf4f", "#ff0000", "#ffbf4f", "#ff0000", "#ffbf4f"], + tool: function(pixel) { + if(shiftDown) { pixel.temp += (350 * (1 + shiftDown)) } else { pixel.temp += 350 } + pixelTempCheck(pixel) + }, + category: "tools", +}; +elements.ultracool = { + color: ["#0000ff", "#4fbfff", "#0000ff", "#4fbfff", "#0000ff", "#4fbfff"], + tool: function(pixel) { + if(shiftDown) { pixel.temp -= (350 * (1 + shiftDown)) } else { pixel.temp -= 350 } + pixelTempCheck(pixel) + }, + category: "tools", +}; +elements.na_ntemp = { + color: ["#000000", "#ff00ff", "#000000", "#ff00ff"], + tool: function(pixel) { + pixel.temp = NaN; + pixelTempCheck(pixel) + }, + category: "tools", +}; +elements.inftemp = { + color: ["#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff"], + tool: function(pixel) { + pixel.temp = Infinity; + pixelTempCheck(pixel) + }, + category: "tools", +}; diff --git a/mods/extra_element_info.js b/mods/extra_element_info.js index 9f583b03..22d751e9 100644 --- a/mods/extra_element_info.js +++ b/mods/extra_element_info.js @@ -1,7 +1,16 @@ -// Extra Element Info, v1.0 +// Extra Element Info, v1.1 // Author: MelecieDiancie -// To show extra info on the info screen, add the extraInfo variable onto an object. It's a string. +/* +=== CHANGELOG === +1.1 Version +- Removed code for extra element info, due to its addition to vanilla. It still exists as a comment if you want to check it out. + +1.0 Version ++ Initial release +*/ + +/* showInfo = (function() { var cached_function = showInfo; @@ -15,6 +24,8 @@ showInfo = (function() { }; })(); +*/ + // Everything down below is adding info to vanilla elements elements.random.extraInfo = "Produces random pixels."; @@ -22,6 +33,11 @@ elements.pick.extraInfo = "Picks a selected pixel. Works with hidden elements as elements.mix.extraInfo = "Mixes pixels in the selection box."; elements.lookup.extraInfo = "Brings up the info screen of a selected pixel."; elements.shock.extraInfo = "Produces electricity on all pixels in the selection box that can conduct it."; +elements.uncharge.extraInfo = "Removes electricity on all pixels in the selection box with electricity."; +elements.smash.extraInfo = "Crushes all elements in the selection box as if they were destroyed by an explosion."; +elements.cook.extraInfo = "Slowly heats up elements."; +elements.heat.extraInfo = "Heats up elements."; +elements.cool.extraInfo = "Cools down elements."; elements.bamboo_plant.extraInfo = "Plants a bamboo plant of variable height."; elements.sapling.extraInfo = "Plants a tree of variable height and structure."; @@ -52,7 +68,11 @@ elements.antimolten.extraInfo = "Moves in reverse."; elements.antifire.extraInfo = "Moves in reverse."; elements.antigas.extraInfo = "Moves in reverse."; elements.static.extraInfo = "Flickers in grayscale."; -elements.rainbow.extraInfo = "Flickers the rainbow's colors."; elements.gray_goo.extraInfo = "Duplicates itself when touching other pixels."; elements.virus.extraInfo = "Duplicates itself when touching other pixels."; elements.snake.extraInfo = "Goes around in a snake-like pattern."; +elements.shocker.extraInfo = "Produces sparks when powered."; +elements.pressure_plate.extraInfo = "Produces electricity when something is above it."; +elements.light_bulb.extraInfo = "Produces light when powered."; +elements.tesla_coil.extraInfo = "Produces plasma when powered."; +elements.border.extraInfo = "Produces a border effect."; diff --git a/mods/funny_liquid.js b/mods/funny_liquid.js index 8ee4fabf..6b4aca94 100644 --- a/mods/funny_liquid.js +++ b/mods/funny_liquid.js @@ -32,6 +32,7 @@ elements.cum = { category:"cum", conduct:0, extraInfo: "A whitish, sticky liquid that contains sperm. It isn't funny.", + stain: 0.11, }, elements.dead_cum = { name: "dead cum", @@ -62,6 +63,7 @@ elements.dead_cum = { conduct: 0.04, hidden:true, extraInfo: "Semen whose sperm have died.", + stain: 0.11, }, elements.cum_water = { name: "cum water", @@ -96,6 +98,7 @@ elements.cum_water = { state: "liquid", hidden: true, extraInfo: "Dilute semen.", + stain: 0.04, }, elements.dead_cum_water = { name: "dead cum water", @@ -119,6 +122,7 @@ elements.dead_cum_water = { conduct: 0.03, hidden:true, extraInfo: "Dilute semen whose sperm have died.", + stain: 0.04, }, elements.burnt_cum = { name: "burnt cum", @@ -428,6 +432,7 @@ elements.precum = { category:"cum", state: "liquid", extraInfo: "A sticky fluid that neutralizes acid.", + stain: 0.03, }, elements.precum_ice = { name: "frozen pre-cum", diff --git a/mods/funny_liquid_2.js b/mods/funny_liquid_2.js index f625f69b..aab53a10 100644 --- a/mods/funny_liquid_2.js +++ b/mods/funny_liquid_2.js @@ -24,6 +24,7 @@ elements.piss = { state: "liquid", conduct:elements.water.conduct+0.1, extraInfo: "A liquid excreted as waste by many animals.", + stain: 0.07, }, elements.piss_water = { @@ -50,6 +51,7 @@ elements.piss_water = { category: "piss", conduct: elements.water.conduct+0.05, hidden: true, + stain: 0.05, }, elements.piss_ice = { diff --git a/mods/funny_liquid_3.js b/mods/funny_liquid_3.js index 231eb6b6..15d88bd1 100644 --- a/mods/funny_liquid_3.js +++ b/mods/funny_liquid_3.js @@ -23,6 +23,7 @@ elements.vomit = { stateLow: "frozen_vomit", state: "liquid", density: 1049, + stain: 0.32, }, elements.acid_gas.ignore.push("water") diff --git a/mods/funny_solid.js b/mods/funny_solid.js index 2eccf778..7fa75a8b 100644 --- a/mods/funny_solid.js +++ b/mods/funny_solid.js @@ -15,24 +15,9 @@ elements.shit = { category: "shit", state: "solid", density: 1060, + stain: 0.34, }, -elements.altnull = { - color: settings.bg, - behavior: behaviors.SELFDELETE, - reactions: { - "altnull": { "elem1": null, "elem2": null } - }, - tick: function(pixel) { - deletePixel(pixel.x,pixel.y) - }, - burn: 10000, - burnTime: 1, - hidden: true, - category: "special", -}, - - elements.dried_shit = { color: ["#b58738","#8c7245","#ad915f","#b5a174","#705e34","#bdad88"], behavior: [ @@ -48,9 +33,9 @@ elements.dried_shit = { density: 265, burn: 120, burnTime: 300, - burnInto: ["ash","altnull","altnull"], + burnInto: ["ash",null,null], tempHigh: 300, //bs - stateHigh: ["ash","altnull","altnull"], + stateHigh: ["ash",null,null], }, elements.diarrhea = { @@ -71,6 +56,7 @@ elements.diarrhea = { state: "liquid", density: 1030, //bs viscosity: 3, + stain: 0.51, }, elements.frozen_shit = { diff --git a/mods/grav_mudstones.js b/mods/grav_mudstones.js new file mode 100644 index 00000000..fc4e1c11 --- /dev/null +++ b/mods/grav_mudstones.js @@ -0,0 +1,382 @@ +elements.anti_mudstone = { + color: "#4a341e", + behavior: [ + "XX|M1|XX", + "SP|XX|SP", + "XX|XX|XX", + ], + tempHigh:1200, + stateHigh: "molten_dirt", + category: "center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.vertical_mudstone_1 = { + name: "<|- mudstone", + color: "#4a341e", + behavior: [ + "XX|SP|XX", + "M1|XX|XX", + "XX|SP|XX", + ], + tempHigh:1200, + stateHigh: "molten_dirt", + category: "center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.vertical_mudstone_2 = { + name: "|>- mudstone", + color: "#4a341e", + behavior: [ + "XX|SP|XX", + "XX|XX|M1", + "XX|SP|XX", + ], + tempHigh:1200, + stateHigh: "molten_dirt", + category: "center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_br_mudstone_1 = { + name: "L\\- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|XX", + "XX|XX|XX", + "M1|XX|SP", + ], + tempHigh:1200, + stateHigh: "molten_dirt", + category: "center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_br_mudstone_2 = { + name: "\\'- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|M1", + "XX|XX|XX", + "XX|XX|SP", + ], + tempHigh:1200, + stateHigh: "molten_dirt", + category: "center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tr_bl_mudstone_1 = { + name: "/J- mudstone", + color: "#4a341e", + behavior: [ + "XX|XX|SP", + "XX|XX|XX", + "SP|XX|M1", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tr_bl_mudstone_2 = { + name: "r/- mudstone", + color: "#4a341e", + behavior: [ + "M1|XX|SP", + "XX|XX|XX", + "SP|XX|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tr_tl_mudstone = { + name: "V- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|SP", + "XX|XX|XX", + "XX|M1|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.br_bl_mudstone = { + name: "^- mudstone", + color: "#4a341e", + behavior: [ + "XX|M1|XX", + "XX|XX|XX", + "SP|XX|SP", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_bl_mudstone = { + name: ">- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|XX", + "XX|XX|M1", + "SP|XX|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tr_br_mudstone = { + name: "<- mudstone", + color: "#4a341e", + behavior: [ + "XX|XX|SP", + "M1|XX|XX", + "XX|XX|SP", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tm_mr_mudstone = { + name: "-,- mudstone", + color: "#4a341e", + behavior: [ + "XX|SP|XX", + "XX|XX|SP", + "M1|XX|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.ml_tm_mudstone = { + name: "r- mudstone", + color: "#4a341e", + behavior: [ + "XX|SP|XX", + "SP|XX|XX", + "XX|XX|M1", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.ml_bm_mudstone = { + name: "L- mudstone", + color: "#4a341e", + behavior: [ + "XX|XX|M1", + "SP|XX|XX", + "XX|SP|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.bm_mr_mudstone = { + name: "J- mudstone", + color: "#4a341e", + behavior: [ + "M1|XX|XX", + "XX|XX|SP", + "XX|SP|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "non- center intersecting s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_bl_tr_br_mudstone_1 = { + name: "Xv- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|SP", + "XX|XX|XX", + "SP|M1|SP", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_bl_tr_br_mudstone_2 = { + name: "X^- mudstone", + color: "#4a341e", + behavior: [ + "SP|M1|SP", + "XX|XX|XX", + "SP|XX|SP", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_bl_tr_br_mudstone_3 = { + name: "X<- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|SP", + "M1|XX|XX", + "SP|XX|SP", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_bl_tr_br_mudstone_4 = { + name: "X>- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|SP", + "XX|XX|M1", + "SP|XX|SP", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.ml_tm_bm_mr_mudstone_1 = { + name: "+ L- mudstone", + color: "#4a341e", + behavior: [ + "XX|SP|XX", + "SS|XX|SP", + "M1|SP|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.ml_tm_bm_mr_mudstone_2 = { + name: "+ -,- mudstone", + color: "#4a341e", + behavior: [ + "XX|SP|M1", + "SS|XX|SP", + "XX|SP|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.ml_tm_bm_mr_mudstone_3 = { + name: "+r- mudstone", + color: "#4a341e", + behavior: [ + "M1|SP|XX", + "SS|XX|SP", + "XX|SP|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.ml_tm_bm_mr_mudstone_4 = { + name: "+J- mudstone", + color: "#4a341e", + behavior: [ + "XX|SP|XX", + "SS|XX|SP", + "XX|SP|M1", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "cross s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +}, + +elements.tl_rm_mudstone_1 = { + name: "`-v- mudstone", + color: "#4a341e", + behavior: [ + "SP|XX|XX", + "XX|XX|SP", + "XX|M1|XX", + ], + tempHigh: 1200, + stateHigh: "molten_dirt", + category: "other s p- line mudstones", + state: "solid", + density: 1250, + breakInto: "dirt", +} \ No newline at end of file diff --git a/mods/moreliquids.js b/mods/moreliquids.js new file mode 100644 index 00000000..61a51996 --- /dev/null +++ b/mods/moreliquids.js @@ -0,0 +1,128 @@ +elements.soup = { + color: "#AC4A2E", + behavior: behaviors.LIQUID, + category: "food", + viscosity: 74000, + state: "liquid", + density: 720 +}; +elements.wet_soup = { + color: "#C15C3F", + behavior: behaviors.LIQUID, + category: "food", + viscosity: 6400, + state: "liquid", + density: 320 +}; +elements.guacamole = { + color: "#67A555", + behavior: behaviors.LIQUID, + category: "food", + viscosity: 4640, + state: "liquid", + density: 993 +}; +elements.cream = { + color: ["#E1D3A2","#E5DBB7"], + behavior: behaviors.LIQUID, + category: "food", + stateHigh: "gas", + viscosity: 4640, + state: "liquid", + density: 993 +}; +elements.poop = { + color: "#8A4D24", + behavior: [ + "XX|CR:plague%0.1 AND CR:fly%0.01 AND CR:methane%0.0316|XX", + "XX|CH:dried_poop%0.02|XX", + "M2%50|M1 AND SW:water%50|M2%50", + ], + category: "life", + viscosity: 1, + reactions: {}, + state: "liquid", + density: 43 +}; +elements.dried_poop = { + color: "#442714", + behavior: behaviors.POWDER, + category: "powders", + viscosity: 1, + state: "solid", + density: 43 +}; +elements.tar = { + color: "#101217", + behavior: behaviors.LIQUID, + category: "liquids", + viscosity: 45000, + state: "liquid", + burn: 10, + reactions: {}, + burnTime: 200, + fireColor: "#101217", + density: 1 +}; +elements.cinder = { + color: "#171210", + behavior: behaviors.LIQUID, + category: "liquids", + viscosity: 70, + state: "liquid", + burn: 5, + burnTime: 70, + fireColor: "#FF4F00", + density: 343 +}; +elements.paste = { + color: "#C4AA98", + behavior: behaviors.WALL, + category: "solids", + stateHigh: ["liquid_paste"], + state: "solid", + density: 230 +}; +elements.husk = { + color: ["#C4AA98", "#9E836B", "#A5876D", "#AE7D64", "#C87B67"], + behavior: behaviors.WALL, + category: "solids", + reactions: {}, + state: "solid" +}; +elements.remnant = { + color: "#3C382B", + behavior: behaviors.POWDER, + category: "land", + state: "solid", + density: 1730 +}; +elements.rot = { + color: ["#101217", "#853A2A"], + behavior: [ + "XX|CR:fly%0.054|XX", + "XX|XX|XX", + "XX|CR:rot%0.054|XX", + ], + category: "liquids", + viscosity: 1, + state: "liquid", + reactions: {}, + density: 2 +}; +elements.liquid_paste = { + color: "#D8D4C1", + behavior: behaviors.LIQUID, + category: "liquids", + viscosity: 150430, + state: "liquid", + density: 230 +}; +elements.water.reactions.soup = { "elem1":"wet_soup", "elem2":"salt_water" }; +elements.tar.reactions.magma = { "elem1":"smoke", "elem2":"cinder" }; +elements.poop.reactions.water = { "elem1":"dried_poop", "elem2":"fly" }; +elements.tar.reactions.husk = { "elem1":"rot", "elem2":"fly" }; +elements.husk.reactions.molasses = { "elem1":"smoke", "elem2":"remnant" }; +elements.rot.reactions.fire = { "elem1":"smoke", "elem2":"cinder" }; +elements.water.reactions.rot = { "elem1":"blood", "elem2":"slag" }; + diff --git a/mods/move_tools.js b/mods/move_tools.js new file mode 100644 index 00000000..8a3bc940 --- /dev/null +++ b/mods/move_tools.js @@ -0,0 +1,63 @@ +elements.move_up = { + color: "#1C0000", + tool: function(pixel) { + tryMove(pixel,pixel.x,pixel.y-1); + }, + category: "tools", +}, + +elements.move_down = { + color: "#000038", + tool: function(pixel) { + tryMove(pixel,pixel.x,pixel.y+1); + }, + category: "tools", +}, + +elements.move_left = { + color: "#007000", + tool: function(pixel) { + tryMove(pixel,pixel.x-1,pixel.y); + }, + category: "tools", +}, + +elements.move_right = { + color: "#000E00", + tool: function(pixel) { + tryMove(pixel,pixel.x+1,pixel.y); + }, + category: "tools", +}, + +elements.move_up_left = { + color: "#E00000", + tool: function(pixel) { + tryMove(pixel,pixel.x-1,pixel.y-1); + }, + category: "tools", +}, + +elements.move_down_left = { + color: "#0001C0", + tool: function(pixel) { + tryMove(pixel,pixel.x-1,pixel.y+1); + }, + category: "tools", +}, + +elements.move_up_right = { + color: "#038000", + tool: function(pixel) { + tryMove(pixel,pixel.x+1,pixel.y-1); + }, + category: "tools", +}, + +elements.move_down_right = { + color: "#000007", + tool: function(pixel) { + tryMove(pixel,pixel.x+1,pixel.y+1); + }, + category: "tools", +} \ No newline at end of file diff --git a/mods/randomness_but_tool.js b/mods/randomness_but_tool.js new file mode 100644 index 00000000..39762bea --- /dev/null +++ b/mods/randomness_but_tool.js @@ -0,0 +1,90 @@ +elements.igniter = { + color: elements.fire.color, + tool: function(pixel) { + pixel.burnStart = pixelTicks; + pixel.burning = true; + }, + category: "tools", + excludeRandom: true, +}; + +elements.extinguisher = { + color: "#bad1e3", + tool: function(pixel) { + if(pixel.burnStart) { delete pixel.burnStart } + pixel.burning = false; + }, + category: "tools", + excludeRandom: true, +}; + +elements.cursed_shock = { + color: ["#ffff00", "#00ff00", "#ffff00", "#00ff00", "#ffff00", "#00ff00", "#ffff00", "#00ff00"], + tool: function(pixel) { + var con = elements[pixel.element].conduct; + if (con == undefined) {con = 0} + if (Math.random() < con || con == 0) { // If random number is less than conductivity, or anyway + if (!pixel.charge && !pixel.chargeCD) { + pixel.charge = 1; + if (elements[pixel.element].colorOn) { + pixel.color = pixelColorPick(pixel); + } + } + } + if(Math.random() > con) { + if (elements[pixel.element].insulate != true) { // Otherwise heat the pixel (Resistance simulation) + pixel.temp += 0.25; + pixelTempCheck(pixel); + } + } + }, + category: "tools", + excludeRandom: true, +}; + +elements.extinguisher = { + color: "#bad1e3", + tool: function(pixel) { + if(pixel.burnStart) { delete pixel.burnStart } + pixel.burning = false; + }, + category: "tools", + excludeRandom: true, +}; + +elements.anti_gravity = { + color: [elements.dirt.color[1],elements.dirt.color[1],elements.oxygen.color,elements.oxygen.color], + tool: function(pixel) { + pixel.r = 2; + }, + category: "tools", + excludeRandom: true, +}; + +elements.normal_gravity = { + color: [elements.oxygen.color,elements.oxygen.color,elements.dirt.color[1],elements.dirt.color[1]], + tool: function(pixel) { + pixel.r = 0; + }, + category: "tools", + excludeRandom: true, +}; + +elements.rg1 = { + color: [elements.dirt.color[14],elements.dirt.color[14],elements.liquid_oxygen.color,elements.liquid_oxygen.color], + tool: function(pixel) { + pixel.r = 1; + }, + category: "tools", + excludeRandom: true, +}; + +elements.rg3 = { + color: [elements.liquid_oxygen.color,elements.liquid_oxygen.color,elements.dirt.color[14],elements.dirt.color[14]], + tool: function(pixel) { + pixel.r = 3; + }, + category: "tools", + excludeRandom: true, +}; + diff --git a/mods/some_tf_liquids.js b/mods/some_tf_liquids.js index 91ad2450..920eb20f 100644 --- a/mods/some_tf_liquids.js +++ b/mods/some_tf_liquids.js @@ -19,7 +19,7 @@ elements.signalum = { category: "solids", density: 10500, conduct: 1, - tempHigh: 550, + tempHigh: 1550, stateHigh: "molten_signalum", state: "solid", }, @@ -213,3 +213,9 @@ elements.resonant_ender = { state: "liquid", viscosity: 3**4, } + +runAfterLoad(function() { + lifeArray = Object.keys(elements).filter(function(e) { + return elements[e].category == "life"; + }); +}); diff --git a/mods/spouts.js b/mods/spouts.js index f4e4977d..4e890049 100644 --- a/mods/spouts.js +++ b/mods/spouts.js @@ -1,6 +1,6 @@ runAfterLoad(function() { liquidArray = Object.keys(elements).filter(function(e) { - return elements[e].state == "liquid" || elements[e].state == "gas"; + return (elements[e].state == "liquid" || elements[e].state == "gas") && elements[e] != "ketchup"; }); for(i = 0; i < liquidArray.length; i++) { elements[`${liquidArray[i]}_spout`] = { @@ -14,4 +14,5 @@ runAfterLoad(function() { temp: elements[liquidArray[i]].temp, }; }; + liquidArray.push("ketchup") }); diff --git a/mods/time.js b/mods/time.js new file mode 100644 index 00000000..2ec9b95a --- /dev/null +++ b/mods/time.js @@ -0,0 +1,7 @@ + elements.time = { + color: "#006e05", + behavior: behaviors.GAS, + category: "gases", + state: "gas", + density: 10, +}; diff --git a/mods/troll.js b/mods/troll.js index 902a9c26..2f9fbc45 100644 --- a/mods/troll.js +++ b/mods/troll.js @@ -75,4 +75,31 @@ elements.troll4 = { hardness: 1.0, state: "solid", excludeRandom: true, +}, + +elements.offset_fourth_y = { + color: ["#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff"], + tool: function(pixel) { + tryMove(pixel,pixel.x,pixel.y+0.25); + pixelTempCheck(pixel) + }, + category: "tools", +}, + +elements.offset_half_y = { + color: ["#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff"], + tool: function(pixel) { + tryMove(pixel,pixel.x,pixel.y+0.5); + pixelTempCheck(pixel) + }, + category: "tools", +}, + +elements.offset_three_fourth_y = { + color: ["#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff"], + tool: function(pixel) { + tryMove(pixel,pixel.x,pixel.y+0.75); + pixelTempCheck(pixel) + }, + category: "tools", }