From fd363c88639efc5c1930183844d00ef7b769c147 Mon Sep 17 00:00:00 2001 From: Lily-129 <68935009+Lily-129@users.noreply.github.com> Date: Thu, 27 Jan 2022 20:41:55 -0500 Subject: [PATCH] Add files via upload --- mods/some_tf_liquids.js | 253 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 mods/some_tf_liquids.js diff --git a/mods/some_tf_liquids.js b/mods/some_tf_liquids.js new file mode 100644 index 00000000..bb5647dc --- /dev/null +++ b/mods/some_tf_liquids.js @@ -0,0 +1,253 @@ +//signalum doesn't require tick function fuckery + +elements.destabilized_redstone = { + color: ["#9e0303", "#98061a", "#b80704", "#c4020c", "#f70008", "#9e0303", "#98061a", "#b80704", "#e3020a", "#8c0303", "#8c0303"], + behavior: [ + "XX|SH|XX", + "M2 AND SH|XX|M2 AND SH", + "M1|M1 AND SH|M1", + ], + viscosity: 1.5, + category: "liquids", + density:1200, +}, + +elements.signalum = { + color: "#ff9321", + behavior: behaviors.WALL, + category: "solids", + density: 10500, + conduct: 1, + tempHigh: 550, + stateHigh: "molten_signalum", +}, + +elements.molten_sterling = { + reactions: { + "destabilized_redstone": { "elem1": null, "elem2": "molten_signalum" }, + } +}, + +elements.molten_signalum = { + color: "#f17414", + behavior: behaviors.MOLTEN, + density: 10500*0.9, + conduct: 0.30, + temp:600, + tempLow: 550, + stateLow: "signalum", + category: "liquids", + hidden: true, +}, + +//pyrotheum + +elements.blazing_pyrotheum = { + color: "#ffdd55", + tick: function(pixel) { + ddd = Math.random() + eee = Math.random() + doHeat(pixel); + if(ddd < 1/3 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { //"bottom M1|M1|M1" and viscosity copied from M1 code + if(tryMove(pixel, pixel.x-1, pixel.y+1)) { mOne = true } else { mOne = false } //left M1 + } else if(ddd < 2/3 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x, pixel.y+1)) { mOne = true } else { mOne = false } //middle M1 + } else if(ddd < 3/3 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x+1, pixel.y+1)) { mOne = true } else { mOne = false } //right M1 + } + if(!mOne) { //"middle M2|XX|M2" + if(eee < 1/2 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x+1, pixel.y)) { mTwo = true } else { mTwo = false } //left M2 + } else if(eee < 2/2 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x-1, pixel.y)) { mTwo = true } else { mTwo = false } //right M2 + } + } + if(pixel.temp >= -273 && pixel.temp <= 3707) { //temperature minimum of 3727 + pixel.temp += 20 + } else if(pixel.temp > 3717 && pixel.temp < 3727) { + pixel.temp = 3727 + } + if(Math.random() < 0.025 && isEmpty(pixel.x,pixel.y-1)) { //"XX|CR:fire%2.5|XX","CR:fire%2.5|XX|CR:fire%2.5","XX|CR:fire%2.5|XX" + createPixel("fire",pixel.x,pixel.y-1) + } + if(Math.random() < 0.025 && isEmpty(pixel.x+1,pixel.y)) { + createPixel("fire",pixel.x+1,pixel.y) + } + if(Math.random() < 0.025 && isEmpty(pixel.x-1,pixel.y)) { + createPixel("fire",pixel.x-1,pixel.y) + } + if(Math.random() < 0.025 && isEmpty(pixel.x,pixel.y+1)) { + createPixel("fire",pixel.x-1,pixel.y) + } + for (let i = -1; i < 2; i++) { //HT:10%2 on whole grid + for (let j = -1; j < 2; j++) { + if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { + if(Math.random() < 0.02) { + pixelMap[pixel.x+j][pixel.y+i].temp += 10 + } + } + } + } + if(!isEmpty(pixel.x,pixel.y+1) && !outOfBounds(pixel.x,pixel.y+1)) { + if((pixelMap[pixel.x][pixel.y+1]).element == "fire") { //manual swap down with fire since density wouldn't work + swapPixels(pixelMap[pixel.x][pixel.y],pixelMap[pixel.x][pixel.y+1]) + } + } + }, + viscosity: 1.2, + category: "liquids", + density:1994, + insulate:false, + temp: 3727, +}, + +elements.gelid_cryotheum = { + color: "#00ddff", + tick: function(pixel) { + ddd = Math.random() + eee = Math.random() + doHeat(pixel); + if(ddd < 1/3 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { //"bottom M1|M1|M1" and viscosity copied from M1 code + if(tryMove(pixel, pixel.x-1, pixel.y+1)) { mOne = true } else { mOne = false } //left M1 + } else if(ddd < 2/3 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x, pixel.y+1)) { mOne = true } else { mOne = false } //middle M1 + } else if(ddd < 3/3 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x+1, pixel.y+1)) { mOne = true } else { mOne = false } //right M1 + } + if(!mOne) { //"middle M2|XX|M2" + if(eee < 1/2 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x+1, pixel.y)) { mTwo = true } else { mTwo = false } //left M2 + } else if(eee < 2/2 && !((Math.random()*100) < 100 / ((pixel.viscosity) ** 0.25))) { + if(tryMove(pixel, pixel.x-1, pixel.y)) { mTwo = true } else { mTwo = false } //right M2 + } + } + if(pixel.temp >= -243) { //temperature maximum of -223 + pixel.temp -= 20 + } else if(pixel.temp > -223 && pixel.temp < -243) { + pixel.temp = -223 + } + if(Math.random() < 0.01 && isEmpty(pixel.x-1,pixel.y-1)) { //"CR:snow%1|XX|CR:snow%0.35","CR:snow%0.35|XX|CR:snow%0.35","XX|CR:snow%0.35|XX" + createPixel("snow",pixel.x-1,pixel.y-1) + } + if(Math.random() < 0.0035 && isEmpty(pixel.x+1,pixel.y-1)) { + createPixel("snow",pixel.x+1,pixel.y-1) + } + if(Math.random() < 0.0035 && isEmpty(pixel.x-1,pixel.y)) { // + createPixel("snow",pixel.x-1,pixel.y) + } + if(Math.random() < 0.0035 && isEmpty(pixel.x+1,pixel.y)) { + createPixel("snow",pixel.x+1,pixel.y) + } + if(Math.random() < 0.0035 && isEmpty(pixel.x,pixel.y+1)) { + createPixel("snow",pixel.x+1,pixel.y) + } + for (let i = -1; i < 2; i++) { //CO:10%2 on whole grid + for (let j = -1; j < 2; j++) { + if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { + if(Math.random() < 0.02) { + pixelMap[pixel.x+j][pixel.y+i].temp -= 10 + } + } + } + } + if(!isEmpty(pixel.x,pixel.y-1) && !outOfBounds(pixel.x,pixel.y-1)) { + if((pixelMap[pixel.x][pixel.y-1]).element == "snow") { //manual swap up with snow + swapPixels(pixelMap[pixel.x][pixel.y],pixelMap[pixel.x][pixel.y-1]) + } + } + }, + viscosity: 3, + category: "liquids", + density:3988, + insulate:false, + temp: -223, +}, + +elements.tectonic_petrotheum = { + color: ["#342414","#3C2414","#2C1C14","#543424","#643C28","#74442C"], + behavior: [ + "XX|XX|XX", + "M2|XX|M2", + "M1|M1|M1", + ], + reactions: { + "rock": { "elem2": "gravel" }, + "mudstone": { "elem2": "mud" }, //i took creative liberties with what it breaks :eggTF: + "packed_sand": { "elem2": "sand" }, //stone->gravel is explicitly shown and chalcopyrite_ore-> + "ice": { "elem2": "snow" }, //chalcopyrite_dust is implied, the rest of this section + "packed_snow": { "elem2": "snow" }, //isn't thermal foundation canon*/ + "basalt": { "elem2": "basalt_gravel" }, + "limestone": { "elem2": "limestone_gravel" }, + "concrete": { "elem2": "dust" }, + "brick": { "elem2": "brick_rubble" }, + "wood": { "elem2": "sawdust" }, + "glass": { "elem2": "glass_shard" }, + "ruins": { "elem2": "dust" }, + "chalcopyrite_ore": { "elem2": "chalcopyrite_dust" } + }, + temp: 120, + viscosity: 1.5, + category: "liquids", + density:3988, + insulate:false, +}, + +elements.basalt_gravel = { + color: ["#4d4c4c", "#42403f", "#333130", "#36322f"], + behavior: behaviors.POWDER, + tempHigh: 1262.5, + stateHigh: "magma", + category: "land", + state: "solid", + density: 1975, + hardness: 0.26, +}, + +elements.limestone_gravel = { + color: ["#c7baa1", "#e8d8b7", "#fcf3d7", "#fffce6"], + behavior: behaviors.POWDER, + tempHigh: 825, + stateHigh: "quicklime", + category: "land", + state: "solid", + density: 1380, + hardness: 0.16, + breakInto: ["quicklime","calcium","dust"], +} + +if(!Array.isArray(elements.basalt.breakInto)) { + tempArray = [] + tempArray.push(elements.basalt.breakInto) + elements.basalt.breakInto = tempArray +} + +elements.basalt.breakInto.push("basalt_gravel") +elements.limestone.breakInto.push("limestone_gravel") +elements.limestone.breakInto.push("limestone_gravel") + +elements.worm.reactions.limestone_gravel = { "elem2":"calcium", "chance":0.1 }, +elements.acid.reactions.limestone_gravel = { "elem1":"neutral_acid", "elem2":null }, + +elements.zephyrean_aerotheum = { + color: ["#FFFCD9","#FEFFFC","#FDFFDB","#FFFFE8","#FBF6D3","#F1EDD0"], + behavior: behaviors.AGLIQUID, + viscosity: 0.1, + category: "liquids", + density:-797.6, + insulate:false, +}, + +elements.energized_glowstone = { + color: ["#fbb204", "#fcf605", "#fce704", "#f8c414", "#f8e814"], + behavior: [ + "M1 AND SW:light|M1 AND CR:light%40 AND SW:light|M1 AND SW:light", + "M2 AND CR:light%40|XX|M2 AND CR:light%40", + "XX|CR:light%40|XX", + ], + viscosity: 0.1, + category: "liquids", + density:-797.6, + insulate:false, +} + +//no resonant ender (yet?) \ No newline at end of file