1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-27 17:28:41 +00:00

Allow ObjDefManager instances to be cloned

This commit is contained in:
sfan5 2020-04-09 23:40:12 +02:00 committed by Loïc Blot
parent d1c6cc72cc
commit 2062c80e21
13 changed files with 370 additions and 5 deletions

View file

@ -74,12 +74,17 @@ public:
size_t placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap) = 0;
protected:
void cloneTo(Ore *def) const;
};
class OreScatter : public Ore {
public:
static const bool NEEDS_NOISE = false;
ObjDef *clone() const;
virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap);
};
@ -88,6 +93,8 @@ class OreSheet : public Ore {
public:
static const bool NEEDS_NOISE = true;
ObjDef *clone() const;
u16 column_height_min;
u16 column_height_max;
float column_midpoint_factor;
@ -100,6 +107,8 @@ class OrePuff : public Ore {
public:
static const bool NEEDS_NOISE = true;
ObjDef *clone() const;
NoiseParams np_puff_top;
NoiseParams np_puff_bottom;
Noise *noise_puff_top = nullptr;
@ -116,6 +125,8 @@ class OreBlob : public Ore {
public:
static const bool NEEDS_NOISE = true;
ObjDef *clone() const;
virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
v3s16 nmin, v3s16 nmax, u8 *biomemap);
};
@ -124,6 +135,8 @@ class OreVein : public Ore {
public:
static const bool NEEDS_NOISE = true;
ObjDef *clone() const;
float random_factor;
Noise *noise2 = nullptr;
int sizey_prev = 0;
@ -139,6 +152,8 @@ class OreStratum : public Ore {
public:
static const bool NEEDS_NOISE = false;
ObjDef *clone() const;
NoiseParams np_stratum_thickness;
Noise *noise_stratum_thickness = nullptr;
u16 stratum_thickness;
@ -155,6 +170,8 @@ public:
OreManager(IGameDef *gamedef);
virtual ~OreManager() = default;
OreManager *clone() const;
const char *getObjectTitle() const
{
return "ore";
@ -183,4 +200,7 @@ public:
void clear();
size_t placeAllOres(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
private:
OreManager() {};
};