Don't remove furnace if something is inside it.

master
JacobF 2011-08-24 18:53:06 -04:00
parent efd8dabd91
commit ef08163c38
2 changed files with 19 additions and 0 deletions

View File

@ -195,6 +195,24 @@ std::string FurnaceNodeMetadata::infoText()
return s; return s;
} }
} }
bool FurnaceNodeMetadata::nodeRemovalDisabled()
{
/*
Disable removal if furnace is not empty
*/
InventoryList *list[3] = {m_inventory->getList("src"),
m_inventory->getList("dst"), m_inventory->getList("fuel")};
for(int i = 0; i < 3; i++) {
if(list[i] == NULL)
continue;
if(list[i]->getUsedSlots() == 0)
continue;
return true;
}
return false;
}
void FurnaceNodeMetadata::inventoryModified() void FurnaceNodeMetadata::inventoryModified()
{ {
dstream<<"Furnace inventory modification callback"<<std::endl; dstream<<"Furnace inventory modification callback"<<std::endl;

View File

@ -76,6 +76,7 @@ public:
virtual Inventory* getInventory() {return m_inventory;} virtual Inventory* getInventory() {return m_inventory;}
virtual void inventoryModified(); virtual void inventoryModified();
virtual bool step(float dtime); virtual bool step(float dtime);
virtual bool nodeRemovalDisabled();
virtual std::string getInventoryDrawSpecString(); virtual std::string getInventoryDrawSpecString();
private: private: