forked from Mirrorlandia_minetest/minetest
Ensure no item stack is being held before crafting (#4779)
This commit is contained in:
parent
fd9f195fcc
commit
2b5341c518
@ -3668,19 +3668,25 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
a->from_i = m_selected_item->i;
|
a->from_i = m_selected_item->i;
|
||||||
m_invmgr->inventoryAction(a);
|
m_invmgr->inventoryAction(a);
|
||||||
} else if (craft_amount > 0) {
|
} else if (craft_amount > 0) {
|
||||||
|
assert(s.isValid());
|
||||||
|
|
||||||
|
// if there are no items selected or the selected item
|
||||||
|
// belongs to craftresult list, proceed with crafting
|
||||||
|
if (m_selected_item == NULL ||
|
||||||
|
!m_selected_item->isValid() || m_selected_item->listname == "craftresult") {
|
||||||
|
|
||||||
m_selected_content_guess = ItemStack(); // Clear
|
m_selected_content_guess = ItemStack(); // Clear
|
||||||
|
|
||||||
// Send IAction::Craft
|
|
||||||
|
|
||||||
assert(s.isValid());
|
|
||||||
assert(inv_s);
|
assert(inv_s);
|
||||||
|
|
||||||
infostream << "Handing IAction::Craft to manager" << std::endl;
|
// Send IACTION_CRAFT
|
||||||
|
infostream << "Handing IACTION_CRAFT to manager" << std::endl;
|
||||||
ICraftAction *a = new ICraftAction();
|
ICraftAction *a = new ICraftAction();
|
||||||
a->count = craft_amount;
|
a->count = craft_amount;
|
||||||
a->craft_inv = s.inventoryloc;
|
a->craft_inv = s.inventoryloc;
|
||||||
m_invmgr->inventoryAction(a);
|
m_invmgr->inventoryAction(a);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If m_selected_amount has been decreased to zero, deselect
|
// If m_selected_amount has been decreased to zero, deselect
|
||||||
if (m_selected_amount == 0) {
|
if (m_selected_amount == 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user