Allow group:groupname in ABM definition and implement minetest.hash_node_position()
[oweals/minetest.git] / src / nodedef.h
index 2842b81e727204c606950c000ed92e73a5c87a05..753bea0ed1ff0550ce5e2c8429b0c3bb50827f1c 100644 (file)
@@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #ifndef NODEDEF_HEADER
 #define NODEDEF_HEADER
 
-#include "common_irrlicht.h"
+#include "irrlichttypes.h"
 #include <string>
 #include <iostream>
 #include <map>
@@ -29,6 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "tile.h"
 #endif
 #include "itemgroup.h"
+#include "sound.h" // SimpleSoundSpec
 class IItemDefManager;
 class ITextureSource;
 class IGameDef;
@@ -200,6 +201,11 @@ struct ContentFeatures
        // Set to true if wall_mounted used to be set to true
        bool legacy_wallmounted;
 
+       // Sound properties
+       SimpleSoundSpec sound_footstep;
+       SimpleSoundSpec sound_dig;
+       SimpleSoundSpec sound_dug;
+
        /*
                Methods
        */
@@ -232,6 +238,9 @@ public:
        virtual const ContentFeatures& get(const MapNode &n) const=0;
        virtual bool getId(const std::string &name, content_t &result) const=0;
        virtual content_t getId(const std::string &name) const=0;
+       // Allows "group:name" in addition to regular node names
+       virtual void getIds(const std::string &name, std::set<content_t> &result)
+                       const=0;
        virtual const ContentFeatures& get(const std::string &name) const=0;
        
        virtual void serialize(std::ostream &os)=0;
@@ -248,6 +257,9 @@ public:
        virtual const ContentFeatures& get(const MapNode &n) const=0;
        virtual bool getId(const std::string &name, content_t &result) const=0;
        virtual content_t getId(const std::string &name) const=0;
+       // Allows "group:name" in addition to regular node names
+       virtual void getIds(const std::string &name, std::set<content_t> &result)
+                       const=0;
        // If not found, returns the features of CONTENT_IGNORE
        virtual const ContentFeatures& get(const std::string &name) const=0;