Skip to content

Commit

Permalink
* Furnace would say it was overloaded when it had a non-cookable source
Browse files Browse the repository at this point in the history
* I didn't understand that expression last fix and now the furnace would burn fuel
even when it had no source item.
  • Loading branch information
Queatz committed Sep 1, 2011
1 parent ad795c9 commit 5e3b9e3
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/content_nodemeta.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ std::string FurnaceNodeMetadata::infoText()
assert(src_list);
const InventoryItem *src_item = src_list->getItem(0);

if(src_item) {
if(src_item && src_item->isCookable()) {
InventoryList *dst_list = m_inventory->getList("dst");
if(!dst_list->roomForCookedItem(src_item))
return "Furnace is overloaded";
Expand Down Expand Up @@ -284,17 +284,17 @@ bool FurnaceNodeMetadata::step(float dtime)
}
changed = true;

// Fall through if the fuel item was used up this step
// If the fuel was not used up this step, just keep burning it
if(m_fuel_time < m_fuel_totaltime)
continue;
}

/*
If there is no source item or source item is not cookable,
or furnace became overloaded, stop loop.
If there is no source item, or the source item is not cookable,
or the furnace is still cooking, or the furnace became overloaded, stop loop.
*/
if((m_fuel_time < m_fuel_totaltime || (src_item && dst_list->roomForCookedItem(src_item) == false))
&& (src_item == NULL || m_src_totaltime < 0.001))
if(src_item == NULL || !room_available || m_fuel_time < m_fuel_totaltime ||
dst_list->roomForCookedItem(src_item) == false)
{
m_step_accumulator = 0;
break;
Expand Down

0 comments on commit 5e3b9e3

Please sign in to comment.