Replace instances of height_min/height_max with y_min/y_max to remove ambiguity
[oweals/minetest.git] / src / mg_decoration.h
index dffb524f39f95ea43b7caff7e96d5f256083f428..59c3ff5583b22a722816b4803e0b4846c3012be4 100644 (file)
@@ -58,7 +58,7 @@ struct CutoffData {
 };
 #endif
 
-class Decoration : public GenElement {
+class Decoration : public GenElement, public NodeResolver {
 public:
        INodeDefManager *ndef;
 
@@ -66,6 +66,8 @@ public:
        int mapseed;
        std::vector<content_t> c_place_on;
        s16 sidelen;
+       s16 y_min;
+       s16 y_max;
        float fill_ratio;
        NoiseParams np;
 
@@ -76,12 +78,13 @@ public:
        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);
 
        virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p) = 0;
        virtual int getHeight() = 0;
-       virtual void dropResolverEntries(NodeResolver *resolver) {}
 };
 
 class DecoSimple : public Decoration {
@@ -92,12 +95,11 @@ public:
        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);
        virtual int getHeight();
-       virtual void dropResolverEntries(NodeResolver *resolver);
 };
 
 class DecoSchematic : public Decoration {
@@ -106,8 +108,6 @@ public:
        Schematic *schematic;
        std::string filename;
 
-       ~DecoSchematic() {}
-
        virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p);
        virtual int getHeight();
 };