1
0
mirror of https://github.com/moparisthebest/minetest synced 2024-12-23 16:08:51 -05:00

hopefully fixed old furnaces taking ridiculous amounts of cpu and halting the server

This commit is contained in:
Perttu Ahola 2011-06-16 19:43:28 +03:00
parent 1d372b9273
commit d6b54514bf

View File

@ -300,6 +300,10 @@ bool FurnaceNodeMetadata::step(float dtime)
m_src_totaltime = 0; m_src_totaltime = 0;
} }
/*
If fuel is burning, increment the burn counters.
If item finishes cooking, move it to result.
*/
if(m_fuel_time < m_fuel_totaltime) if(m_fuel_time < m_fuel_totaltime)
{ {
//dstream<<"Furnace is active"<<std::endl; //dstream<<"Furnace is active"<<std::endl;
@ -318,9 +322,13 @@ bool FurnaceNodeMetadata::step(float dtime)
continue; continue;
} }
/*
If there is no source item or source item is not cookable, stop loop.
*/
if(src_item == NULL || m_src_totaltime < 0.001) if(src_item == NULL || m_src_totaltime < 0.001)
{ {
continue; m_step_accumulator = 0;
break;
} }
//dstream<<"Furnace is out of fuel"<<std::endl; //dstream<<"Furnace is out of fuel"<<std::endl;
@ -360,6 +368,9 @@ bool FurnaceNodeMetadata::step(float dtime)
else else
{ {
//dstream<<"No fuel found"<<std::endl; //dstream<<"No fuel found"<<std::endl;
// No fuel, stop loop.
m_step_accumulator = 0;
break;
} }
} }
return changed; return changed;