sandboxels/mods/cover_yourself_in.js

141 lines
2.9 KiB
JavaScript

function placeDownwardColumn(element,xx,yy,creationChance) {
var newElement = element;
if(Array.isArray(newElement)) {
newElement = newElement[Math.floor(Math.random() * newElement.length)];
};
//console.log("from " + xx + "," + yy)
if(!outOfBounds(xx,yy)) {
for(i = yy; i < pixelMap[xx].length; i++) {
if(isEmpty(xx,i,false)) {
if(Math.random() < creationChance) {
createPixel(element,xx,i)
}
} else if(!isEmpty(xx,i,true)) {
var newPixel = pixelMap[xx][i];
var newElement = newPixel.element;
var newInfo = elements[newElement];
var newState = "solid";
if(typeof(newInfo.state) !== "undefined") {
newState = newInfo.state
};
if(newState !== "solid") {
continue;
} else {
break;
};
} else if(outOfBounds(xx,i)) {
break;
};
};
};
};
//cliche'
elements.blood_cloud = {
color: "#9c3e35",
behavior: [
"XX|XX|XX",
"XX|CH:blood%0.05|M1%2.5 AND BO",
"XX|XX|XX",
],
category:"gases",
temp: 30,
state: "gas",
density: 0.5,
ignoreAir: true,
conduct: 0.03,
stain: 0.02,
},
elements.heavy_blood_cloud = {
color: "#c22d23",
behavior: [
"XX|XX|XX",
"XX|CH:blood%0.1|M1%2.5 AND BO",
"XX|CR:blood%0.05|XX",
],
category:"gases",
temp: 30,
state: "gas",
density: 0.7,
ignoreAir: true,
conduct: 0.03,
stain: 0.03,
},
elements.heavier_blood_cloud = {
color: "#b02219",
behavior: [
"XX|XX|XX",
"XX|CH:blood%0.2|M1%2.5 AND BO",
"XX|CR:blood%0.1|XX",
],
category:"gases",
temp: 30,
state: "gas",
density: 0.9,
ignoreAir: true,
conduct: 0.03,
stain: 0.04,
},
elements.heaviest_blood_cloud = {
color: "#910f07",
behavior: [
"XX|XX|XX",
"XX|CH:blood%0.4|M1%2.5 AND BO",
"XX|CR:blood%0.2|XX",
],
category:"gases",
temp: 30,
state: "gas",
density: 1.1,
ignoreAir: true,
conduct: 0.03,
stain: 0.05,
},
elements.heaviester_blood_cloud = {
color: "#690600",
behavior: [
"XX|XX|XX",
"XX|CH:blood%0.8|M1%2.5 AND BO",
"XX|CR:blood%0.4|XX",
],
tick: function(pixel) {
if(Math.random() < 0.01) {
placeDownwardColumn("blood",pixel.x,pixel.y+1,0.5);
}
},
category:"gases",
temp: 30,
state: "gas",
density: 1.15,
ignoreAir: true,
conduct: 0.03,
stain: 0.06,
},
elements.heaviestest_blood_cloud = {
color: "#330301",
behavior: [
"XX|CR:blood%0.8|XX",
"CR:blood%0.05|CH:blood%3|CR:blood%0.05 AND M1%2.5 AND BO",
"XX|CR:blood%0.8|XX",
],
tick: function(pixel) {
if(Math.random() < 0.02) {
for(j = -1; j <= 1; j++) {
placeDownwardColumn("blood",pixel.x+j,pixel.y+1,0.5);
};
};
},
category:"gases",
temp: 30,
state: "gas",
density: 1.2,
ignoreAir: true,
conduct: 0.03,
stain: 0.07,
}