virtual u16 typeId() const = 0;
virtual NodeMetadata* clone() = 0;
virtual void serializeBody(std::ostream &os) = 0;
- virtual std::string infoText() {return "<todo: remove this text>";}
+ virtual std::string infoText() {return "";}
virtual Inventory* getInventory() {return NULL;}
// 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;}
+ virtual bool nodeRemovalDisabled(){return false;}
protected:
static void registerType(u16 id, Factory f);
virtual std::string infoText();
virtual Inventory* getInventory() {return m_inventory;}
+ virtual bool nodeRemovalDisabled();
+
private:
Inventory *m_inventory;
};
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:
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;
};