summaryrefslogtreecommitdiff
path: root/src/inventorymanager.cpp
diff options
context:
space:
mode:
authorIlya Zhuravlev <zhuravlevilya@ya.ru>2012-08-20 01:29:56 +0400
committerPerttu Ahola <celeron55@gmail.com>2012-09-01 10:01:41 +0300
commit6a16075912d016926ee0361fb85f9979c119be52 (patch)
tree9f0b589efac5266eb51db71643e174187f83cf3e /src/inventorymanager.cpp
parent43ebec2be1949aa5eac127df7cb902d37e4e461b (diff)
downloadminetest-6a16075912d016926ee0361fb85f9979c119be52.tar.gz
minetest-6a16075912d016926ee0361fb85f9979c119be52.tar.bz2
minetest-6a16075912d016926ee0361fb85f9979c119be52.zip
Add InventoryList width property & allow custom crafting grids.
Diffstat (limited to 'src/inventorymanager.cpp')
-rw-r--r--src/inventorymanager.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp
index ec4d47def..e2e537838 100644
--- a/src/inventorymanager.cpp
+++ b/src/inventorymanager.cpp
@@ -769,18 +769,16 @@ bool getCraftingResult(Inventory *inv, ItemStack& result,
result.clear();
- // TODO: Allow different sizes of crafting grids
-
// Get the InventoryList in which we will operate
InventoryList *clist = inv->getList("craft");
- if(!clist || clist->getSize() != 9)
+ if(!clist)
return false;
// Mangle crafting grid to an another format
CraftInput ci;
ci.method = CRAFT_METHOD_NORMAL;
- ci.width = 3;
- for(u16 i=0; i<9; i++)
+ ci.width = clist->getWidth() ? clist->getWidth() : 3;
+ for(u16 i=0; i<clist->getSize(); i++)
ci.items.push_back(clist->getItem(i));
// Find out what is crafted and add it to result item slot
@@ -793,7 +791,7 @@ bool getCraftingResult(Inventory *inv, ItemStack& result,
if(found && decrementInput)
{
// CraftInput has been changed, apply changes in clist
- for(u16 i=0; i<9; i++)
+ for(u16 i=0; i<clist->getSize(); i++)
{
clist->changeItem(i, ci.items[i]);
}