summaryrefslogtreecommitdiff
path: root/src/nodemetadata.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-04-05 18:23:30 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-04-05 18:23:30 +0300
commit89aa8b9be1fbe3659d0bfb9263cf1c563044c04e (patch)
tree643801781f44b395dab1f50a9cbd588dab425d79 /src/nodemetadata.cpp
parent5b4928e07c8bcc877bfc2a8c0268ea9601cf699b (diff)
downloadminetest-89aa8b9be1fbe3659d0bfb9263cf1c563044c04e.tar.gz
minetest-89aa8b9be1fbe3659d0bfb9263cf1c563044c04e.tar.bz2
minetest-89aa8b9be1fbe3659d0bfb9263cf1c563044c04e.zip
Furnace is now usable. Added more tools.
--HG-- rename : data/tool_stpick.png => data/tool_stonepick.png rename : data/tool_wpick.png => data/tool_woodpick.png
Diffstat (limited to 'src/nodemetadata.cpp')
-rw-r--r--src/nodemetadata.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/nodemetadata.cpp b/src/nodemetadata.cpp
index 21b4ed01d..8b21856de 100644
--- a/src/nodemetadata.cpp
+++ b/src/nodemetadata.cpp
@@ -165,6 +165,18 @@ std::string ChestNodeMetadata::infoText()
{
return "Chest";
}
+bool ChestNodeMetadata::nodeRemovalDisabled()
+{
+ /*
+ Disable removal if chest contains something
+ */
+ InventoryList *list = m_inventory->getList("0");
+ if(list == NULL)
+ return true;
+ if(list->getUsedSlots() == 0)
+ return true;
+ return false;
+}
/*
FurnaceNodeMetadata
@@ -266,7 +278,7 @@ bool FurnaceNodeMetadata::step(float dtime)
// Start only if there are free slots in dst, so that it can
// accomodate any result item
- if(dst_list->getFreeSlots() > 0)
+ if(dst_list->getFreeSlots() > 0 && src_item && src_item->isCookable())
{
m_src_totaltime = 3;
}
@@ -281,11 +293,12 @@ bool FurnaceNodeMetadata::step(float dtime)
//dstream<<"Furnace is active"<<std::endl;
m_fuel_time += dtime;
m_src_time += dtime;
- if(m_src_time >= m_src_totaltime && m_src_totaltime > 0.001)
+ if(m_src_time >= m_src_totaltime && m_src_totaltime > 0.001
+ && src_item)
{
- src_list->decrementMaterials(1);
InventoryItem *cookresult = src_item->createCookResult();
dst_list->addItem(cookresult);
+ src_list->decrementMaterials(1);
m_src_time = 0;
m_src_totaltime = 0;
}