Merge branch 'main' of https://github.com/R74nCom/sandboxels
This commit is contained in:
commit
0805f199f4
|
|
@ -96,4 +96,204 @@ elements.technetium = {
|
|||
temp: 2200,
|
||||
stateLow: "technetium",
|
||||
density: 11400
|
||||
}
|
||||
},
|
||||
elements.destroyable_pipe = {
|
||||
color: "#414c4f",
|
||||
onSelect: function() {
|
||||
logMessage("Draw a pipe, wait for walls to appear, then erase the exit hole.");
|
||||
},
|
||||
tick: function(pixel) {
|
||||
if (!pixel.stage && pixelTicks-pixel.start > 60) {
|
||||
for (var i = 0; i < squareCoords.length; i++) {
|
||||
var coord = squareCoords[i];
|
||||
var x = pixel.x+coord[0];
|
||||
var y = pixel.y+coord[1];
|
||||
if (isEmpty(x,y)) {
|
||||
createPixel("brick",x,y);
|
||||
pixelMap[x][y].color = pixelColorPick(pixel,"#808080");
|
||||
}
|
||||
}
|
||||
pixel.stage = 1;
|
||||
}
|
||||
else if (pixel.stage === 1 && pixelTicks-pixel.start > 70) { //uninitialized
|
||||
for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
var coord = adjacentCoords[i];
|
||||
var x = pixel.x+coord[0];
|
||||
var y = pixel.y+coord[1];
|
||||
if (isEmpty(x,y)) {
|
||||
pixel.stage = 2; //blue
|
||||
pixel.color = pixelColorPick(pixel,"#000036");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pixel.stage > 1 && pixelTicks % 3 === pixel.stage-2) { //initialized
|
||||
for (var i = 0; i < squareCoords.length; i++) {
|
||||
var coord = squareCoords[i];
|
||||
var x = pixel.x+coord[0];
|
||||
var y = pixel.y+coord[1];
|
||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "destroyable_pipe") {
|
||||
var newPixel = pixelMap[x][y];
|
||||
if (newPixel.stage === 1) {
|
||||
var newColor;
|
||||
switch (pixel.stage) {
|
||||
case 2: newPixel.stage = 3; newColor = "#003600"; break; //green
|
||||
case 3: newPixel.stage = 4; newColor = "#360000"; break; //red
|
||||
case 4: newPixel.stage = 2; newColor = "#000036"; break; //blue
|
||||
}
|
||||
newPixel.color = pixelColorPick(newPixel,newColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
var moved = false;
|
||||
shuffleArray(squareCoordsShuffle);
|
||||
for (var i = 0; i < squareCoordsShuffle.length; i++) {
|
||||
var coord = squareCoordsShuffle[i];
|
||||
var x = pixel.x+coord[0];
|
||||
var y = pixel.y+coord[1];
|
||||
if (!isEmpty(x,y,true)) {
|
||||
var newPixel = pixelMap[x][y];
|
||||
if (newPixel.element === "destroyable_pipe") {
|
||||
var nextStage;
|
||||
switch (pixel.stage) {
|
||||
case 2: nextStage = 4; break; //green
|
||||
case 3: nextStage = 2; break; //red
|
||||
case 4: nextStage = 3; break; //blue
|
||||
}
|
||||
if (pixel.con && !newPixel.con && newPixel.stage === nextStage) { //transfer to adjacent pipe
|
||||
newPixel.con = pixel.con;
|
||||
newPixel.con.x = newPixel.x;
|
||||
newPixel.con.y = newPixel.y;
|
||||
pixel.con = null;
|
||||
moved = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (!pixel.con && elements[newPixel.element].movable) { //suck up pixel
|
||||
pixel.con = newPixel;
|
||||
deletePixel(newPixel.x,newPixel.y);
|
||||
pixel.con.x = pixel.x;
|
||||
pixel.con.y = pixel.y;
|
||||
pixel.con.del;
|
||||
moved = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pixel.con && !moved) { // move to same stage if none other
|
||||
for (var i = 0; i < squareCoordsShuffle.length; i++) {
|
||||
var coord = squareCoordsShuffle[i];
|
||||
var x = pixel.x+coord[0];
|
||||
var y = pixel.y+coord[1];
|
||||
if (isEmpty(x,y)) {
|
||||
delete pixel.con.del;
|
||||
pixel.con.x = x;
|
||||
pixel.con.y = y;
|
||||
pixelMap[x][y] = pixel.con;
|
||||
currentPixels.push(pixel.con);
|
||||
pixel.con = null;
|
||||
break;
|
||||
}
|
||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "destroyable_pipe") {
|
||||
var newPixel = pixelMap[x][y];
|
||||
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
|
||||
newPixel.con = pixel.con;
|
||||
newPixel.con.x = newPixel.x;
|
||||
newPixel.con.y = newPixel.y;
|
||||
pixel.con = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
category: "machines",
|
||||
movable: false,
|
||||
canContain: true,
|
||||
tempHigh: 1538,
|
||||
stateHigh: "molten_iron",
|
||||
breakInto: "metal_scrap",
|
||||
},
|
||||
elements.destroyable_superheater = {
|
||||
color: "#dd1111",
|
||||
behavior: [
|
||||
"XX|HT:10|XX",
|
||||
"HT:10|XX|HT:10",
|
||||
"XX|HT:10|XX",
|
||||
],
|
||||
category:"machines",
|
||||
stateLow:["iron","copper"],
|
||||
tempLow: -7,
|
||||
breakInto:["metal_scrap","oxidixed_copper"],
|
||||
},
|
||||
elements.destroyable_heater = {
|
||||
color: "#881111",
|
||||
behavior: [
|
||||
"XX|HT:2|XX",
|
||||
"HT:2|XX|HT:2",
|
||||
"XX|HT:2|XX",
|
||||
],
|
||||
category:"machines",
|
||||
stateLow:["iron","copper"],
|
||||
tempLow: -7,
|
||||
breakInto:["metal_scrap","oxidixed_copper"],
|
||||
},
|
||||
elements.destroyable_cooler = {
|
||||
color: "#111188",
|
||||
behavior: [
|
||||
"XX|CO:2|XX",
|
||||
"CO:2|XX|CO:2",
|
||||
"XX|CO:2|XX",
|
||||
],
|
||||
category:"machines",
|
||||
stateHigh:["iron","copper"],
|
||||
tempHigh: 49,
|
||||
breakInto:["metal_scrap","oxidixed_copper"],
|
||||
},
|
||||
elements.destroyable_freezer = {
|
||||
color: "#1111dd",
|
||||
behavior: [
|
||||
"XX|CO:10|XX",
|
||||
"CO:10|XX|CO:10",
|
||||
"XX|CO:10|XX",
|
||||
],
|
||||
category:"machines",
|
||||
stateHigh:["iron","copper"],
|
||||
tempHigh: 49,
|
||||
breakInto:["metal_scrap","oxidixed_copper"],
|
||||
},
|
||||
elements.destroyable_cloner = {
|
||||
color: "#dddd00",
|
||||
behavior: behaviors.CLONER,
|
||||
ignore: ["ecloner","slow_cloner","clone_powder","floating_cloner","wall","ewall","destroyable_cloner","destroyable_clone_powder","cloner"],
|
||||
category:"machines",
|
||||
hardness: 1,
|
||||
darkText: true,
|
||||
breakInto: "destroyable_clone_powder",
|
||||
tempHigh: 1538,
|
||||
stateHigh: "molten_iron",
|
||||
},
|
||||
elements.destroyable_clone_powder = {
|
||||
color: "#f0f000",
|
||||
behavior: [
|
||||
"XX|CF|XX",
|
||||
"CF|XX|CF",
|
||||
"M2|CF AND M1|M2",
|
||||
],
|
||||
ignore: ["ecloner","slow_cloner","clone_powder","floating_cloner","wall","ewall","destroyable_cloner","destroyable_clone_powder","cloner"],
|
||||
category:"machines",
|
||||
state:"solid",
|
||||
density:2710,
|
||||
hardness: 1,
|
||||
darkText: true,
|
||||
breakInto: "destroyable_clone_powder",
|
||||
tempHigh: 1538,
|
||||
stateHigh: "molten_iron",
|
||||
},
|
||||
eLists.CLONERS = ["ecloner","slow_cloner","clone_powder","floating_cloner","wall","ewall","destroyable_cloner","destroyable_clone_powder","cloner"];
|
||||
elements.cloner.ignore = eLists.CLONERS;
|
||||
elements.slow_cloner.ignore = eLists.CLONERS;
|
||||
elements.clone_powder.ignore = eLists.CLONERS;
|
||||
elements.floating_cloner.ignore = eLists.CLONERS;
|
||||
|
|
|
|||
Loading…
Reference in New Issue