summaryrefslogtreecommitdiff
path: root/src/nodemetadata.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-04-05 02:56:29 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-04-05 02:56:29 +0300
commitd1d57cf5c34c9a4626fd8e3b40db3ea321b40335 (patch)
treee263dcc5268f514f43521d2df86640a96be94e96 /src/nodemetadata.h
parent281f76b6a07393906cb532bed95d5d98f0791c3a (diff)
downloadminetest-d1d57cf5c34c9a4626fd8e3b40db3ea321b40335.tar.gz
minetest-d1d57cf5c34c9a4626fd8e3b40db3ea321b40335.tar.bz2
minetest-d1d57cf5c34c9a4626fd8e3b40db3ea321b40335.zip
initial workings of the furnace
Diffstat (limited to 'src/nodemetadata.h')
-rw-r--r--src/nodemetadata.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nodemetadata.h b/src/nodemetadata.h
index e8aa57622..c38ab1310 100644
--- a/src/nodemetadata.h
+++ b/src/nodemetadata.h
@@ -59,6 +59,8 @@ public:
// This is called always after the inventory is modified, before
// the changes are copied elsewhere
virtual void inventoryModified(){}
+ // A step in time. Returns true if metadata changed.
+ virtual bool step(float dtime) {return false;}
protected:
static void registerType(u16 id, Factory f);
@@ -115,15 +117,23 @@ public:
virtual std::string infoText();
virtual Inventory* getInventory() {return m_inventory;}
virtual void inventoryModified();
+ virtual bool step(float dtime);
private:
Inventory *m_inventory;
+ float m_step_accumulator;
+ float m_fuel_totaltime;
+ float m_fuel_time;
+ float m_src_totaltime;
+ float m_src_time;
};
/*
List of metadata of all the nodes of a block
*/
+class InventoryManager;
+
class NodeMetadataList
{
public:
@@ -138,6 +148,10 @@ public:
void remove(v3s16 p);
// Deletes old data and sets a new one
void set(v3s16 p, NodeMetadata *d);
+
+ // A step in time. Returns true if something changed.
+ bool step(float dtime);
+
private:
core::map<v3s16, NodeMetadata*> m_data;
};