diff --git a/ExtraMachines.js b/ExtraMachines.js deleted file mode 100644 index 20137987..00000000 --- a/ExtraMachines.js +++ /dev/null @@ -1,1232 +0,0 @@ -// this is a epic mod - -let heatSen = 0; -elements.heatSensor = { - - color: "#ff0000", - conduct: 1, - category:"test", - behavior: behaviors.WALL, - - onSelect: function(pixel){ - setTemp = parseInt(prompt("Enter the temperature you want it to sense. zero will not work", (heatSen || undefined))); - - }, - - - tick: function(pixel) { - if((pixel.start == pixelTicks) && !(heatSen == 0)){ - pixel.clone.temp = heatSen - } - - if (pixel.temp > pixel.clone ) { - pixel.charge = 1; - } - - - }, - -}; - -let itemA = "steam"; -elements.SteamTurbine = { - behavior: behaviors.WALL, - desc: "When steam touches it, it conducts electricity and the steam pixel is deleted", - color: "#826c6e", - tick: function(pixel) { - if(pixel.start == pixelTicks){ - pixel.clone = itemA; - } - - for (var i = 0; i < adjacentCoords.length; i++) { - var coords = adjacentCoords[i]; - var x = pixel.x + coords[0]; - var y = pixel.y + coords[1]; - if (!isEmpty(x,y,true)) { - var sensed = pixelMap[x][y]; - if (sensed.element == pixel.clone) { - deletePixel(x,y); - pixel.charge = 5; - break; - } - } - } - doDefaults(pixel); - }, - conduct: 1, - movable: false, - category:"machines", - darkText: true, - hardness: 1, - - }; - - -elements.coal = { - desc: "A black powder that burns", - color: "#3d3c39", - behavior: behaviors.POWDER, - category: "energy", - state: "solid", - density: 208, - conduct: 0.001, - - tick: function(pixel) { - if (pixel.temp > 900 && !pixel.burning) { - pixel.burning = true; - pixel.burnStart = pixelTicks; - } - }, - - tempHigh:2500, - stateHigh: "fire", - hardness: 0.85, - burn: 100, - burnTime: 3500, -}; - - - elements.coal_dust = { - desc: "A byproduct of smashed solid coal that burns like coal but for a shorter time", - color: "#3d3c39", - behavior: behaviors.POWDER, - category: "powders", - state: "solid", - stain: 1, - density: 190, - conduct: 0.001, - - tick: function(pixel) { - if (pixel.temp > 900 && !pixel.burning) { - pixel.burning = true; - pixel.burnStart = pixelTicks; - } - }, - - tempHigh:2000, - stateHigh: "fire", - hardness: 0.3, - burn: 100, - burnTime: 3500, -}; - - -elements.gasoline = { - color: "#c9c5b1", - desc: "A liquid that burns and is used to power most cars", - behavior: behaviors.LIQUID, - tick: function(pixel) { - if (pixel.temp > 430 && !pixel.burning) { - pixel.burning = true; - pixel.burnStart = pixelTicks; - } - }, - tempHigh:3000, - stateHigh: "fire", - viscosity: 0.56, - burn: 100, - burnTime: 10000, - fireColor: "#c9c5b1", - category: "liquids", - state: "liquid", - density: 792, - stain: -0.25, -} - -let itemB = "light"; -elements.solar_panel = { - behavior: behaviors.WALL, - desc: "When light touches it, it conducts electricity and the light pixel is deleted", - color: "#bebfa3", - tick: function(pixel) { - if(pixel.start == pixelTicks){ - pixel.clone = itemB; - } - - for (var i = 0; i < adjacentCoords.length; i++) { - var coords = adjacentCoords[i]; - var x = pixel.x + coords[0]; - var y = pixel.y + coords[1]; - if (!isEmpty(x,y,true)) { - var sensed = pixelMap[x][y]; - if (sensed.element == pixel.clone) { - deletePixel(x,y); - pixel.charge = 5; - break; - } - } - } - doDefaults(pixel); - }, - conduct: 1, - movable: false, - category:"machines", - darkText: true, - hardness: 1, - - }; - -elements.titanium = { - desc: "Another metal that does not erode nor conduct electricity", - conduct: 0, - color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"], - tempHigh:3000, - stateHigh: "molten_titanium", - category: "solids", - state: "soild", - hardness: 1, - density: 792, - behavior: behaviors.WALL, -}; - -elements.molten_titanium = { - desc: "Melted version of titanium", - temp : 3000, - conduct: 0, - color: "#d16e04", - tempLow:2999, - stateLow: "titanium", - category: "states", - state: "soild", - density: 792, - behavior: behaviors.MOLTEN, -}; - -elements.solid_coal = { - desc: "A solid version of coal", - color: "#3d3c39", - behavior: behaviors.WALL, - category: "energy", - state: "solid", - breakInto: "coal_dust", - density: 380, - conduct: 0.001, - - tick: function(pixel) { - if (pixel.temp > 900 && !pixel.burning) { - pixel.burning = true; - pixel.burnStart = pixelTicks; - } - }, - - tempHigh:3000, - stateHigh: "fire", - hardness: 0.85, - burn: 100, - burnTime: 3500, -}; - -elements.rubber = { - desc: "Not finnished", - color: "#ffc0cb", - hardness: 0.5, - tempHigh:180, - state: "solid", - behavior: behaviors.WALL, - conduct: 0, - category: "solids", -}; - -elements.coolant = { - desc: "Cools down pixels that touch it and is a liquid", - color: "#71ded3", - state: "liquid", - insulate: true, - behavior: behaviors.LIQUID, - tick: function(pixel) { - - - for (var i = 0; i < adjacentCoords.length; i++) { - var coords = adjacentCoords[i]; - var x = pixel.x + coords[0]; - var y = pixel.y + coords[1]; - if (!isEmpty(x,y,true)) { - var sensed = pixelMap[x][y]; - if (sensed.element && sensed.temp > 21 ) { - - sensed.temp -= 1; - break; - } - } - } - doDefaults(pixel); - }, - conduct: 0.5, - category: "test", - -}; - -elements.e_cooler = { - desc: "Works like the cooler but needs power to work", - color: elements.cooler.color, - hardness: 0.5, - state: "solid", - behavior: behaviors.WALL, - conduct: 1, - category: "machines", - behaviorOn: [ - "XX|CO:2|XX", - "CO:2|XX|CO:2", - "XX|CO:2|XX", - ], - name: "E-Cooler", -}; - -elements.e_Freezer = { - desc: "Works like the freezer but needs power to work", - color: elements.cooler.color, - hardness: 0.5, - state: "solid", - behavior: behaviors.WALL, - conduct: 1, - category: "machines", - behaviorOn: [ - "XX|CO:10|XX", - "CO:10|XX|CO:10", - "XX|CO:10|XX", - ], - name: "E-Freezer", -}; - -elements.e_heater = { - desc: "Works like the heater but needs power to work", - hardness: 0.5, - state: "solid", - behavior: behaviors.WALL, - conduct: 1, - category: "machines", - color: "#881111", - behaviorOn: [ - "XX|HT:4|XX", - "HT:4|XX|HT:4", - "XX|HT:4|XX", - ], - name: "E-Heater", -}; - -elements.e_SuperHeater = { - desc: "Works like the Super Heater but needs power to work", - hardness: 0.5, - state: "solid", - behavior: behaviors.WALL, - conduct: 1, - category: "machines", - color: "#881111", - behaviorOn: [ - "XX|HT:12|XX", - "HT:12|XX|HT:12", - "XX|HT:12|XX", - ], - name: "E-SuperHeater", -}; - -elements.slow_Ecloner = { - desc: "Works like the Slow Cloner but needs power to work", - color: "#888800", - behavior: behaviors.WALL, - behaviorOn: [ - "XX|CF%10|XX", - "CF%10|XX|CF%10", - "XX|CF%10|XX", - ], - ignore: ["cloner","ecloner","clone_powder","floating_cloner","wall","ewall","SteamTurbine","solar_panel"], - category:"machines", - insulate:true, - hardness: 1, - conduct: 1, - name: "E-SlowCloner", -}; - -elements.Android = { - desc: "A robot", - color: "#a1ada5", - category: "life", - color: ["#f3e7db","#f7ead0","#eadaba","#d7bd96","#a07e56","#825c43","#604134","#3a312a"], - category: "life", - properties: { - dead: false, - dir: 1, - panic: 0 - }, - tick: function(pixel) { - if (isEmpty(pixel.x, pixel.y+1)) { - createPixel("AndroidBody", pixel.x, pixel.y+1); - pixel.element = "AndroidHead"; - } - else if (isEmpty(pixel.x, pixel.y-1)) { - createPixel("AndroidHead", pixel.x, pixel.y-1); - pixelMap[pixel.x][pixel.y-1].color = pixel.color; - pixel.element = "AndroidBody"; - pixel.color = pixelColorPick(pixel) - } - else { - deletePixel(pixel.x, pixel.y); - } - }, - related: ["AndroidBody","AndroidHead"], - cooldown: defaultCooldown -}; - - -elements.AndroidBody = { - color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"], - category: "life", - breakInto: ["oil","metal_scrap","explosion"], - properties: { - dead: false, - dir: 1, - panic: 0 - }, - tick: function(pixel) { - if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall - if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down - var headpixel = pixelMap[pixel.x][pixel.y-2]; - if (headpixel.element == "AndroidHead") { - if (isEmpty(pixel.x, pixel.y-1)) { - movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1); - } - else { - swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]); - } - } - } - } - doHeat(pixel); - doBurning(pixel); - doElectricity(pixel); - if (pixel.dead) { - // Turn into rotten_meat if pixelTicks-dead > 500 - if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) { - changePixel(pixel,"rotten_meat"); - } - return - } - - // Find the head - if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "AndroidHead") { - var head = pixelMap[pixel.x][pixel.y-1]; - if (head.dead) { // If head is dead, kill body - pixel.dead = head.dead; - } - } - else { var head = null } - if (pixel.burning) { - pixel.panic += 0.1; - if (head && pixelTicks-pixel.burnStart > 240) { - pixel.color = head.color; - } - } - else if (pixel.panic > 0) { - pixel.panic -= 0.1; - } - - if (isEmpty(pixel.x, pixel.y-1)) { - // create blood if decapitated 10% chance - if (Math.random() < 0.1 && !pixel.charge) { - createPixel("oil", pixel.x, pixel.y-1); - // set dead to true 15% chance - if (Math.random() < 0.15) { - pixel.dead = pixelTicks; - } - } - } - else if (head == null) { return } - else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance - var movesToTry = [ - [1*pixel.dir,0], - [1*pixel.dir,-1], - ]; - // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break. - while (movesToTry.length > 0) { - var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0]; - if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) { - var origx = pixel.x+move[0]; - var origy = pixel.y+move[1]; - if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) { - movePixel(head, head.x+move[0], head.y+move[1]); - break; - } - } - } - // 15% chance to change direction - if (Math.random() < 0.15) { - pixel.dir *= -1; - } - // homeostasis - if (pixel.temp > 37) { pixel.temp -= 1; } - else if (pixel.temp < 37) { pixel.temp += 1; } - } - - } -}; - -elements.AndroidHead = { - color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"], - category: "life", - density: 1080, - state: "solid", - conduct: .05, - temp: 69, - breakInto: ["oil","metal_scrap","explosion"], -}; - -listPipes = "pipe" - - -//thx to morechem.js for the idea - -let setTemp = ""; -elements.ajustableHeater = { - desc: "Works like a heater but it can be set to a specific temp and needs power to work", - color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"], - category: "machines", - density: 1080, - state: "solid", - conduct: 1, - movable: false, - name: "Ajustable-E-Heater", - onSelect: function(pixel){ - setTemp = parseInt(prompt("Enter the temperature you want it set to.", (setTemp || undefined))); - - }, - tick: function(pixel) { - for (var i = 0; i < adjacentCoords.length; i++) { - var coords = adjacentCoords[i]; - var x = pixel.x + coords[0]; - var y = pixel.y + coords[1]; - if (!isEmpty(x,y,true)) { - var sensed = pixelMap[x][y]; - if (sensed.con || elements[sensed.element].movable && pixel.charge > 0) { - sensed.temp += setTemp/6; - - break; - } - } - } - doDefaults(pixel); - }, - insulate:true -}; - -//old grinder -// elements.grinder = { - // color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"], - // category: "machines", - // density: 1080, - // state: "solid", - // conduct: 1, - // movable: false, - - // ignore: "grinder", - - // tick: function(pixel) { - // for (var i = 0; i < adjacentCoords.length; i++) { - // var coords = adjacentCoords[i]; - // var x = pixel.x + coords[0]; - // var y = pixel.y + coords[1]; - // if (!isEmpty(x,y,true)) { - // var sensed = pixelMap[x][y]; - // if (sensed.con || elements[sensed.element].movable && pixel.charge > 0) { - // breakPixel(sensed); - // } - // } - // } - // doDefaults(pixel); - // }, - // insulate:true - - - -// }; - - - -elements.dead_plant.conduct = 1; -// let compact = "dead_plant"; -// elements.compacter = { - // behavior: behaviors.WALL, - // color: "#bebfa3", - // tick: function(pixel) { - // if(pixel.start == pixelTicks){ - // pixel.clone = compact; - // } - - - // for (var i = 0; i < adjacentCoords.length; i++) { - // var coords = adjacentCoords[i]; - // var x = pixel.x + coords[0]; - // var y = pixel.y + coords[1]; - // if (!isEmpty(x,y,true)) { - // var sensed = pixelMap[x][y]; - // if (sensed.element == pixel.clone && pixel.charge > 0) { - // sensed.element = "coal" - // sensed.color = elements.coal.color - // break; - // } - // } - // } - // doDefaults(pixel); - // }, - // conduct: 1, - // movable: false, - // category:"machines", - // darkText: true, - // hardness: 1, -// } -compactPi = "dead_plant"; -compactPi2 = "coal"; -elements.compacter = { - color: "#4e524f", - desc: "Turns dead plants into coal and needs power", - tick: function(pixel) { - if (pixel.start === pixelTicks) { - pixel.CompactEl = compactPi - pixel.CompactEl2 = compactPi2 - } - if (1 === 2) { - 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)) { -// createPixel("brick",x,y); -// pixelMap[x][y].color = pixelColorPick(pixel,"#808080"); - } - } - // pixel.stage = 1; - } - else if (1 === 2) { //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 (1 === 1) { //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) { //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 ) { //suck up pixel - if ((newPixel.element == pixel.CompactEl) || (newPixel.element == pixel.CompactEl2) && pixel.charge > 0 ) { - - pixel.con = newPixel; - changePixel(newPixel, "coal") - newPixel.color = elements.coal.color - 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.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, - noMix: true, - insulate: true, -} - -// thx to nousersthings mod for the filter -// only adding this bc my freind told me so -// im not good at javascript and coding so yeah - -filterTypeVar = 0; -elements.filter = { - color: "#599fc2", - desc: "A filter made by nouser", - onSelect: function() { - var answer4 = prompt("Please input the desired element of this filter. It is case senstive.",(filterTypeVar||undefined)); - if (!answer4) { return } - filterTypeVar = answer4; - }, - tick: function(pixel) { - if (pixel.start === pixelTicks) { - pixel.filterType = filterTypeVar - } - if (1 === 2) { - 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)) { -// createPixel("brick",x,y); -// pixelMap[x][y].color = pixelColorPick(pixel,"#808080"); - } - } - // pixel.stage = 1; - } - else if (1 === 2) { //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 (1 === 1) { //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) { //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 ) { //suck up pixel - if (newPixel.element == pixel.filterType ) { - - 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.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, - noMix: true, - insulate: true, -} - -filterTypeVar2 = 0; -elements.Destructive_Filter = { - color: "#3c6c85", - desc: "A filter that destroys anything that isn't allowed to get through", - onSelect: function() { - var answer4 = prompt("Please input the desired element of this filter. It is case senstive.",(filterTypeVar||undefined)); - if (!answer4) { return } - filterTypeVar2 = answer4; - }, - tick: function(pixel) { - if (pixel.start === pixelTicks) { - pixel.filterType = filterTypeVar2 - } - if (1 === 2) { - 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)) { -// createPixel("brick",x,y); -// pixelMap[x][y].color = pixelColorPick(pixel,"#808080"); - } - } - // pixel.stage = 1; - } - else if (1 === 2) { //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 (1 === 1) { //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) { //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 ) { //suck up pixel - if (newPixel.element == pixel.filterType) { - - pixel.con = newPixel; - - deletePixel(newPixel.x,newPixel.y); - pixel.con.x = pixel.x; - pixel.con.y = pixel.y; - pixel.con.del; - moved = true; - break; - } - else if(!(newPixel.element == "filter") && !(newPixel.element == "Destructive_Filter") && !doNotEF.includes(newPixel.element) ) { - deletePixel(newPixel.x, newPixel.y); - 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.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, - noMix: true, - insulate: true, -} - - - -// going to fix the sucking up solids problem soon!! -doNotEF = ["e_grinder","grinder","filter", "battery", "wire", "cloner", "sensor", "heater","cooler", "Ajustable-E-Heater", "E-Cooler", "E-Freezer", "E-Heater", "E-SuperHeater", "E-SlowCloner", "ewall", "titanium", "tungsten", "steel", "insulation","SteamTurbine","solar_panel"]; - -elements.grinder = { - color: "#55565c", - ignore: ["e_grinder","grinder"], - desc: "Grinds things", - tick: function(pixel) { - - if (1 === 2) { - 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)) { -// createPixel("brick",x,y); -// pixelMap[x][y].color = pixelColorPick(pixel,"#808080"); - } - } - // pixel.stage = 1; - } - else if (1 === 2) { //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 (1 === 1) { //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) { //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 && !doNotEF.includes(newPixel.element) ) { //suck up pixel - // (!pixel.con && !(newPixel.element === "e_grinder") && pixel.charge > 0 && !(newPixel.element.movable)) - // (!pixel.con && !(newPixel.element === "grinder") && !(newPixel.element === "e_grinder") && !(newPixel.element === "filter") && (newPixel.element.movable)) - //!(newPixel.element === "grinder") && !(newPixel.element === "e_grinder") - pixel.con = newPixel; - breakPixel(pixel.con); - 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.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, - noMix: true, - insulate: true, -} - -//elements.battery.movable: false - -elements.e_grinder = { - color: "#55565c", - ignore: ["e_grinder","grinder"], - conduct: 1, - desc: "Grinds things,needs power to work", - tick: function(pixel) { - - if (1 === 2) { - 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)) { -// createPixel("brick",x,y); -// pixelMap[x][y].color = pixelColorPick(pixel,"#808080"); - } - } - // pixel.stage = 1; - } - else if (1 === 2) { //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 (1 === 1) { //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) { //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 && !doNotEF.includes(newPixel.element) && pixel.charge > 0 ) { //suck up pixel - - - pixel.con = newPixel; - breakPixel(pixel.con); - 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.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, - noMix: true, - insulate: true, -} - - - -// elements.cementMix = { - -// }