diff options
author | kwolekr <kwolekr@minetest.net> | 2014-12-10 00:37:09 -0500 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2014-12-10 00:37:09 -0500 |
commit | fb2bc956b18bd70a47bff00d5726d4754867856a (patch) | |
tree | 1e8cb37de5f6b4db15cedec2e1b036e807710c06 /src/mg_ore.h | |
parent | 88c28414f4a88c8d66f9cadb150896f9e25527ae (diff) | |
download | minetest-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.h | 17 |
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); }; |