@@ -3,7 +3,11 @@ num warp = 5;
33num warpFreq = 2;
44num squish = 1;
55num 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
812for (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