Update nousersthings.js
This commit is contained in:
parent
2571d2df9a
commit
376f414ebe
|
|
@ -132,7 +132,7 @@ elements.destroyable_pipe = {
|
||||||
var coord = squareCoords[i];
|
var coord = squareCoords[i];
|
||||||
var x = pixel.x+coord[0];
|
var x = pixel.x+coord[0];
|
||||||
var y = pixel.y+coord[1];
|
var y = pixel.y+coord[1];
|
||||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "destroyable_pipe") {
|
if (!isEmpty(x,y,true) && (pixelMap[x][y].element === "destroyable_pipe" || pixelMap[x][y].element === "bridge_pipe")) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (newPixel.stage === 1) {
|
if (newPixel.stage === 1) {
|
||||||
var newColor;
|
var newColor;
|
||||||
|
|
@ -153,7 +153,7 @@ elements.destroyable_pipe = {
|
||||||
var y = pixel.y+coord[1];
|
var y = pixel.y+coord[1];
|
||||||
if (!isEmpty(x,y,true)) {
|
if (!isEmpty(x,y,true)) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (newPixel.element === "destroyable_pipe") {
|
if (newPixel.element === "destroyable_pipe" || newPixel.element === "bridge_pipe") {
|
||||||
var nextStage;
|
var nextStage;
|
||||||
switch (pixel.stage) {
|
switch (pixel.stage) {
|
||||||
case 2: nextStage = 4; break; //green
|
case 2: nextStage = 4; break; //green
|
||||||
|
|
@ -194,7 +194,7 @@ elements.destroyable_pipe = {
|
||||||
pixel.con = null;
|
pixel.con = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "destroyable_pipe") {
|
if (!isEmpty(x,y,true) && (pixelMap[x][y].element === "destroyable_pipe" || pixelMap[x][y].element === "bridge_pipe")) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
|
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
|
||||||
newPixel.con = pixel.con;
|
newPixel.con = pixel.con;
|
||||||
|
|
@ -435,7 +435,7 @@ elements.e_pipe = {
|
||||||
var coord = squareCoords[i];
|
var coord = squareCoords[i];
|
||||||
var x = pixel.x+coord[0];
|
var x = pixel.x+coord[0];
|
||||||
var y = pixel.y+coord[1];
|
var y = pixel.y+coord[1];
|
||||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "e_pipe") {
|
if (!isEmpty(x,y,true) && (pixelMap[x][y].element === "e_pipe" || pixelMap[x][y].element === "bridge_pipe")) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (newPixel.stage === 1) {
|
if (newPixel.stage === 1) {
|
||||||
var newColor;
|
var newColor;
|
||||||
|
|
@ -456,7 +456,7 @@ elements.e_pipe = {
|
||||||
var y = pixel.y+coord[1];
|
var y = pixel.y+coord[1];
|
||||||
if (!isEmpty(x,y,true)) {
|
if (!isEmpty(x,y,true)) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (newPixel.element === "e_pipe") {
|
if (newPixel.element === "e_pipe" || newPixel.element === "bridge_pipe") {
|
||||||
var nextStage;
|
var nextStage;
|
||||||
switch (pixel.stage) {
|
switch (pixel.stage) {
|
||||||
case 2: nextStage = 4; break; //green
|
case 2: nextStage = 4; break; //green
|
||||||
|
|
@ -497,7 +497,7 @@ elements.e_pipe = {
|
||||||
pixel.con = null;
|
pixel.con = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "e_pipe") {
|
if (!isEmpty(x,y,true) && (pixelMap[x][y].element === "e_pipe" || pixelMap[x][y].element === "bridge_pipe")) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
|
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
|
||||||
newPixel.con = pixel.con;
|
newPixel.con = pixel.con;
|
||||||
|
|
@ -552,7 +552,7 @@ elements.destroyable_e_pipe = {
|
||||||
var coord = squareCoords[i];
|
var coord = squareCoords[i];
|
||||||
var x = pixel.x+coord[0];
|
var x = pixel.x+coord[0];
|
||||||
var y = pixel.y+coord[1];
|
var y = pixel.y+coord[1];
|
||||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "destroyable_e_pipe") {
|
if (!isEmpty(x,y,true) && (pixelMap[x][y].element === "destroyable_e_pipe" || pixelMap[x][y].element === "bridge_pipe")) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (newPixel.stage === 1) {
|
if (newPixel.stage === 1) {
|
||||||
var newColor;
|
var newColor;
|
||||||
|
|
@ -573,7 +573,7 @@ elements.destroyable_e_pipe = {
|
||||||
var y = pixel.y+coord[1];
|
var y = pixel.y+coord[1];
|
||||||
if (!isEmpty(x,y,true)) {
|
if (!isEmpty(x,y,true)) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (newPixel.element === "destroyable_e_pipe") {
|
if (newPixel.element === "destroyable_e_pipe" || newPixel.element === "bridge_pipe") {
|
||||||
var nextStage;
|
var nextStage;
|
||||||
switch (pixel.stage) {
|
switch (pixel.stage) {
|
||||||
case 2: nextStage = 4; break; //green
|
case 2: nextStage = 4; break; //green
|
||||||
|
|
@ -614,7 +614,7 @@ elements.destroyable_e_pipe = {
|
||||||
pixel.con = null;
|
pixel.con = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "destroyable_e_pipe") {
|
if (!isEmpty(x,y,true) && (pixelMap[x][y].element === "destroyable_e_pipe" || pixelMap[x][y].element === "bridge_pipe")) {
|
||||||
var newPixel = pixelMap[x][y];
|
var newPixel = pixelMap[x][y];
|
||||||
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
|
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
|
||||||
newPixel.con = pixel.con;
|
newPixel.con = pixel.con;
|
||||||
|
|
@ -636,4 +636,473 @@ elements.destroyable_e_pipe = {
|
||||||
tempHigh: 1538,
|
tempHigh: 1538,
|
||||||
stateHigh: "molten_iron",
|
stateHigh: "molten_iron",
|
||||||
breakInto: ["metal_scrap", "wire"]
|
breakInto: ["metal_scrap", "wire"]
|
||||||
}
|
},
|
||||||
|
currentChannel = 0;
|
||||||
|
elements.channel_pipe = {
|
||||||
|
color: "#414c4f",
|
||||||
|
onSelect: function() {
|
||||||
|
var answer3 = prompt("Please input the desired channel of this pipe strand. Warning: It wont work if you do multiple strand types while paused.",(currentChannel||undefined));
|
||||||
|
if (!answer3) { return }
|
||||||
|
currentChannel = answer3;
|
||||||
|
logMessage("Draw a pipe, wait for walls to appear, then erase the exit hole. Use the prop tool to set channel to a number before erasing the holes.");
|
||||||
|
},
|
||||||
|
tick: function(pixel) {
|
||||||
|
if (pixel.start===pixelTicks){
|
||||||
|
pixel.channel = currentChannel;
|
||||||
|
}
|
||||||
|
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 === "channel_pipe" && pixelMap[x][y].channel == pixel.channel) || pixelMap[x][y].element === "bridge_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 === "channel_pipe" && pixelMap[x][y].channel == pixel.channel || newPixel.element === "bridge_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 === "channel_pipe" && pixelMap[x][y].channel == pixel.channel) || pixelMap[x][y].element === "bridge_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,
|
||||||
|
},
|
||||||
|
elements.destroyable_channel_pipe = {
|
||||||
|
color: "#414c4f",
|
||||||
|
onSelect: function() {
|
||||||
|
var answer3 = prompt("Please input the desired channel of this pipe strand. Warning: It wont work if you do multiple strand types while paused.",(currentChannel||undefined));
|
||||||
|
if (!answer3) { return }
|
||||||
|
currentChannel = answer3;
|
||||||
|
logMessage("Draw a pipe, wait for walls to appear, then erase the exit hole. Use the prop tool to set channel to a number before erasing the holes.");
|
||||||
|
},
|
||||||
|
tick: function(pixel) {
|
||||||
|
if (pixel.start === pixelTicks){
|
||||||
|
pixel.channel = currentChannel;
|
||||||
|
}
|
||||||
|
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_channel_pipe" && pixelMap[x][y].channel == pixel.channel || pixelMap[x][y].element === "bridge_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_channel_pipe" && pixelMap[x][y].channel == pixel.channel) || newPixel.element === "bridge_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_channel_pipe" && pixelMap[x][y].channel == pixel.channel) || pixelMap[x][y].element === "bridge_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,
|
||||||
|
},
|
||||||
|
listPipes = ["pipe", "destroyable_pipe", "destroyable_e_pipe","channel_pipe","destroyable_channel_pipe","bridge_pipe"];
|
||||||
|
elements.bridge_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) && listPipes.includes(pixelMap[x][y].element)) {
|
||||||
|
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 (listPipes.includes(newPixel.element)) {
|
||||||
|
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) && listPipes.includes(pixelMap[x][y].element)) {
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
elements.pipe.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 === "pipe" || pixelMap[x][y].element === "bridge_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 === "pipe" || newPixel.element === "bridge_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 === "pipe" || pixelMap[x][y].element === "bridge_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);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue