#ifndef MG_DECORATION_HEADER
#define MG_DECORATION_HEADER
-#include "util/cpp11_container.h"
+#include <unordered_set>
#include "objdef.h"
#include "noise.h"
#include "nodedef.h"
class Decoration : public ObjDef, public NodeResolver {
public:
- Decoration();
- virtual ~Decoration();
+ Decoration() {};
+ virtual ~Decoration() {};
virtual void resolveNodeNames();
bool canPlaceDecoration(MMVManip *vm, v3s16 p);
- size_t placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
+ size_t placeDeco(Mapgen *mg, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, s16 deco_zero_level);
//size_t placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p) = 0;
virtual int getHeight() = 0;
- u32 flags;
- int mapseed;
+ u32 flags = 0;
+ int mapseed = 0;
std::vector<content_t> c_place_on;
- s16 sidelen;
+ s16 sidelen = 1;
s16 y_min;
s16 y_max;
- float fill_ratio;
+ float fill_ratio = 0.0f;
NoiseParams np;
std::vector<content_t> c_spawnby;
s16 nspawnby;
- UNORDERED_SET<u8> biomes;
- //std::list<CutoffData> cutoffs;
- //Mutex cutoff_mutex;
+ std::unordered_set<u8> biomes;
};
class DecoSimple : public Decoration {
class DecoSchematic : public Decoration {
public:
- DecoSchematic();
+ DecoSchematic() {};
virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p);
virtual int getHeight();
Rotation rotation;
- Schematic *schematic;
+ Schematic *schematic = nullptr;
};
}
}
- size_t placeAllDecos(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
+ size_t placeAllDecos(Mapgen *mg, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, s16 deco_zero_level = 0);
};
#endif