From 61dfa912f5f37f435e41b3c7d8cdb6244562e597 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Sun, 28 Dec 2014 21:17:12 -0500 Subject: Ore: Add Vein ore type --- src/mg_ore.h | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/mg_ore.h') diff --git a/src/mg_ore.h b/src/mg_ore.h index a20aeefe0..bd81a63fb 100644 --- a/src/mg_ore.h +++ b/src/mg_ore.h @@ -32,14 +32,6 @@ class ManualMapVoxelManipulator; // Use absolute value of height to determine ore placement #define OREFLAG_ABSHEIGHT 0x01 - -// Use 3d noise to get density of ore placement, instead of just the position -#define OREFLAG_DENSITY 0x02 // not yet implemented - -// For claylike ore types, place ore if the number of surrounding -// nodes isn't the specified node -#define OREFLAG_NODEISNT 0x04 // not yet implemented - #define OREFLAG_USE_NOISE 0x08 #define ORE_RANGE_ACTUAL 1 @@ -50,6 +42,7 @@ enum OreType { ORE_TYPE_SCATTER, ORE_TYPE_SHEET, ORE_TYPE_BLOB, + ORE_TYPE_VEIN, }; extern FlagDesc flagdesc_ore[]; @@ -105,6 +98,19 @@ public: u32 blockseed, v3s16 nmin, v3s16 nmax); }; +class OreVein : public Ore { +public: + static const bool NEEDS_NOISE = true; + + float random_factor; + Noise *noise2; + + virtual ~OreVein(); + + virtual void generate(ManualMapVoxelManipulator *vm, int seed, + u32 blockseed, v3s16 nmin, v3s16 nmax); +}; + class OreManager : public GenElementManager { public: static const char *ELEMENT_TITLE; @@ -122,6 +128,8 @@ public: return new OreSheet; case ORE_TYPE_BLOB: return new OreBlob; + case ORE_TYPE_VEIN: + return new OreVein; default: return NULL; } -- cgit v1.2.3