From 1320d07068f25ff23ea27e120983c006f75bec24 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 12 Nov 2011 17:37:14 +0200 Subject: Scripting WIP: dynamic object stuff --- src/player.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'src/player.cpp') diff --git a/src/player.cpp b/src/player.cpp index 396ce2494..f0a395f49 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -164,6 +164,70 @@ void Player::deSerialize(std::istream &is) inventory.deSerialize(is); } +/* + ServerRemotePlayer +*/ + +/* ServerActiveObject interface */ + +InventoryItem* ServerRemotePlayer::getWieldedItem() +{ + InventoryList *list = inventory.getList("main"); + if (list) + return list->getItem(m_selected_item); + return NULL; +} +void ServerRemotePlayer::damageWieldedItem(u16 amount) +{ + infostream<<"Damaging "<getItem(m_selected_item); + if(item && (std::string)item->getName() == "ToolItem"){ + ToolItem *titem = (ToolItem*)item; + bool weared_out = titem->addWear(amount); + if(weared_out) + list->deleteItem(m_selected_item); + } +} +bool ServerRemotePlayer::addToInventory(InventoryItem *item) +{ + infostream<<"Adding "<getName()<<" into "<getBool("creative_mode")){ + return false; + } + + // Skip if inventory has no free space + if(ilist->roomForItem(item) == false) + { + infostream<<"Player inventory has no free space"<addItem(item); + assert(!leftover); + + return true; +} +void ServerRemotePlayer::setHP(s16 hp_) +{ + hp = hp_; +} +s16 ServerRemotePlayer::getHP() +{ + return hp; +} + /* RemotePlayer */ -- cgit v1.2.3