-/*
- SignNodeMetadata
-*/
-
-// Prototype
-SignNodeMetadata proto_SignNodeMetadata(NULL, "");
-
-SignNodeMetadata::SignNodeMetadata(IGameDef *gamedef, std::string text):
- NodeMetadata(gamedef),
- m_text(text)
-{
- NodeMetadata::registerType(typeId(), typeName(), create, create);
-}
-u16 SignNodeMetadata::typeId() const
-{
- return NODEMETA_SIGN;
-}
-NodeMetadata* SignNodeMetadata::create(std::istream &is, IGameDef *gamedef)
-{
- std::string text = deSerializeString(is);
- return new SignNodeMetadata(gamedef, text);
-}
-NodeMetadata* SignNodeMetadata::create(IGameDef *gamedef)
-{
- return new SignNodeMetadata(gamedef, "");
-}
-NodeMetadata* SignNodeMetadata::clone(IGameDef *gamedef)
-{
- return new SignNodeMetadata(gamedef, m_text);
-}
-void SignNodeMetadata::serializeBody(std::ostream &os)
-{
- os<<serializeString(m_text);
-}
-std::string SignNodeMetadata::infoText()
-{
- return std::string("\"")+m_text+"\"";
-}
-
-/*
- ChestNodeMetadata
-*/
-
-// Prototype
-ChestNodeMetadata proto_ChestNodeMetadata(NULL);
-
-ChestNodeMetadata::ChestNodeMetadata(IGameDef *gamedef):
- NodeMetadata(gamedef)
-{
- NodeMetadata::registerType(typeId(), typeName(), create, create);
-
- m_inventory = new Inventory();
- m_inventory->addList("0", 8*4);
-}
-ChestNodeMetadata::~ChestNodeMetadata()
-{
- delete m_inventory;
-}
-u16 ChestNodeMetadata::typeId() const
-{
- return NODEMETA_CHEST;
-}
-NodeMetadata* ChestNodeMetadata::create(std::istream &is, IGameDef *gamedef)
-{
- ChestNodeMetadata *d = new ChestNodeMetadata(gamedef);
- d->m_inventory->deSerialize(is, gamedef);
- return d;
-}
-NodeMetadata* ChestNodeMetadata::create(IGameDef *gamedef)
-{
- ChestNodeMetadata *d = new ChestNodeMetadata(gamedef);
- return d;
-}
-NodeMetadata* ChestNodeMetadata::clone(IGameDef *gamedef)
-{
- ChestNodeMetadata *d = new ChestNodeMetadata(gamedef);
- *d->m_inventory = *m_inventory;
- return d;
-}
-void ChestNodeMetadata::serializeBody(std::ostream &os)
-{
- m_inventory->serialize(os);
-}
-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 false;
- if(list->getUsedSlots() == 0)
- return false;
- return true;
-}
-std::string ChestNodeMetadata::getInventoryDrawSpecString()
-{
- return
- "invsize[8,9;]"
- "list[current_name;0;0,0;8,4;]"
- "list[current_player;main;0,5;8,4;]";
-}
-
-/*
- LockingChestNodeMetadata
-*/
-
-// Prototype
-LockingChestNodeMetadata proto_LockingChestNodeMetadata(NULL);
-
-LockingChestNodeMetadata::LockingChestNodeMetadata(IGameDef *gamedef):
- NodeMetadata(gamedef)