struct NoiseParams;
class Mapgen;
-class ManualMapVoxelManipulator;
+class MMVManip;
class PseudoRandom;
class Schematic;
};
#endif
-class Decoration : public GenElement {
+class Decoration : public GenElement, public NodeResolver {
public:
INodeDefManager *ndef;
int mapseed;
std::vector<content_t> c_place_on;
s16 sidelen;
+ s16 y_min;
+ s16 y_max;
float fill_ratio;
NoiseParams np;
Decoration();
virtual ~Decoration();
+ virtual void resolveNodeNames(NodeResolveInfo *nri);
+
size_t placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
- size_t placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
+ //size_t placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
- virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p) = 0;
+ virtual size_t generate(MMVManip *vm, PseudoRandom *pr, s16 max_y, v3s16 p) = 0;
virtual int getHeight() = 0;
- virtual void dropResolverEntries(NodeResolver *resolver) {}
};
class DecoSimple : public Decoration {
s16 deco_height_max;
s16 nspawnby;
- ~DecoSimple() {}
+ virtual void resolveNodeNames(NodeResolveInfo *nri);
- bool canPlaceDecoration(ManualMapVoxelManipulator *vm, v3s16 p);
- virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p);
+ bool canPlaceDecoration(MMVManip *vm, v3s16 p);
+ virtual size_t generate(MMVManip *vm, PseudoRandom *pr, s16 max_y, v3s16 p);
virtual int getHeight();
- virtual void dropResolverEntries(NodeResolver *resolver);
};
class DecoSchematic : public Decoration {
Schematic *schematic;
std::string filename;
- ~DecoSchematic() {}
-
- virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p);
+ virtual size_t generate(MMVManip *vm, PseudoRandom *pr, s16 max_y, v3s16 p);
virtual int getHeight();
};
void clear();
- size_t placeAllDecos(Mapgen *mg, u32 seed, v3s16 nmin, v3s16 nmax);
+ size_t placeAllDecos(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
};
#endif