Catch SendFailedException when replying back in Connection::Receive()
[oweals/minetest.git] / src / content_craft.cpp
index 20ab5f06937b5aa2223d4df0c3d05961ca114209..866c1e5328e07bbc02eab363f40aefa6c3f43f5d 100644 (file)
@@ -297,6 +297,24 @@ InventoryItem *craft_get_result(InventoryItem **items)
                }
        }
 
+       // Locking Chest
+       {
+               ItemSpec specs[9];
+               specs[0] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               specs[1] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               specs[2] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               specs[3] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               specs[4] = ItemSpec(ITEM_CRAFT, "steel_ingot");
+               specs[5] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               specs[6] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               specs[7] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               specs[8] = ItemSpec(ITEM_MATERIAL, CONTENT_WOOD);
+               if(checkItemCombination(items, specs))
+               {
+                       return new MaterialItem(CONTENT_LOCKABLE_CHEST, 1);
+               }
+       }
+
        // Furnace
        {
                ItemSpec specs[9];
@@ -428,6 +446,20 @@ InventoryItem *craft_get_result(InventoryItem **items)
                        return new MaterialItem(CONTENT_LADDER, 1);
                }
        }
+       
+       // Iron Apple
+       {
+               ItemSpec specs[9];
+               specs[1] = ItemSpec(ITEM_CRAFT, "steel_ingot");
+               specs[3] = ItemSpec(ITEM_CRAFT, "steel_ingot");
+               specs[4] = ItemSpec(ITEM_CRAFT, "apple");
+               specs[5] = ItemSpec(ITEM_CRAFT, "steel_ingot");
+               specs[7] = ItemSpec(ITEM_CRAFT, "steel_ingot");
+               if(checkItemCombination(items, specs))
+               {
+                       return new CraftItem("apple_iron", 1);
+               }
+       }
 
        return NULL;
 }