Spawn level: Add 'get_spawn_level(x, z)' API
[oweals/minetest.git] / src / itemstackmetadata.h
index c56c58fd22d233c8a264b22a62a81c0cd7f57659..0e1977c8c850590b1c312f9c1c3212cb85b9224f 100644 (file)
@@ -17,10 +17,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef ITEMSTACKMETADATA_HEADER
-#define ITEMSTACKMETADATA_HEADER
+#pragma once
 
 #include "metadata.h"
+#include "tool.h"
 
 class Inventory;
 class IItemDefManager;
@@ -28,8 +28,27 @@ class IItemDefManager;
 class ItemStackMetadata : public Metadata
 {
 public:
+       ItemStackMetadata() : toolcaps_overridden(false) {}
+
+       // Overrides
+       void clear() override;
+       bool setString(const std::string &name, const std::string &var) override;
+
        void serialize(std::ostream &os) const;
        void deSerialize(std::istream &is);
-};
 
-#endif
+       const ToolCapabilities &getToolCapabilities(
+                       const ToolCapabilities &default_caps) const
+       {
+               return toolcaps_overridden ? toolcaps_override : default_caps;
+       }
+
+       void setToolCapabilities(const ToolCapabilities &caps);
+       void clearToolCapabilities();
+
+private:
+       void updateToolCapabilities();
+
+       bool toolcaps_overridden;
+       ToolCapabilities toolcaps_override;
+};