Skip to content

Commit

Permalink
Revert "Ores: Make 'absheight' flag non-functional"
Browse files Browse the repository at this point in the history
This reverts commit 90ed6fc.
  • Loading branch information
nerzhul committed Jun 25, 2017
1 parent c08cc05 commit 1237206
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
7 changes: 6 additions & 1 deletion doc/lua_api.txt
Expand Up @@ -1076,7 +1076,12 @@ Ore attributes
See section "Flag Specifier Format".

Currently supported flags:
`puff_cliffs`, `puff_additive_composition`.
`absheight`, `puff_cliffs`, `puff_additive_composition`.

### `absheight`
Also produce this same ore between the height range of `-y_max` and `-y_min`.

Useful for having ore in sky realms without having to duplicate ore entries.

### `puff_cliffs`
If set, puff ore generation will not taper down large differences in displacement
Expand Down
19 changes: 15 additions & 4 deletions src/mg_ore.cpp
Expand Up @@ -27,7 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,


FlagDesc flagdesc_ore[] = {
{"absheight", OREFLAG_ABSHEIGHT}, // Non-functional
{"absheight", OREFLAG_ABSHEIGHT},
{"puff_cliffs", OREFLAG_PUFF_CLIFFS},
{"puff_additive_composition", OREFLAG_PUFF_ADDITIVE},
{NULL, 0}
Expand Down Expand Up @@ -87,11 +87,22 @@ void Ore::resolveNodeNames()

size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
{
if (!(nmin.Y <= y_max && nmax.Y >= y_min))
int in_range = 0;

in_range |= (nmin.Y <= y_max && nmax.Y >= y_min);
if (flags & OREFLAG_ABSHEIGHT)
in_range |= (nmin.Y >= -y_max && nmax.Y <= -y_min) << 1;
if (!in_range)
return 0;

int actual_ymin = MYMAX(nmin.Y, y_min);
int actual_ymax = MYMIN(nmax.Y, y_max);
int actual_ymin, actual_ymax;
if (in_range & ORE_RANGE_MIRROR) {
actual_ymin = MYMAX(nmin.Y, -y_max);
actual_ymax = MYMIN(nmax.Y, -y_min);
} else {
actual_ymin = MYMAX(nmin.Y, y_min);
actual_ymax = MYMIN(nmax.Y, y_max);
}
if (clust_size >= actual_ymax - actual_ymin + 1)
return 0;

Expand Down
5 changes: 4 additions & 1 deletion src/mg_ore.h
Expand Up @@ -32,11 +32,14 @@ class MMVManip;

/////////////////// Ore generation flags

#define OREFLAG_ABSHEIGHT 0x01 // Non-functional but kept to not break flags
#define OREFLAG_ABSHEIGHT 0x01
#define OREFLAG_PUFF_CLIFFS 0x02
#define OREFLAG_PUFF_ADDITIVE 0x04
#define OREFLAG_USE_NOISE 0x08

#define ORE_RANGE_ACTUAL 1
#define ORE_RANGE_MIRROR 2

enum OreType {
ORE_SCATTER,
ORE_SHEET,
Expand Down

0 comments on commit 1237206

Please sign in to comment.