ORE_PUFF,
ORE_BLOB,
ORE_VEIN,
+ ORE_STRATUM,
};
extern FlagDesc flagdesc_ore[];
Noise *noise = nullptr;
std::unordered_set<u8> biomes;
- Ore() {};
+ Ore() = default;;
virtual ~Ore();
virtual void resolveNodeNames();
- size_t placeOre(Mapgen *mg, u32 blockseed,
- v3s16 nmin, v3s16 nmax, s16 ore_zero_level);
+ 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;
};
v3s16 nmin, v3s16 nmax, u8 *biomemap);
};
+class OreStratum : public Ore {
+public:
+ static const bool NEEDS_NOISE = true;
+
+ 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() {}
+ virtual ~OreManager() = default;
const char *getObjectTitle() const
{
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, s16 ore_zero_level = 0);
+ size_t placeAllOres(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
};