From fb2bc956b18bd70a47bff00d5726d4754867856a Mon Sep 17 00:00:00 2001 From: kwolekr Date: Wed, 10 Dec 2014 00:37:09 -0500 Subject: Noise: Create a deep copy of NoiseParams --- src/mg_ore.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/mg_ore.h') 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 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); }; -- cgit v1.2.3