Update citybuilding.js

This commit is contained in:
SquareScreamYT 2024-03-18 20:31:11 +08:00 committed by GitHub
parent edb3d7d859
commit 6bb9f4dcc0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 44 additions and 69 deletions

View File

@ -1,3 +1,4 @@
function building_1_segment() { function building_1_segment() {
if (pixel.foundation = true && pixel.height < pixel.limit) { if (pixel.foundation = true && pixel.height < pixel.limit) {
if (isEmpty(pixel.x+1,pixel.y-pixel.height) && if (isEmpty(pixel.x+1,pixel.y-pixel.height) &&
@ -24,6 +25,25 @@ function building_1_segment() {
} }
} }
} }
function clearbase3x5() {
if (pixel.clearbase = false && pixel.height < pixel.limit) {
pixel.clearbase = true
deletePixel(pixel.x-1,pixel.y)
deletePixel(pixel.x+1,pixel.y)
deletePixel(pixel.x-2,pixel.y)
deletePixel(pixel.x+2,pixel.y)
deletePixel(pixel.x,pixel.y-1)
deletePixel(pixel.x-1,pixel.y-1)
deletePixel(pixel.x+1,pixel.y-1)
deletePixel(pixel.x-2,pixel.y-1)
deletePixel(pixel.x+2,pixel.y-1)
deletePixel(pixel.x,pixel.y-2)
deletePixel(pixel.x-1,pixel.y-2)
deletePixel(pixel.x+1,pixel.y-2)
deletePixel(pixel.x-2,pixel.y-2)
deletePixel(pixel.x+2,pixel.y-2)
}
}
function filldirt2x5() { function filldirt2x5() {
var dirtPixelElem = pixelMap[pixel.x][pixel.y+1]; var dirtPixelElem = pixelMap[pixel.x][pixel.y+1];
if (!isEmpty(pixel.x,pixel.y+1) && !outOfBounds(pixel.x,pixel.y+1)) { if (!isEmpty(pixel.x,pixel.y+1) && !outOfBounds(pixel.x,pixel.y+1)) {
@ -47,11 +67,21 @@ function filldirt2x5() {
if (isEmpty(pixel.x-2,pixel.y+2)) { if (isEmpty(pixel.x-2,pixel.y+2)) {
createPixel(dirtPixelElem,pixel.x-2,pixel.y+2); createPixel(dirtPixelElem,pixel.x-2,pixel.y+2);
} }
if (isEmpty(pixel.x+1,pixel.y+2)) {
createPixel(dirtPixelElem,pixel.x+2,pixel.y+2);
}
if (isEmpty(pixel.x-1,pixel.y+2)) {
createPixel(dirtPixelElem,pixel.x-2,pixel.y+2);
}
if (isEmpty(pixel.x,pixel.y+2)) {
createPixel(dirtPixelElem,pixel.x-2,pixel.y+2);
}
} }
elements.building_1 = { elements.building_1 = {
color: "#a78d38", color: "#ffc800",
tick: function(pixel) { tick: function(pixel) {
if (!isEmpty(pixel.x,pixel.y+1)) { if (!isEmpty(pixel.x,pixel.y+1)) {
clearbase3x5();
if (isEmpty(pixel.x+1,pixel.y) && if (isEmpty(pixel.x+1,pixel.y) &&
isEmpty(pixel.x-1,pixel.y) && isEmpty(pixel.x-1,pixel.y) &&
isEmpty(pixel.x+2,pixel.y) && isEmpty(pixel.x+2,pixel.y) &&
@ -73,7 +103,7 @@ elements.building_1 = {
createPixel("concrete",pixel.x+2,pixel.y+1); createPixel("concrete",pixel.x+2,pixel.y+1);
createPixel("concrete",pixel.x-2,pixel.y+1); createPixel("concrete",pixel.x-2,pixel.y+1);
createPixel("wood",pixel.x,pixel.y+1); createPixel("wood",pixel.x,pixel.y+1);
pixel.limit = 10 + Math.floor(Math.random() * 5)*2; pixel.limit = 5 + Math.floor(Math.random() * 25)*2;
createPixel("concrete",pixel.x+1,pixel.y); createPixel("concrete",pixel.x+1,pixel.y);
createPixel("concrete",pixel.x-1,pixel.y); createPixel("concrete",pixel.x-1,pixel.y);
createPixel("concrete",pixel.x+2,pixel.y); createPixel("concrete",pixel.x+2,pixel.y);
@ -93,81 +123,19 @@ elements.building_1 = {
else if (pixel.foundation == true && pixel.height >= pixel.limit) { else if (pixel.foundation == true && pixel.height >= pixel.limit) {
pixel.built = true; pixel.built = true;
} }
if (pixel.built == true) { if (pixel.built == true || pixel.age > 100) {
changePixel(pixel,"wood"); changePixel(pixel,"wood");
} }
pixel.age++
doDefaults(pixel); doDefaults(pixel);
}, },
properties: { properties: {
height:0, height:0,
limit:0, limit:0,
foundation:false, foundation:false,
built:false built:false,
}, clearbase:false,
category: "citybuilding", age:0
state: "solid",
density: 1500,
cooldown: defaultCooldown,
seed: true,
maxSize: 1,
excludeRandom: true,
behavior: behaviors.STURDYPOWDER,
};
elements.building_1_tall = {
color: "#d9c243",
tick: function(pixel) {
if (!isEmpty(pixel.x,pixel.y+1)) {
if (isEmpty(pixel.x+1,pixel.y) &&
isEmpty(pixel.x-1,pixel.y) &&
isEmpty(pixel.x+2,pixel.y) &&
isEmpty(pixel.x-2,pixel.y) &&
isEmpty(pixel.x+2,pixel.y-1) &&
isEmpty(pixel.x-2,pixel.y-1) &&
isEmpty(pixel.x+1,pixel.y-1) &&
isEmpty(pixel.x-1,pixel.y-1) &&
isEmpty(pixel.x,pixel.y-1) &&
isEmpty(pixel.x+2,pixel.y-2) &&
isEmpty(pixel.x-2,pixel.y-2) &&
isEmpty(pixel.x+1,pixel.y-2) &&
isEmpty(pixel.x-1,pixel.y-2) &&
isEmpty(pixel.x,pixel.y-2)) {
filldirt2x5();
movePixel(pixel,pixel.x,pixel.y-1);
createPixel("concrete",pixel.x+1,pixel.y+1);
createPixel("concrete",pixel.x-1,pixel.y+1);
createPixel("concrete",pixel.x+2,pixel.y+1);
createPixel("concrete",pixel.x-2,pixel.y+1);
createPixel("wood",pixel.x,pixel.y+1);
pixel.limit = 15 + Math.floor(Math.random() * 10)*2;
createPixel("concrete",pixel.x+1,pixel.y);
createPixel("concrete",pixel.x-1,pixel.y);
createPixel("concrete",pixel.x+2,pixel.y);
createPixel("concrete",pixel.x-2,pixel.y);
createPixel("concrete",pixel.x+1,pixel.y-1);
createPixel("concrete",pixel.x-1,pixel.y-1);
createPixel("concrete",pixel.x+2,pixel.y-1);
createPixel("concrete",pixel.x-2,pixel.y-1);
createPixel("concrete",pixel.x,pixel.y-1);
pixel.foundation = true;
pixel.height = pixel.height+2
}
}
if (pixel.foundation == true && pixel.height < pixel.limit) {
building_1_segment();
}
else if (pixel.foundation == true && pixel.height >= pixel.limit) {
pixel.built = true;
}
if (pixel.built == true) {
changePixel(pixel,"wood");
}
doDefaults(pixel);
},
properties: {
height:0,
limit:0,
foundation:false,
built:false
}, },
category: "citybuilding", category: "citybuilding",
state: "solid", state: "solid",
@ -203,8 +171,15 @@ elements.small_tree_1 = {
changePixel(pixel,"wood"); changePixel(pixel,"wood");
} }
} }
if (pixel.age > 50) {
changePixel(pixel,"wood");
}
pixel.age++
doDefaults(pixel); doDefaults(pixel);
}, },
properties: {
age:0
},
category: "citybuilding", category: "citybuilding",
state: "solid", state: "solid",
density: 1500, density: 1500,