summaryrefslogtreecommitdiff
path: root/src/mapgen/mg_ore.h
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2020-04-09 23:40:12 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2020-05-05 19:26:59 +0200
commit2062c80e21b657fed8e68aa48523fa12ad5ef095 (patch)
tree4e760f58a01ddcf55593bed8abcbf41d11f1c96b /src/mapgen/mg_ore.h
parentd1c6cc72cce7e02dcaca7797b463d071d67d27db (diff)
downloadminetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.tar.gz
minetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.tar.bz2
minetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.zip
Allow ObjDefManager instances to be cloned
Diffstat (limited to 'src/mapgen/mg_ore.h')
-rw-r--r--src/mapgen/mg_ore.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mapgen/mg_ore.h b/src/mapgen/mg_ore.h
index d89360c3c..213bdc964 100644
--- a/src/mapgen/mg_ore.h
+++ b/src/mapgen/mg_ore.h
@@ -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() {};
};