Browse files

Don't remove furnace if something is inside it.

  • Loading branch information...
1 parent efd8dab commit ef08163c38ea668f509015c176a59d6f4ae1fd76 @Queatz Queatz committed Aug 24, 2011
Showing with 19 additions and 0 deletions.
  1. +18 −0 src/content_nodemeta.cpp
  2. +1 −0 src/content_nodemeta.h
View
18 src/content_nodemeta.cpp
@@ -195,6 +195,24 @@ std::string FurnaceNodeMetadata::infoText()
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()
{
dstream<<"Furnace inventory modification callback"<<std::endl;
View
1 src/content_nodemeta.h
@@ -76,6 +76,7 @@ class FurnaceNodeMetadata : public NodeMetadata
virtual Inventory* getInventory() {return m_inventory;}
virtual void inventoryModified();
virtual bool step(float dtime);
+ virtual bool nodeRemovalDisabled();
virtual std::string getInventoryDrawSpecString();
private:

0 comments on commit ef08163

Please sign in to comment.