Falling sand and gravel
[oweals/minetest.git] / src / materials.h
index 39829786dfae3ab6d9797da5769457c13e1271d2..9db33fc638aab2eaf34f297796db787dd93969be 100644 (file)
@@ -1,6 +1,6 @@
 /*
 Minetest-c55
-Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "common_irrlicht.h"
 #include <string>
+#include <iostream>
 
 enum Diggability
 {
@@ -55,16 +56,20 @@ struct MaterialProperties
        // Sword is best for cuttable light stuff.
        float cuttability;
        // If high, ignites easily
-       //float flammability;
+       float flammability;
 
        MaterialProperties():
                diggability(DIGGABLE_NOT),
                constant_time(0.5),
-               weight(1),
-               crackiness(1),
-               crumbliness(1),
-               cuttability(1)
+               weight(0),
+               crackiness(0),
+               crumbliness(0),
+               cuttability(0),
+               flammability(0)
        {}
+
+       void serialize(std::ostream &os);
+       void deSerialize(std::istream &is);
 };
 
 struct DiggingProperties
@@ -88,8 +93,11 @@ struct DiggingProperties
        u16 wear;
 };
 
-// Tool "" is bare hands
-DiggingProperties getDiggingProperties(u16 material, const std::string &tool);
+class ToolDiggingProperties;
+class INodeDefManager;
+
+DiggingProperties getDiggingProperties(u16 content, ToolDiggingProperties *tp,
+               INodeDefManager *nodemgr);
 
 #endif