From 94c5f411c7956086e821389a96b993dd3d7132f5 Mon Sep 17 00:00:00 2001 From: Lily-129 <68935009+Lily-129@users.noreply.github.com> Date: Fri, 28 Jan 2022 10:26:40 -0500 Subject: [PATCH] added void_first It's like the cloner but with deleting things. --- mods/randomness_but_tick.js | 186 ++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) diff --git a/mods/randomness_but_tick.js b/mods/randomness_but_tick.js index a8e7465f..96dff7d3 100644 --- a/mods/randomness_but_tick.js +++ b/mods/randomness_but_tick.js @@ -431,3 +431,189 @@ elements.troll_powder = { state: "solid", density: 1602, } + +elements.void_first = { + color: "#262626", + tick: function(pixel) { + //store 4 touching pixels in variables if the variables don't exist + if(!outOfBounds(pixel.x,pixel.y-1) && !isEmpty(pixel.x,pixel.y-1)) { + if(!pixel.dc1 && pixelMap[pixel.x][pixel.y-1].element != pixel.element) { + pixel.dc1 = pixelMap[pixel.x][pixel.y-1].element + } + } + if(!outOfBounds(pixel.x+1,pixel.y) && !isEmpty(pixel.x+1,pixel.y)) { + if(!pixel.dc2 && pixelMap[pixel.x+1][pixel.y].element != pixel.element) { + pixel.dc2 = pixelMap[pixel.x+1][pixel.y].element + } + } + if(!outOfBounds(pixel.x,pixel.y+1) && !isEmpty(pixel.x,pixel.y+1)) { + if(!pixel.dc3 && pixelMap[pixel.x][pixel.y+1].element != pixel.element) { + pixel.dc3 = pixelMap[pixel.x][pixel.y+1].element + } + } + if(!outOfBounds(pixel.x-1,pixel.y) && !isEmpty(pixel.x-1,pixel.y)) { + if(!pixel.dc3 && pixelMap[pixel.x-1][pixel.y].element != pixel.element) { + pixel.dc4 = pixelMap[pixel.x-1][pixel.y].element + } + } + //choose from 1 + if(pixel.dc1 && !pixel.dc2 && !pixel.dc3 && !pixel.dc4) { + if(!pixel.delete) { + pixel.delete = pixel.dc1 + } + } + if(!pixel.dc1 && pixel.dc2 && !pixel.dc3 && !pixel.dc4) { + if(!pixel.delete) { + pixel.delete = pixel.dc2 + } + } + if(!pixel.dc1 && !pixel.dc2 && pixel.dc3 && !pixel.dc4) { + if(!pixel.delete) { + pixel.delete = pixel.dc3 + } + } + if(!pixel.dc1 && !pixel.dc2 && !pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + pixel.delete = pixel.dc4 + } + } + ggg = Math.random() + hhh = Math.random() + iii = Math.random() + //choose from 2 + //1100 and 0011 + if(pixel.dc1 && pixel.dc2 && !pixel.dc3 && !pixel.dc4) { + if(!pixel.delete) { + if(ggg < 1/2) { + pixel.delete = pixel.dc1 + } else { + pixel.delete = pixel.dc2 + } + } + } + if(!pixel.dc1 && !pixel.dc2 && pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + if(ggg < 1/2) { + pixel.delete = pixel.dc3 + } else { + pixel.delete = pixel.dc4 + } + } + } + //1010 and 0101 + if(pixel.dc1 && !pixel.dc2 && pixel.dc3 && !pixel.dc4) { + if(!pixel.delete) { + if(ggg < 1/2) { + pixel.delete = pixel.dc1 + } else { + pixel.delete = pixel.dc3 + } + } + } + if(!pixel.dc1 && pixel.dc2 && !pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + if(ggg < 1/2) { + pixel.delete = pixel.dc2 + } else { + pixel.delete = pixel.dc4 + } + } + } + //0110 and 1001 + if(!pixel.dc1 && pixel.dc2 && pixel.dc3 && !pixel.dc4) { + if(!pixel.delete) { + if(ggg < 1/2) { + pixel.delete = pixel.dc2 + } else { + pixel.delete = pixel.dc3 + } + } + } + if(pixel.dc1 && !pixel.dc2 && !pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + if(ggg < 1/2) { + pixel.delete = pixel.dc1 + } else { + pixel.delete = pixel.dc4 + } + } + } + //choose from 3 + //0111 + if(!pixel.dc1 && pixel.dc2 && pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + if(hhh < 1/3) { + pixel.delete = pixel.dc2 + } else if(hhh < 2/3) { + pixel.delete = pixel.dc3 + } else { + pixel.delete = pixel.dc4 + } + } + } + //1011 + if(pixel.dc1 && !pixel.dc2 && pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + if(hhh < 1/3) { + pixel.delete = pixel.dc1 + } else if(hhh < 2/3) { + pixel.delete = pixel.dc3 + } else { + pixel.delete = pixel.dc4 + } + } + } + //1101 + if(pixel.dc1 && pixel.dc2 && !pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + if(hhh < 1/3) { + pixel.delete = pixel.dc1 + } else if(hhh < 2/3) { + pixel.delete = pixel.dc2 + } else { + pixel.delete = pixel.dc4 + } + } + } + //1110 + if(pixel.dc1 && pixel.dc2 && pixel.dc3 && !pixel.dc4) { + if(!pixel.delete) { + if(hhh < 1/3) { + pixel.delete = pixel.dc1 + } else if(hhh < 2/3) { + pixel.delete = pixel.dc2 + } else { + pixel.delete = pixel.dc3 + } + } + } + //choose from 4 + //1111 + if(pixel.dc1 && pixel.dc2 && pixel.dc3 && pixel.dc4) { + if(!pixel.delete) { + if(iii < 1/4) { + pixel.delete = pixel.dc1 + } else if(iii < 2/4) { + pixel.delete = pixel.dc2 + } else if(iii < 3/4) { + pixel.delete = pixel.dc3 + } else { + pixel.delete = pixel.dc4 + } + } + } + for (let i = -1; i < 2; i++) { + for (let j = -1; j < 2; j++) { + if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { + if(pixel.delete) { + if(pixelMap[pixel.x+j][pixel.y+i].element == pixel.delete) { + deletePixel(pixel.x+j,pixel.y+i) + } + } + } + } + } + }, + category:"special", + hardness: 1, +}