]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/content_inventory.cpp
New kind of tool speed and wear calculation thingy
[dragonfireclient.git] / src / content_inventory.cpp
index 1068defb5e8772a3289704fcef077aba8b5dfd03..51c6f751efa2e60615b4759d9655aea820d31ea7 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,23 +65,38 @@ 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 if(subname == "testobject1") // test object
+               return "unknown_block.png^[forcesingle";
        else
                return "cloud.png"; // just something
 }
 
 ServerActiveObject* item_craft_create_object(const std::string &subname,
-               ServerEnvironment *env, u16 id, v3f pos)
+               ServerEnvironment *env, v3f pos)
 {
        if(subname == "rat")
        {
-               ServerActiveObject *obj = new RatSAO(env, id, pos);
+               ServerActiveObject *obj = new RatSAO(env, pos);
                return obj;
        }
        else if(subname == "firefly")
        {
-               ServerActiveObject *obj = new FireflySAO(env, id, pos);
+               ServerActiveObject *obj = new FireflySAO(env, pos);
+               return obj;
+       }
+       else if(subname == "testobject1")
+       {
+               ServerActiveObject *obj = new LuaEntitySAO(env, pos, "TNT", "");
                return obj;
        }
 
@@ -90,7 +105,7 @@ ServerActiveObject* item_craft_create_object(const std::string &subname,
 
 s16 item_craft_get_drop_count(const std::string &subname)
 {
-       if(subname == "rat" || subname == "firefly")
+       if(subname == "rat" || subname == "firefly" || subname == "testobject1")
                return 1;
 
        return -1;
@@ -98,7 +113,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;
@@ -110,7 +125,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;
+}
+
+