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;}
+ // Used to make custom inventory menus.
+ // See format in guiInventoryMenu.cpp.
+ virtual std::string getInventoryDrawSpecString(){return "";}
+ // primarily used for locking chests, but others can play too
+ virtual std::string getOwner(){ return std::string(""); }
+ virtual void setOwner(std::string t){ }
protected:
static void registerType(u16 id, Factory f);
static core::map<u16, Factory> m_types;
};
-class SignNodeMetadata : public NodeMetadata
-{
-public:
- SignNodeMetadata(std::string text);
- //~SignNodeMetadata();
-
- virtual u16 typeId() const;
- static NodeMetadata* create(std::istream &is);
- virtual NodeMetadata* clone();
- virtual void serializeBody(std::ostream &os);
- virtual std::string infoText();
-
- std::string getText(){ return m_text; }
- void setText(std::string t){ m_text = t; }
-
-private:
- std::string m_text;
-};
-
-class ChestNodeMetadata : public NodeMetadata
-{
-public:
- ChestNodeMetadata();
- ~ChestNodeMetadata();
-
- virtual u16 typeId() const;
- static NodeMetadata* create(std::istream &is);
- virtual NodeMetadata* clone();
- virtual void serializeBody(std::ostream &os);
- virtual std::string infoText();
- virtual Inventory* getInventory() {return m_inventory;}
-
-private:
- Inventory *m_inventory;
-};
-
-class FurnaceNodeMetadata : public NodeMetadata
-{
-public:
- FurnaceNodeMetadata();
- ~FurnaceNodeMetadata();
-
- virtual u16 typeId() const;
- virtual NodeMetadata* clone();
- static NodeMetadata* create(std::istream &is);
- virtual void serializeBody(std::ostream &os);
- 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: