From e3da09dceb47c12a05ed5706a89c5c2676b1021c Mon Sep 17 00:00:00 2001 From: O-01-67 <68935009+O-01-67@users.noreply.github.com> Date: Thu, 15 Sep 2022 13:14:47 -0400 Subject: [PATCH] merge structure_test_2 --- mods/structure_test.js | 144 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 143 insertions(+), 1 deletion(-) diff --git a/mods/structure_test.js b/mods/structure_test.js index 90cdf384..46214e6e 100644 --- a/mods/structure_test.js +++ b/mods/structure_test.js @@ -56,4 +56,146 @@ elements.room = { insulate: true, state: "solid", excludeRandom: true, -} +}; + +elements.altroom = { + name: "Altered Room", + color: "#ffffff", + arr: [], + tick: function(pixel) { + pixel.arr=[["brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick"], + ["brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "battery","brick", "brick", "brick", "brick", "brick"], + ["glass", "glass", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "light","light_bulb","air", "air", "air", "glass", "glass"], + ["glass", "glass", "light", "light", "air", "air", "air", "air", "air", "air", "air", "air", "air", "light", "air", "air", "air", "glass", "glass"], + ["brass", "wood", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "brass"], + ["wood", "wood", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "wood" ], + ["wood", "wood", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "wood" ], + ["wood", "wood", "air", "air", "iron", "straw", "straw", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "wood" ], + ["wood", "wood", "air", "air", "iron", "straw", "straw", "straw", "straw", "straw", "straw", "straw", "iron", "air", "air", "air", "air", "wood", "wood" ], + ["brass", "wood", "air", "air", "iron", "straw", "straw", "straw", "straw", "straw", "straw", "straw", "iron", "light", "air", "air", "air", "wood", "brass"], + ["brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick"], + ["brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "brick", "battery", "brick", "brick", "brick", "brick", "brick"]] + + aa = (0 - (Math.floor(pixel.arr[0].length / 2))) + na = Math.abs(aa) + if(pixel.arr[0].length % 2 == 1) { + bb = ((Math.floor(pixel.arr[0].length / 2)) + 1) + } else if(pixel.arr[0].length % 2 == 0) { + bb = (Math.floor(pixel.arr[0].length / 2)) + } + + cc = (0 - (Math.floor(pixel.arr.length / 2))) + nc = Math.abs(cc) + if(pixel.arr.length % 2 == 1) { + dd = ((Math.floor(pixel.arr.length / 2)) + 1) + } else if(pixel.arr.length % 2 == 0) { + dd = (Math.floor(pixel.arr.length / 2)) + } + for (let j = cc; j < dd; j++) { + for (let i = aa; i < bb; i++) { + if(!isEmpty(pixel.x+i,pixel.y+j) && !outOfBounds(pixel.x+i,pixel.y+j)) { + if(pixel.arr[j+nc][i+na] != "air" || pixel.arr[j+nc][i+na] == "air") { + deletePixel(pixel.x+i,pixel.y+j) + } + } + if(pixel.arr[j+nc][i+na]) { + if(isEmpty(pixel.x+i,pixel.y+j) && pixel.arr[j+nc][i+na] != "air" && pixel.arr[j+nc][i+na] != "air" && !outOfBounds(pixel.x+i,pixel.y+j)) { + createPixel(pixel.arr[j+nc][i+na],pixel.x+i,pixel.y+j) + } + } + } + } + }, + category:"structures", + insulate: true, + state: "solid", + excludeRandom: true, +}, + +elements.nst = { + name: "Nested Structure Test", + color: "#ffffff", + arr: [], + tick: function(pixel) { + pixel.arr=[["altroom", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + ["altroom", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + ["altroom", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + ["altroom", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + ["altroom", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ], + [ "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "brick", "brick" ]] + + aa = (0 - (Math.floor(pixel.arr[0].length / 2))) + na = Math.abs(aa) + if(pixel.arr[0].length % 2 == 1) { + bb = ((Math.floor(pixel.arr[0].length / 2)) + 1) + } else if(pixel.arr[0].length % 2 == 0) { + bb = (Math.floor(pixel.arr[0].length / 2)) + } + + cc = (0 - (Math.floor(pixel.arr.length / 2))) + nc = Math.abs(cc) + if(pixel.arr.length % 2 == 1) { + dd = ((Math.floor(pixel.arr.length / 2)) + 1) + } else if(pixel.arr.length % 2 == 0) { + dd = (Math.floor(pixel.arr.length / 2)) + } + for (let j = cc; j < dd; j++) { + for (let i = aa; i < bb; i++) { + if(!isEmpty(pixel.x+i,pixel.y+j) && !outOfBounds(pixel.x+i,pixel.y+j)) { + if(pixel.arr[j+nc][i+na] != "air" || pixel.arr[j+nc][i+na] == "air") { + deletePixel(pixel.x+i,pixel.y+j) + } + } + if(pixel.arr[j+nc][i+na]) { + if(isEmpty(pixel.x+i,pixel.y+j) && pixel.arr[j+nc][i+na] != "air" && pixel.arr[j+nc][i+na] != "air" && !outOfBounds(pixel.x+i,pixel.y+j)) { + createPixel(pixel.arr[j+nc][i+na],pixel.x+i,pixel.y+j) + } + } + } + } + }, + category:"structures", + insulate: true, + state: "solid", + excludeRandom: true, +};