More sane flower spawning?

This commit is contained in:
Carlos Sanchez 2024-09-21 09:41:19 -04:00
parent 8a1534004c
commit 5966782b90

View File

@ -76,8 +76,8 @@
#define TREETRUNKCOL 0xF950
#define TREEBOTTOM -0.333
#define TREETRUNKWIDTH 0.2
#define REDFLOWERCOL 0xFF24
#define YELLOWFLOWERCOL 0xFFF0
#define REDFLOWERCOL 0xFF13
#define YELLOWFLOWERCOL 0xFEE0
#define SEATRANS 0.75
#define CLOUDTRANSMIN 0.1
#define CLOUDTRANSMAX 0.2
@ -189,30 +189,6 @@ uint16_t gen_terrain(struct vec3i pos, haloo3d_obj *model,
// ns.seed = 0;
ns.frequency = 0.02;
ns.fractal_type = FNL_FRACTAL_NONE;
// for (int fi = 0; fi < 2; fi++) {
// // Pick a random place for a flower
// struct vec2 flowerpos = {.x = triedge[0].x + 0.8 * RANDF(),
// .y = triedge[0].y - 0.8 * RANDF()};
// float y = calc_barycentric(flowerpos.v, heights, triedge, 2);
// if (y > 0.2 * fi && y < 0.2 * (fi + 1)) {
// float nlayer =
// fnlGetNoise2D(&ns, noisex + flowerpos.x, noisey + flowerpos.y);
// float scale = 0.04;
// float vertscale = scale * (1 - 0.5 * RANDF()); // * CHUNKSCALE * 4;
// if (RANDF() < -nlayer) {
// haloo3d_obj_addobj(
// &nl_model, flowers[fi],
// (struct vec3){
// .x = flowerpos.x, .y = y + vertscale * 0.5, .z =
// flowerpos.y},
// (struct vec3)DEFAULTLOOK,
// //(struct vec3){.x = -sin(MPI * 0.25), .y = 0, .z = -cos(MPI *
// // 0.25)},
// (struct vec3)DEFAULTUP,
// (struct vec3){.x = scale, .y = vertscale, .z = scale});
// }
// }
// }
for (int t = 0; t < MAXTREEPERCELL; t++) {
// We know that the first vec in the first triangle is bl, which is our
// base to start generating trees
@ -235,12 +211,12 @@ uint16_t gen_terrain(struct vec3i pos, haloo3d_obj *model,
.x = treepos.x, .y = y + scale * height, .z = treepos.y},
(struct vec3)DEFAULTLOOK, (struct vec3)DEFAULTUP,
(struct vec3){.x = scale, .y = scale * height, .z = scale});
} else if ((rand() & 1) && y < 0.4 && y > 0 && RANDF() < -nlayer) {
} else if ((rand() & 3) == 0 && y < 0.4 && y > 0 && RANDF() < -nlayer) {
// if (y > 0.2 * fi && y < 0.2 * (fi + 1)) {
float scale = 0.04;
float vertscale = scale * (1 - 0.5 * RANDF()); // * CHUNKSCALE * 4;
haloo3d_obj_addobj(
&nl_model, flowers[y < 0.2],
&nl_model, flowers[RANDF() * 0.4 > y],
(struct vec3){
.x = treepos.x, .y = y + vertscale * 0.5, .z = treepos.y},
(struct vec3)DEFAULTLOOK,