sandboxels/mods/structure_test.js

60 lines
3.8 KiB
JavaScript
Raw Normal View History

2022-01-28 23:10:13 -05:00
elements.room = {
name: "Room",
color: "#ffffff",
2022-01-28 23:17:28 -05:00
arr: [],
2022-01-28 23:10:13 -05:00
tick: function(pixel) {
2022-01-28 23:17:28 -05:00
pixel.arr=[["brick", "brick", "brick", "brick", "brick", "brick", "brick", "glass", "glass", "glass", "glass", "glass", "brick", "brick", "brick", "brick", "brick", "brick", "brick"],
2022-01-28 23:10:13 -05:00
["brick", "brick", "brick", "brick", "brick", "brick", "brick", "glass", "glass", "glass", "glass", "glass", "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"],
["glass", "glass", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "brass"],
["glass", "glass", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "wood" ],
["brick", "brick", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "wood" ],
2022-01-28 23:26:52 -05:00
["brick", "brick", "iron", "straw", "straw", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "air", "wood", "wood" ],
["brick", "brick", "iron", "straw", "straw", "straw", "straw", "straw", "straw", "straw", "iron", "air", "air", "air", "air", "air", "air", "wood", "wood" ],
["brick", "brick", "iron", "straw", "straw", "straw", "straw", "straw", "straw", "straw", "iron", "air", "air", "light", "air", "air", "air", "wood", "brass"],
2022-01-28 23:10:13 -05:00
["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", "brick", "brick", "brick", "brick", "brick", "brick"]]
2022-01-28 23:17:28 -05:00
/*pixel.arr = [["brick","brick","brick","brick","brick"], //(Test pixel.array)
2022-01-28 23:10:13 -05:00
["brick","air", "iron", "air", "brick"],
["brick","iron", "air", "iron", "brick"],
["brick","air", "air", "air", "brick"],
["brick","brick","brick","brick","brick"]]*/
2022-01-28 23:17:28 -05:00
aa = (0 - (Math.floor(pixel.arr[0].length / 2)))
2022-01-28 23:10:13 -05:00
na = Math.abs(aa)
2022-01-28 23:17:28 -05:00
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))
2022-01-28 23:10:13 -05:00
}
2022-01-28 23:17:28 -05:00
cc = (0 - (Math.floor(pixel.arr.length / 2)))
2022-01-28 23:10:13 -05:00
nc = Math.abs(cc)
2022-01-28 23:17:28 -05:00
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))
2022-01-28 23:10:13 -05:00
}
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)) {
2022-01-28 23:17:28 -05:00
if(pixel.arr[j+nc][i+na] != "null" || pixel.arr[j+nc][i+na] == "air") {
2022-01-28 23:10:13 -05:00
deletePixel(pixel.x+i,pixel.y+j)
}
}
2022-01-28 23:17:28 -05:00
if(pixel.arr[j+nc][i+na]) {
if(isEmpty(pixel.x+i,pixel.y+j) && pixel.arr[j+nc][i+na] != "null" && 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)
2022-01-28 23:10:13 -05:00
}
}
}
}
},
category:"structures",
insulate: true,
state: "solid",
2022-01-31 10:05:04 -05:00
excludeRandom: true,
2022-01-28 23:10:13 -05:00
}