diff options
Diffstat (limited to 'src/mapgen/mg_ore.h')
-rw-r--r-- | src/mapgen/mg_ore.h | 91 |
1 files changed, 50 insertions, 41 deletions
diff --git a/src/mapgen/mg_ore.h b/src/mapgen/mg_ore.h index 76420fab4..e2053a274 100644 --- a/src/mapgen/mg_ore.h +++ b/src/mapgen/mg_ore.h @@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "noise.h" #include "nodedef.h" -typedef u16 biome_t; // copy from mg_biome.h to avoid an unnecessary include +typedef u16 biome_t; // copy from mg_biome.h to avoid an unnecessary include class Noise; class Mapgen; @@ -33,13 +33,14 @@ class MMVManip; /////////////////// Ore generation flags -#define OREFLAG_ABSHEIGHT 0x01 // Non-functional but kept to not break flags -#define OREFLAG_PUFF_CLIFFS 0x02 +#define OREFLAG_ABSHEIGHT 0x01 // Non-functional but kept to not break flags +#define OREFLAG_PUFF_CLIFFS 0x02 #define OREFLAG_PUFF_ADDITIVE 0x04 -#define OREFLAG_USE_NOISE 0x08 -#define OREFLAG_USE_NOISE2 0x10 +#define OREFLAG_USE_NOISE 0x08 +#define OREFLAG_USE_NOISE2 0x10 -enum OreType { +enum OreType +{ ORE_SCATTER, ORE_SHEET, ORE_PUFF, @@ -50,48 +51,54 @@ enum OreType { extern FlagDesc flagdesc_ore[]; -class Ore : public ObjDef, public NodeResolver { +class Ore : public ObjDef, public NodeResolver +{ public: static const bool NEEDS_NOISE = false; - content_t c_ore; // the node to place + 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 + u32 clust_scarcity; // ore cluster has a 1-in-clust_scarcity chance of appearing + // at a node s16 clust_num_ores; // how many ore nodes are in a chunk - s16 clust_size; // how large (in nodes) a chunk of ore is + s16 clust_size; // how large (in nodes) a chunk of ore is s16 y_min; s16 y_max; - u8 ore_param2; // to set node-specific attributes - u32 flags = 0; // attributes for this ore - float nthresh; // threshold for noise at which an ore is placed - NoiseParams np; // noise for distribution of clusters (NULL for uniform scattering) + u8 ore_param2; // to set node-specific attributes + u32 flags = 0; // attributes for this ore + float nthresh; // threshold for noise at which an ore is placed + NoiseParams np; // noise for distribution of clusters (NULL for uniform + // scattering) Noise *noise = nullptr; std::unordered_set<biome_t> biomes; - Ore() = default;; + Ore() = default; + ; virtual ~Ore(); virtual void resolveNodeNames(); size_t placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap) = 0; + virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, v3s16 nmin, + v3s16 nmax, biome_t *biomemap) = 0; protected: void cloneTo(Ore *def) const; }; -class OreScatter : public Ore { +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, biome_t *biomemap); + virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, v3s16 nmin, + v3s16 nmax, biome_t *biomemap); }; -class OreSheet : public Ore { +class OreSheet : public Ore +{ public: static const bool NEEDS_NOISE = true; @@ -101,11 +108,12 @@ public: u16 column_height_max; float column_midpoint_factor; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, v3s16 nmin, + v3s16 nmax, biome_t *biomemap); }; -class OrePuff : public Ore { +class OrePuff : public Ore +{ public: static const bool NEEDS_NOISE = true; @@ -119,21 +127,23 @@ public: OrePuff() = default; virtual ~OrePuff(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, v3s16 nmin, + v3s16 nmax, biome_t *biomemap); }; -class OreBlob : public Ore { +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, biome_t *biomemap); + virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, v3s16 nmin, + v3s16 nmax, biome_t *biomemap); }; -class OreVein : public Ore { +class OreVein : public Ore +{ public: static const bool NEEDS_NOISE = true; @@ -146,11 +156,12 @@ public: OreVein() = default; virtual ~OreVein(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, v3s16 nmin, + v3s16 nmax, biome_t *biomemap); }; -class OreStratum : public Ore { +class OreStratum : public Ore +{ public: static const bool NEEDS_NOISE = false; @@ -163,21 +174,19 @@ public: OreStratum() = default; virtual ~OreStratum(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, v3s16 nmin, + v3s16 nmax, biome_t *biomemap); }; -class OreManager : public ObjDefManager { +class OreManager : public ObjDefManager +{ public: OreManager(IGameDef *gamedef); virtual ~OreManager() = default; OreManager *clone() const; - const char *getObjectTitle() const - { - return "ore"; - } + const char *getObjectTitle() const { return "ore"; } static Ore *create(OreType type) { @@ -204,5 +213,5 @@ public: size_t placeAllOres(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax); private: - OreManager() {}; + OreManager(){}; }; |