sandboxels/mods/structure_test_2.js

142 lines
11 KiB
JavaScript
Raw Normal View History

2022-01-28 23:59:26 -05:00
elements.altroom = {
name: "Altered Room",
2022-01-28 23:57:47 -05:00
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",
2022-01-31 10:05:36 -05:00
excludeRandom: true,
2022-01-28 23:57:47 -05:00
},
2022-01-28 23:59:26 -05:00
elements.nst = {
name: "Nested Structure Test",
2022-01-28 23:57:47 -05:00
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",
2022-01-31 10:05:36 -05:00
excludeRandom: true,
2022-01-28 23:59:26 -05:00
}