Add files via upload

This commit is contained in:
Lily-129 2022-01-27 20:41:55 -05:00 committed by GitHub
parent 42f3e9dd87
commit fd363c8863
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 253 additions and 0 deletions

253
mods/some_tf_liquids.js Normal file
View File

@ -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?)