Skip to content

Commit 58fa04b

Browse files
committed
Add large bee nest entrance
1 parent abd57e2 commit 58fa04b

1 file changed

Lines changed: 88 additions & 12 deletions

File tree

structures/misc/bee-nest/large_bee_nest.tesf

Lines changed: 88 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ num warp = 5;
33
num warpFreq = 2;
44
num squish = 1;
55
num radiusSquared = pow(radius,2);
6-
num yTranslate = 0;
6+
num yTranslate = -radius/2;
7+
8+
num entranceRadius = 3;
9+
num entranceStart = (radius+warp)/2;
10+
num entranceMax = radius+warp-2;
711

812
for (num x = -radius-warp; x < radius+warp; x = x + 1) {
913
for (num y = (-radius-warp)/squish; y < (radius+warp)/squish; y = y + 1) {
@@ -25,11 +29,81 @@ for (num x = -radius-warp; x < radius+warp; x = x + 1) {
2529
structure(x, y+yTranslate+radius, z, "bee_nest_block", "NONE");
2630
}
2731

28-
if (distanceSquared < (radiusSquared-(radius*3)) && y < 0) {
29-
block(x, y+yTranslate+radius, z, "minecraft:honey_block", true);
30-
}
32+
if (distanceSquared < (radiusSquared-(radius*3)) && y < -radius/3) {
33+
block(x, y+yTranslate+radius, z, "minecraft:honey_block", true);
34+
}
35+
}
36+
}
37+
}
38+
39+
// Entrance
40+
41+
num entranceRadiusSquared = pow(entranceRadius,2);
42+
43+
num dirInterval = 0.1;
44+
bool valid = false;
45+
num dir = 0;
46+
47+
for (num direction = 0; direction < 7; direction = direction + dirInterval) {
48+
for (num i = entranceStart; i < entranceMax; i = i + 1) {
49+
if (getBlock((i)*cos(direction),yTranslate,(i)*sin(direction)) == "minecraft:air") {
50+
valid = true;
51+
dir = direction;
52+
break;
53+
}
54+
}
55+
56+
if (valid) break;
57+
}
58+
59+
for (num l = entranceStart; l < entranceMax; l = l + 1) {
60+
for (num x = -entranceRadius-warp; x < entranceRadius+warp; x = x + 1) {
61+
for (num y = (-entranceRadius-warp)/squish; y < (entranceRadius+warp)/squish; y = y + 1) {
62+
for (num z = -entranceRadius-warp; z < entranceRadius+warp; z = z + 1) {
63+
num warpX = warp * sampler("simplex3",
64+
warpFreq*(x+originX()),
65+
warpFreq*(y+originY()+1000),
66+
warpFreq*(z+originZ()));
67+
num warpY = warp * sampler("simplex3",
68+
warpFreq*(x+originX()),
69+
warpFreq*(y+originY()+2000),
70+
warpFreq*(z+originZ()));
71+
num warpZ = warp * sampler("simplex3",
72+
warpFreq*(x+originX()),
73+
warpFreq*(y+originY()+3000),
74+
warpFreq*(z+originZ()));
75+
num distanceSquared = pow(x+warpX,2)+pow((y+warpY)*squish,2)+pow(z+warpZ,2);
76+
if (distanceSquared < entranceRadiusSquared) {
77+
if (getBlock(x+(cos(dir)*l), y+(entranceRadius*4)+yTranslate, z+(sin(dir)*l)) != "minecraft:honey_block") {
78+
block(x+(cos(dir)*l), y+(entranceRadius*4)+yTranslate, z+(sin(dir)*l), "minecraft:air", true);
79+
}
80+
}
81+
}
82+
}
83+
}
84+
}
85+
3186

32-
if (distanceSquared < (radiusSquared-(radius*3)) && y >= 0) {
87+
// Air Space
88+
89+
for (num x = -radius-warp; x < radius+warp; x = x + 1) {
90+
for (num y = (-radius-warp)/squish; y < (radius+warp)/squish; y = y + 1) {
91+
for (num z = -radius-warp; z < radius+warp; z = z + 1) {
92+
num warpX = warp * sampler("simplex3",
93+
warpFreq*(x+originX()),
94+
warpFreq*(y+originY()+1000),
95+
warpFreq*(z+originZ()));
96+
num warpY = warp * sampler("simplex3",
97+
warpFreq*(x+originX()),
98+
warpFreq*(y+originY()+2000),
99+
warpFreq*(z+originZ()));
100+
num warpZ = warp * sampler("simplex3",
101+
warpFreq*(x+originX()),
102+
warpFreq*(y+originY()+3000),
103+
warpFreq*(z+originZ()));
104+
num distanceSquared = pow(x+warpX,2)+pow((y+warpY)*squish,2)+pow(z+warpZ,2);
105+
106+
if (distanceSquared < (radiusSquared-(radius*3)) && y >= -radius/3) {
33107
if (getBlock(x, y+yTranslate+radius, z) != "minecraft:bee_nest") {
34108
block(x, y+yTranslate+radius, z, "minecraft:air", true);
35109
}
@@ -38,12 +112,14 @@ for (num x = -radius-warp; x < radius+warp; x = x + 1) {
38112
}
39113
}
40114

41-
structure(3-randomInt(7), 15, 3-randomInt(7), "honey_comb", "NONE");
42-
structure(3-randomInt(7), 15, 3-randomInt(7), "honey_comb", "NONE");
43-
structure(3-randomInt(7), 15, 3-randomInt(7), "honey_comb", "NONE");
44-
structure(3-randomInt(7), 15, 3-randomInt(7), "honey_comb", "NONE");
45-
structure(3-randomInt(7), 15, 3-randomInt(7), "honey_comb", "NONE");
46-
structure(3-randomInt(7), 15, 3-randomInt(7), "honey_comb", "NONE");
47-
structure(3-randomInt(7), 15, 3-randomInt(7), "honey_comb", "NONE");
115+
// Honey Combs
116+
117+
structure(3-randomInt(7), 0, 3-randomInt(7), "honey_comb", "NONE");
118+
structure(3-randomInt(7), 0, 3-randomInt(7), "honey_comb", "NONE");
119+
structure(3-randomInt(7), 0, 3-randomInt(7), "honey_comb", "NONE");
120+
structure(3-randomInt(7), 0, 3-randomInt(7), "honey_comb", "NONE");
121+
structure(3-randomInt(7), 0, 3-randomInt(7), "honey_comb", "NONE");
122+
structure(3-randomInt(7), 0, 3-randomInt(7), "honey_comb", "NONE");
123+
structure(3-randomInt(7), 0, 3-randomInt(7), "honey_comb", "NONE");
48124

49125
//print("Generating at " + originX() + " " + originY() + " " + originZ());

0 commit comments

Comments
 (0)