X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmg_ore.cpp;h=c62f05860edb72078c98bfcb2e88630d75b2df9c;hb=fd70f4f2f040b64064676706e41d6da90c2b00db;hp=5bbc40e13d65b3fccf2b72c7fcec2848581af83a;hpb=9b0d77a549e4c29c9c189ff2a454568fa9746c1e;p=minetest.git diff --git a/src/mg_ore.cpp b/src/mg_ore.cpp index 5bbc40e13..c62f05860 100644 --- a/src/mg_ore.cpp +++ b/src/mg_ore.cpp @@ -41,7 +41,7 @@ OreManager::OreManager(IGameDef *gamedef) : } -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; @@ -50,8 +50,8 @@ size_t OreManager::placeAllOres(Mapgen *mg, u32 seed, v3s16 nmin, v3s16 nmax) if (!ore) continue; - nplaced += ore->placeOre(mg, seed, nmin, nmax); - seed++; + nplaced += ore->placeOre(mg, blockseed, nmin, nmax); + blockseed++; } return nplaced; @@ -123,8 +123,8 @@ size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) /////////////////////////////////////////////////////////////////////////////// -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); @@ -142,7 +142,7 @@ void OreScatter::generate(ManualMapVoxelManipulator *vm, int seed, 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++) @@ -164,8 +164,8 @@ void OreScatter::generate(ManualMapVoxelManipulator *vm, int seed, /////////////////////////////////////////////////////////////////////////////// -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); @@ -178,7 +178,7 @@ void OreSheet::generate(ManualMapVoxelManipulator *vm, int seed, 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; @@ -206,7 +206,7 @@ void OreSheet::generate(ManualMapVoxelManipulator *vm, int seed, /////////////////////////////////////////////////////////////////////////////// -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); @@ -219,7 +219,7 @@ void OreBlob::generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, 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); @@ -263,13 +263,19 @@ void OreBlob::generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, /////////////////////////////////////////////////////////////////////////////// +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); @@ -279,8 +285,8 @@ void OreVein::generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, 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;