Skip to content
Snippets Groups Projects
Commit 26cad481 authored by kwolekr's avatar kwolekr
Browse files

Vary ore sheet y position by noise

parent 8d13967a
No related branches found
No related tags found
No related merge requests found
...@@ -383,9 +383,12 @@ All default ores are of the uniformly-distributed scatter type. ...@@ -383,9 +383,12 @@ All default ores are of the uniformly-distributed scatter type.
that point is greater than the noise_threshhold, giving the ability to create a non-equal that point is greater than the noise_threshhold, giving the ability to create a non-equal
distribution of ore. distribution of ore.
- sheet - sheet
Creates a sheet of ore in a blob shape according to the 2d perlin noise described by Creates a sheet of ore in a blob shape according to the 2d perlin noise described by noise_params.
the noise_params structure. The height of the blob is randomly scattered, with a maximum The relative height of the sheet can be controlled by the same perlin noise as well, by specifying
height of clust_size. Here, clust_scarcity and clust_num_ores are ignored. a non-zero 'scale' parameter in noise_params. IMPORTANT: The noise is not transformed by offset or
scale when comparing against the noise threshhold, but scale is used to determine relative height.
The height of the blob is randomly scattered, with a maximum height of clust_size.
clust_scarcity and clust_num_ores are ignored.
This is essentially an improved version of the so-called "stratus" ore seen in some unofficial mods. This is essentially an improved version of the so-called "stratus" ore seen in some unofficial mods.
- claylike - NOT YET IMPLEMENTED - claylike - NOT YET IMPLEMENTED
Places ore if there are no more than clust_scarcity number of specified nodes within a Von Neumann Places ore if there are no more than clust_scarcity number of specified nodes within a Von Neumann
......
...@@ -165,12 +165,12 @@ void OreSheet::generate(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) { ...@@ -165,12 +165,12 @@ void OreSheet::generate(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) {
int index = 0; int index = 0;
for (int z = z0; z != z1; z++) for (int z = z0; z != z1; z++)
for (int x = x0; x != x1; x++) { for (int x = x0; x != x1; x++) {
float noiseval = noise->result[index++];
if (noise->result[index++] < nthresh) if (noiseval < nthresh)
continue; continue;
int height = max_height * (1. / pr.range(1, 3)); int height = max_height * (1. / pr.range(1, 3));
int y0 = y_start + pr.range(1, 3) - 1; int y0 = y_start + np->scale * noiseval; //pr.range(1, 3) - 1;
int y1 = y0 + height; int y1 = y0 + height;
for (int y = y0; y != y1; y++) { for (int y = y0; y != y1; y++) {
u32 i = vm->m_area.index(x, y, z); u32 i = vm->m_area.index(x, y, z);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment