diff options
author | Vitaliy <silverunicorn2011@yandex.ru> | 2017-11-09 01:56:20 +0300 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-11-08 23:56:20 +0100 |
commit | 20a85d76d94c9c5c7fbe198c3d0e1fbee97a485f (patch) | |
tree | 67378802190117d8271b3b6d489a92bcb16203b7 /src/mg_ore.h | |
parent | fc9747eb4b7f75e59a28957bc50f7a78256b3d66 (diff) | |
download | dragonfireclient-20a85d76d94c9c5c7fbe198c3d0e1fbee97a485f.tar.xz |
Move files to subdirectories (#6599)
* Move files around
Diffstat (limited to 'src/mg_ore.h')
-rw-r--r-- | src/mg_ore.h | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/src/mg_ore.h b/src/mg_ore.h deleted file mode 100644 index e715f348b..000000000 --- a/src/mg_ore.h +++ /dev/null @@ -1,183 +0,0 @@ -/* -Minetest -Copyright (C) 2014-2016 kwolekr, Ryan Kwolek <kwolekr@minetest.net> -Copyright (C) 2015-2017 paramat - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -#pragma once - -#include <unordered_set> -#include "objdef.h" -#include "noise.h" -#include "nodedef.h" - -class Noise; -class Mapgen; -class MMVManip; - -/////////////////// Ore generation flags - -#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 - -enum OreType { - ORE_SCATTER, - ORE_SHEET, - ORE_PUFF, - ORE_BLOB, - ORE_VEIN, - ORE_STRATUM, -}; - -extern FlagDesc flagdesc_ore[]; - -class Ore : public ObjDef, public NodeResolver { -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 - 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 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) - Noise *noise = nullptr; - std::unordered_set<u8> biomes; - - 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, u8 *biomemap) = 0; -}; - -class OreScatter : public Ore { -public: - static const bool NEEDS_NOISE = false; - - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, u8 *biomemap); -}; - -class OreSheet : public Ore { -public: - static const bool NEEDS_NOISE = true; - - u16 column_height_min; - u16 column_height_max; - float column_midpoint_factor; - - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, u8 *biomemap); -}; - -class OrePuff : public Ore { -public: - static const bool NEEDS_NOISE = true; - - NoiseParams np_puff_top; - NoiseParams np_puff_bottom; - Noise *noise_puff_top = nullptr; - Noise *noise_puff_bottom = nullptr; - - OrePuff() = default; - virtual ~OrePuff(); - - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, u8 *biomemap); -}; - -class OreBlob : public Ore { -public: - static const bool NEEDS_NOISE = true; - - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, u8 *biomemap); -}; - -class OreVein : public Ore { -public: - static const bool NEEDS_NOISE = true; - - float random_factor; - Noise *noise2 = nullptr; - - OreVein() = default; - virtual ~OreVein(); - - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, u8 *biomemap); -}; - -class OreStratum : public Ore { -public: - static const bool NEEDS_NOISE = false; - - NoiseParams np_stratum_thickness; - Noise *noise_stratum_thickness = nullptr; - - OreStratum() = default; - virtual ~OreStratum(); - - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, u8 *biomemap); -}; - -class OreManager : public ObjDefManager { -public: - OreManager(IGameDef *gamedef); - virtual ~OreManager() = default; - - const char *getObjectTitle() const - { - return "ore"; - } - - static Ore *create(OreType type) - { - switch (type) { - case ORE_SCATTER: - return new OreScatter; - case ORE_SHEET: - return new OreSheet; - case ORE_PUFF: - return new OrePuff; - case ORE_BLOB: - return new OreBlob; - case ORE_VEIN: - return new OreVein; - case ORE_STRATUM: - return new OreStratum; - default: - return nullptr; - } - } - - void clear(); - - size_t placeAllOres(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax); -}; |