more bbc structural variants

This commit is contained in:
Laetitia (O-01-67) 2022-12-05 11:01:44 -05:00 committed by GitHub
parent f2ff60d0f4
commit 1867f613a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 53 additions and 9 deletions

View File

@ -44,6 +44,20 @@ altRoom= [["brick", "brick", "brick", "brick", "brick", "brick", "brick",
return Math.floor(Math.random() * 256);
};*/
canSupportWithEdge = function(x,y) {
if(outOfBounds(x,y)) { //count edges
return true;
} else {
if(!isEmpty(x,y,true)) { //if there is a pixel
if(elements[pixelMap[x][y].element].state === "solid") {
return true;
} else {
return false;
};
};
};
};
function loadPixelRowFromArray(pixelArray,centerX,centerY,evenLengthBiasedLeft=true,doOverwrite=true) {
var arrayLength = pixelArray.length;
var leftmostOffset = (evenLengthBiasedLeft ? Math.floor(0 - ((arrayLength - 1) / 2)) : Math.ceil(0 - ((arrayLength - 1) / 2))) //floor and ceil have no effect on the integer values produced by odd lengths
@ -89,6 +103,40 @@ elements.glass.hardness = 0.25,
elements.rad_glass.hardness = 0.25,
//Prereq elements
elements.crumbling_concrete = {
color: "#ababab",
tick: function(pixel) {
var px = pixel.x;
var py = pixel.y;
if (pixel.start === pixelTicks) {return}
var supportCondition1 = (canSupportWithEdge(px-1,py-1) && canSupportWithEdge(px+1,py-1)) // V shape
var supportCondition2 = (canSupportWithEdge(px-1,py) && canSupportWithEdge(px+1,py)) // - shape
var supportCondition3 = (canSupportWithEdge(px-1,py+1) && canSupportWithEdge(px+1,py+1)) // Λ shape
var supportCondition4 = (canSupportWithEdge(px-1,py+1) && canSupportWithEdge(px+1,py-1)) // / shape
var supportCondition5 = (canSupportWithEdge(px-1,py-1) && canSupportWithEdge(px+1,py+1)) // \ shape
var supportCondition6 = (canSupportWithEdge(px-1,py-1) && canSupportWithEdge(px+1,py)) // '- shape
var supportCondition7 = (canSupportWithEdge(px-1,py+1) && canSupportWithEdge(px+1,py)) // ,- shape
var supportCondition8 = (canSupportWithEdge(px+1,py-1) && canSupportWithEdge(px-1,py)) // -' shape
var supportCondition9 = (canSupportWithEdge(px+1,py+1) && canSupportWithEdge(px-1,py)) // -, shape
var supportCondition10 = (canSupportWithEdge(px,py+1) && canSupportWithEdge(px,py-1)) // | shape
var supports = (supportCondition1 || supportCondition2 || supportCondition3 || supportCondition4 || supportCondition5 || supportCondition6 || supportCondition7 || supportCondition8 || supportCondition9 || supportCondition10);
if(!supports) {
behaviors.POWDER(pixel);
};
},
tempHigh: 1500,
stateHigh: "magma",
category: "powders",
state: "solid",
density: 2400,
hardness: 0.5,
breakInto: "dust",
};
elements.glass_pane = {
color: ["#5e807d","#679e99"],
behavior: behaviors.SUPPORT,
@ -174,17 +222,13 @@ elements.support_copper = {
hidden: true,
};
elements.hanging_bulb = {
elements.support_bulb = {
color: "#a8a897",
behavior: [
"XX|SP|XX",
"XX|XX|XX",
"M2|M1|M2"
],
behavior: behaviors.SUPPORTPOWDER,
behaviorOn: [
"XX|SP AND CR:light|XX",
"CR:light|XX|CR:light",
"M2|M1 AND CR:light|M2",
"XX|CR:light|XX",
"CR:light AND SP|XX|CR:light AND SP",
"M2|CR:light AND M1|M2"
],
colorOn: "#ebebc3",
category: "machines",