LuaVoxelManip: Add option to allocate blank data
[oweals/minetest.git] / src / mg_schematic.h
index 9d4d4a71681e262ba2d4bd3320b119e1f29ad0e6..8d0b18148761b84a171597a7b6286502aa2cd638 100644 (file)
@@ -42,7 +42,7 @@ class NodeResolver;
 #define MTSCHEM_PROB_ALWAYS 0xFF
 
 
-class Schematic : public GenElement {
+class Schematic : public GenElement, public NodeResolver {
 public:
        std::vector<content_t> c_nodes;
 
@@ -52,14 +52,16 @@ public:
        u8 *slice_probs;
 
        Schematic();
-       ~Schematic();
+       virtual ~Schematic();
+
+       virtual void resolveNodeNames(NodeResolveInfo *nri);
 
        void updateContentIds();
 
        void blitToVManip(v3s16 p, ManualMapVoxelManipulator *vm,
                Rotation rot, bool force_placement, INodeDefManager *ndef);
 
-       bool loadSchematicFromFile(const char *filename, NodeResolver *resolver,
+       bool loadSchematicFromFile(const char *filename, INodeDefManager *ndef,
                std::map<std::string, std::string> &replace_names);
        void saveSchematicToFile(const char *filename, INodeDefManager *ndef);
        bool getSchematicFromMap(Map *map, v3s16 p1, v3s16 p2);
@@ -76,7 +78,7 @@ public:
        static const char *ELEMENT_TITLE;
        static const size_t ELEMENT_LIMIT = 0x10000;
 
-       SchematicManager(IGameDef *gamedef) {}
+       SchematicManager(IGameDef *gamedef);
        ~SchematicManager() {}
 
        Schematic *create(int type)
@@ -86,7 +88,7 @@ public:
 };
 
 void build_nnlist_and_update_ids(MapNode *nodes, u32 nodecount,
-                                       std::vector<content_t> *usednodes);
+       std::vector<content_t> *usednodes);
 
 
 #endif