}
-size_t OreManager::placeAllOres(Mapgen *mg, u32 seed, v3s16 nmin, v3s16 nmax)
+size_t OreManager::placeAllOres(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
{
size_t nplaced = 0;
if (!ore)
continue;
- nplaced += ore->placeOre(mg, seed, nmin, nmax);
- seed++;
+ nplaced += ore->placeOre(mg, blockseed, nmin, nmax);
+ blockseed++;
}
return nplaced;
{
int in_range = 0;
- in_range |= (nmin.Y <= height_max && nmax.Y >= height_min);
+ in_range |= (nmin.Y <= y_max && nmax.Y >= y_min);
if (flags & OREFLAG_ABSHEIGHT)
- in_range |= (nmin.Y >= -height_max && nmax.Y <= -height_min) << 1;
+ in_range |= (nmin.Y >= -y_max && nmax.Y <= -y_min) << 1;
if (!in_range)
return 0;
- int ymin, ymax;
+ int actual_ymin, actual_ymax;
if (in_range & ORE_RANGE_MIRROR) {
- ymin = MYMAX(nmin.Y, -height_max);
- ymax = MYMIN(nmax.Y, -height_min);
+ actual_ymin = MYMAX(nmin.Y, -y_max);
+ actual_ymax = MYMIN(nmax.Y, -y_min);
} else {
- ymin = MYMAX(nmin.Y, height_min);
- ymax = MYMIN(nmax.Y, height_max);
+ actual_ymin = MYMAX(nmin.Y, y_min);
+ actual_ymax = MYMIN(nmax.Y, y_max);
}
- if (clust_size >= ymax - ymin + 1)
+ if (clust_size >= actual_ymax - actual_ymin + 1)
return 0;
- nmin.Y = ymin;
- nmax.Y = ymax;
+ nmin.Y = actual_ymin;
+ nmax.Y = actual_ymax;
generate(mg->vm, mg->seed, blockseed, nmin, nmax);
return 1;
///////////////////////////////////////////////////////////////////////////////
-void OreScatter::generate(ManualMapVoxelManipulator *vm, int seed,
- u32 blockseed, v3s16 nmin, v3s16 nmax)
+void OreScatter::generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax)
{
PseudoRandom pr(blockseed);
MapNode n_ore(c_ore, 0, ore_param2);
int z0 = pr.range(nmin.Z, nmax.Z - csize + 1);
if ((flags & OREFLAG_USE_NOISE) &&
- (NoisePerlin3D(&np, x0, y0, z0, seed) < nthresh))
+ (NoisePerlin3D(&np, x0, y0, z0, mapseed) < nthresh))
continue;
for (int z1 = 0; z1 != csize; z1++)
///////////////////////////////////////////////////////////////////////////////
-void OreSheet::generate(ManualMapVoxelManipulator *vm, int seed,
- u32 blockseed, v3s16 nmin, v3s16 nmax)
+void OreSheet::generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax)
{
PseudoRandom pr(blockseed + 4234);
MapNode n_ore(c_ore, 0, ore_param2);
int sz = nmax.Z - nmin.Z + 1;
noise = new Noise(&np, 0, sx, sz);
}
- noise->seed = seed + y_start;
+ noise->seed = mapseed + y_start;
noise->perlinMap2D(nmin.X, nmin.Z);
size_t index = 0;
///////////////////////////////////////////////////////////////////////////////
-void OreBlob::generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed,
+void OreBlob::generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax)
{
PseudoRandom pr(blockseed + 2404);
int nblobs = volume / clust_scarcity;
if (!noise)
- noise = new Noise(&np, seed, csize, csize, csize);
+ noise = new Noise(&np, mapseed, csize, csize, csize);
for (int i = 0; i != nblobs; i++) {
int x0 = pr.range(nmin.X, nmax.X - csize + 1);
///////////////////////////////////////////////////////////////////////////////
+OreVein::OreVein()
+{
+ noise2 = NULL;
+}
+
+
OreVein::~OreVein()
{
delete noise2;
}
-void OreVein::generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed,
+void OreVein::generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax)
{
PseudoRandom pr(blockseed + 520);
int sx = nmax.X - nmin.X + 1;
int sy = nmax.Y - nmin.Y + 1;
int sz = nmax.Z - nmin.Z + 1;
- noise = new Noise(&np, seed, sx, sy, sz);
- noise2 = new Noise(&np, seed + 436, sx, sy, sz);
+ noise = new Noise(&np, mapseed, sx, sy, sz);
+ noise2 = new Noise(&np, mapseed + 436, sx, sy, sz);
}
bool noise_generated = false;