utility.h: Change Buffer's interface to be more compatible with SharedBuffer's interf...
[oweals/minetest.git] / src / content_inventory.cpp
index 7d995cb5f1e7893f32a94c0a25f38a4630805913..413ae8505276e349ae3f334b9bc6ce533cfb05da 100644 (file)
@@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 //#include "serverobject.h"
 #include "content_sao.h"
 
-bool item_material_is_cookable(u8 content)
+bool item_material_is_cookable(content_t content)
 {
        if(content == CONTENT_TREE)
                return true;
@@ -34,7 +34,7 @@ bool item_material_is_cookable(u8 content)
        return false;
 }
 
-InventoryItem* item_material_create_cook_result(u8 content)
+InventoryItem* item_material_create_cook_result(content_t content)
 {
        if(content == CONTENT_TREE)
                return new CraftItem("lump_of_coal", 1);
@@ -65,6 +65,16 @@ std::string item_craft_get_image_name(const std::string &subname)
                return "clay_brick.png";
        else if(subname == "rat")
                return "rat.png";
+       else if(subname == "cooked_rat")
+               return "cooked_rat.png";
+       else if(subname == "scorched_stuff")
+               return "scorched_stuff.png";
+       else if(subname == "firefly")
+               return "firefly.png";
+       else if(subname == "apple")
+               return "apple.png^[forcesingle";
+       else if(subname == "apple_iron")
+               return "apple_iron.png";
        else
                return "cloud.png"; // just something
 }
@@ -77,13 +87,18 @@ ServerActiveObject* item_craft_create_object(const std::string &subname,
                ServerActiveObject *obj = new RatSAO(env, id, pos);
                return obj;
        }
+       else if(subname == "firefly")
+       {
+               ServerActiveObject *obj = new FireflySAO(env, id, pos);
+               return obj;
+       }
 
        return NULL;
 }
 
 s16 item_craft_get_drop_count(const std::string &subname)
 {
-       if(subname == "rat")
+       if(subname == "rat" || subname == "firefly")
                return 1;
 
        return -1;
@@ -91,7 +106,7 @@ s16 item_craft_get_drop_count(const std::string &subname)
 
 bool item_craft_is_cookable(const std::string &subname)
 {
-       if(subname == "lump_of_iron" || subname == "lump_of_clay")
+       if(subname == "lump_of_iron" || subname == "lump_of_clay" || subname == "rat" || subname == "cooked_rat")
                return true;
                
        return false;
@@ -103,7 +118,34 @@ InventoryItem* item_craft_create_cook_result(const std::string &subname)
                return new CraftItem("steel_ingot", 1);
        else if(subname == "lump_of_clay")
                return new CraftItem("clay_brick", 1);
+       else if(subname == "rat")
+               return new CraftItem("cooked_rat", 1);
+       else if(subname == "cooked_rat")
+               return new CraftItem("scorched_stuff", 1);
 
        return NULL;
 }
 
+bool item_craft_is_eatable(const std::string &subname)
+{
+       if(subname == "cooked_rat")
+               return true;
+       else if(subname == "apple")
+               return true;
+       else if(subname == "apple_iron")
+               return true;
+       return false;
+}
+
+s16 item_craft_eat_hp_change(const std::string &subname)
+{
+       if(subname == "cooked_rat")
+               return 6; // 3 hearts
+       else if(subname == "apple")
+               return 4; // 2 hearts
+       else if(subname == "apple_iron")
+               return 8; // 4 hearts
+       return 0;
+}
+
+