From 84c1bc8e81d73e8051e11e134582954e9e50a4cf Mon Sep 17 00:00:00 2001 From: Lily-129 <68935009+Lily-129@users.noreply.github.com> Date: Fri, 28 Jan 2022 23:57:47 -0500 Subject: [PATCH] nested structure test --- mods/structure_test_2.js | 139 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 mods/structure_test_2.js diff --git a/mods/structure_test_2.js b/mods/structure_test_2.js new file mode 100644 index 00000000..36d67ce4 --- /dev/null +++ b/mods/structure_test_2.js @@ -0,0 +1,139 @@ +elements.nst = { + name: "Nested Structure Test", + 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", +}, + +elements.st = { + name: "test6", + 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", +} \ No newline at end of file