Tune caves
[oweals/minetest.git] / src / tool.h
index d2a9c13c81a358d6ddbdd9b9898be60df77f1482..a92a77294fb731e368441a77be5eab1c143f744c 100644 (file)
@@ -49,17 +49,22 @@ struct ToolGroupCap
        }
 };
 
+
+// CLANG SUCKS DONKEY BALLS
+typedef std::map<std::string, struct ToolGroupCap> ToolGCMap;
+
 struct ToolCapabilities
 {
        float full_punch_interval;
        int max_drop_level;
-       std::map<std::string, ToolGroupCap> groupcaps;
+       // CLANG SUCKS DONKEY BALLS
+       ToolGCMap groupcaps;
 
        ToolCapabilities(
-                       float full_punch_interval_=3.0,
+                       float full_punch_interval_=1.4,
                        int max_drop_level_=1,
-                       std::map<std::string, ToolGroupCap> groupcaps_ =
-                                       std::map<std::string, ToolGroupCap>()
+                       // CLANG SUCKS DONKEY BALLS
+                       ToolGCMap groupcaps_=ToolGCMap()
        ):
                full_punch_interval(full_punch_interval_),
                max_drop_level(max_drop_level_),
@@ -77,11 +82,14 @@ struct DigParams
        float time;
        // Caused wear
        u16 wear;
+       std::string main_group;
 
-       DigParams(bool a_diggable=false, float a_time=0, u16 a_wear=0):
+       DigParams(bool a_diggable=false, float a_time=0, u16 a_wear=0,
+                       std::string a_main_group=""):
                diggable(a_diggable),
                time(a_time),
-               wear(a_wear)
+               wear(a_wear),
+               main_group(a_main_group)
        {}
 };
 
@@ -95,10 +103,12 @@ struct HitParams
 {
        s16 hp;
        s16 wear;
+       std::string main_group;
 
-       HitParams(s16 hp_=0, s16 wear_=0):
+       HitParams(s16 hp_=0, s16 wear_=0, std::string main_group_=""):
                hp(hp_),
-               wear(wear_)
+               wear(wear_),
+               main_group(main_group_)
        {}
 };
 
@@ -108,5 +118,28 @@ HitParams getHitParams(const ItemGroupList &groups,
 HitParams getHitParams(const ItemGroupList &groups,
                const ToolCapabilities *tp);
 
+struct PunchDamageResult
+{
+       bool did_punch;
+       int damage;
+       int wear;
+       std::string main_group;
+
+       PunchDamageResult():
+               did_punch(false),
+               damage(0),
+               wear(0)
+       {}
+};
+
+struct ItemStack;
+
+PunchDamageResult getPunchDamage(
+               const ItemGroupList &armor_groups,
+               const ToolCapabilities *toolcap,
+               const ItemStack *punchitem,
+               float time_from_last_punch
+);
+
 #endif