diff options
author | Ilya Zhuravlev <zhuravlevilya@ya.ru> | 2012-08-20 01:29:56 +0400 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-09-01 10:01:41 +0300 |
commit | 6a16075912d016926ee0361fb85f9979c119be52 (patch) | |
tree | 9f0b589efac5266eb51db71643e174187f83cf3e /src/inventorymanager.cpp | |
parent | 43ebec2be1949aa5eac127df7cb902d37e4e461b (diff) | |
download | hax-minetest-server-6a16075912d016926ee0361fb85f9979c119be52.tar.gz hax-minetest-server-6a16075912d016926ee0361fb85f9979c119be52.zip |
Add InventoryList width property & allow custom crafting grids.
Diffstat (limited to 'src/inventorymanager.cpp')
-rw-r--r-- | src/inventorymanager.cpp | 10 |
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]); } |