Add a third log output interface method
[oweals/minetest.git] / src / content_inventory.cpp
index 59997ee4b69a6902896c566c172dfefe51bafc4d..21acad30740b64687753fbc05cd376fafc26309e 100644 (file)
@@ -22,30 +22,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "content_mapnode.h"
 //#include "serverobject.h"
 #include "content_sao.h"
+//#include "gamedef.h"
+//#include "nodedef.h"
 
-bool item_material_is_cookable(content_t content)
-{
-       if(content == CONTENT_TREE)
-               return true;
-       else if(content == CONTENT_COBBLE)
-               return true;
-       else if(content == CONTENT_SAND)
-               return true;
-       return false;
-}
-
-InventoryItem* item_material_create_cook_result(content_t content)
-{
-       if(content == CONTENT_TREE)
-               return new CraftItem("lump_of_coal", 1);
-       else if(content == CONTENT_COBBLE)
-               return new MaterialItem(CONTENT_STONE, 1);
-       else if(content == CONTENT_SAND)
-               return new MaterialItem(CONTENT_GLASS, 1);
-       return NULL;
-}
-
-std::string item_craft_get_image_name(const std::string &subname)
+std::string item_craft_get_image_name(const std::string &subname,
+               IGameDef *gamedef)
 {
        if(subname == "Stick")
                return "stick.png";
@@ -72,39 +53,46 @@ std::string item_craft_get_image_name(const std::string &subname)
        else if(subname == "firefly")
                return "firefly.png";
        else if(subname == "apple")
-               return "apple.png";
-               else if(subname == "apple_iron")
+               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, "testentity", "");
                return obj;
        }
 
        return NULL;
 }
 
-s16 item_craft_get_drop_count(const std::string &subname)
+s16 item_craft_get_drop_count(const std::string &subname, IGameDef *gamedef)
 {
-       if(subname == "rat" || subname == "firefly")
+       if(subname == "rat" || subname == "firefly" || subname == "testobject1")
                return 1;
 
        return -1;
 }
 
-bool item_craft_is_cookable(const std::string &subname)
+bool item_craft_is_cookable(const std::string &subname, IGameDef *gamedef)
 {
        if(subname == "lump_of_iron" || subname == "lump_of_clay" || subname == "rat" || subname == "cooked_rat")
                return true;
@@ -112,21 +100,22 @@ bool item_craft_is_cookable(const std::string &subname)
        return false;
 }
 
-InventoryItem* item_craft_create_cook_result(const std::string &subname)
+InventoryItem* item_craft_create_cook_result(const std::string &subname,
+               IGameDef *gamedef)
 {
        if(subname == "lump_of_iron")
-               return new CraftItem("steel_ingot", 1);
+               return new CraftItem(gamedef, "steel_ingot", 1);
        else if(subname == "lump_of_clay")
-               return new CraftItem("clay_brick", 1);
+               return new CraftItem(gamedef, "clay_brick", 1);
        else if(subname == "rat")
-               return new CraftItem("cooked_rat", 1);
+               return new CraftItem(gamedef, "cooked_rat", 1);
        else if(subname == "cooked_rat")
-               return new CraftItem("scorched_stuff", 1);
+               return new CraftItem(gamedef, "scorched_stuff", 1);
 
        return NULL;
 }
 
-bool item_craft_is_eatable(const std::string &subname)
+bool item_craft_is_eatable(const std::string &subname, IGameDef *gamedef)
 {
        if(subname == "cooked_rat")
                return true;
@@ -137,7 +126,7 @@ bool item_craft_is_eatable(const std::string &subname)
        return false;
 }
 
-s16 item_craft_eat_hp_change(const std::string &subname)
+s16 item_craft_eat_hp_change(const std::string &subname, IGameDef *gamedef)
 {
        if(subname == "cooked_rat")
                return 6; // 3 hearts