summaryrefslogtreecommitdiff
path: root/src/mg_ore.h
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2014-12-10 00:37:09 -0500
committerkwolekr <kwolekr@minetest.net>2014-12-10 00:37:09 -0500
commitfb2bc956b18bd70a47bff00d5726d4754867856a (patch)
tree1e8cb37de5f6b4db15cedec2e1b036e807710c06 /src/mg_ore.h
parent88c28414f4a88c8d66f9cadb150896f9e25527ae (diff)
downloadminetest-fb2bc956b18bd70a47bff00d5726d4754867856a.tar.gz
minetest-fb2bc956b18bd70a47bff00d5726d4754867856a.tar.bz2
minetest-fb2bc956b18bd70a47bff00d5726d4754867856a.zip
Noise: Create a deep copy of NoiseParams
Diffstat (limited to 'src/mg_ore.h')
-rw-r--r--src/mg_ore.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mg_ore.h b/src/mg_ore.h
index 16fb50cd5..f3a565050 100644
--- a/src/mg_ore.h
+++ b/src/mg_ore.h
@@ -40,6 +40,8 @@ class ManualMapVoxelManipulator;
// nodes isn't the specified node
#define OREFLAG_NODEISNT 0x04 // not yet implemented
+#define OREFLAG_USE_NOISE 0x08
+
#define ORE_RANGE_ACTUAL 1
#define ORE_RANGE_MIRROR 2
@@ -54,6 +56,8 @@ extern FlagDesc flagdesc_ore[];
class Ore : public GenElement {
public:
+ static const bool NEEDS_NOISE = false;
+
content_t c_ore; // the node to place
std::vector<content_t> c_wherein; // the nodes to be placed in
u32 clust_scarcity; // ore cluster has a 1-in-clust_scarcity chance of appearing at a node
@@ -64,25 +68,26 @@ public:
u8 ore_param2; // to set node-specific attributes
u32 flags; // attributes for this ore
float nthresh; // threshhold for noise at which an ore is placed
- NoiseParams *np; // noise for distribution of clusters (NULL for uniform scattering)
+ NoiseParams np; // noise for distribution of clusters (NULL for uniform scattering)
Noise *noise;
- Ore();
- virtual ~Ore();
-
size_t placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
virtual void generate(ManualMapVoxelManipulator *vm, int seed,
u32 blockseed, v3s16 nmin, v3s16 nmax) = 0;
};
class OreScatter : public Ore {
- virtual ~OreScatter() {}
+public:
+ static const bool NEEDS_NOISE = false;
+
virtual void generate(ManualMapVoxelManipulator *vm, int seed,
u32 blockseed, v3s16 nmin, v3s16 nmax);
};
class OreSheet : public Ore {
- virtual ~OreSheet() {}
+public:
+ static const bool NEEDS_NOISE = true;
+
virtual void generate(ManualMapVoxelManipulator *vm, int seed,
u32 blockseed, v3s16 nmin, v3s16 nmax);
};