void TreasuryManager::bankJoin(PlayerObject* player)
{
	auto equip_service = gWorldManager->getKernel()->GetServiceManager()->GetService<swganh::equipment::EquipmentService>("EquipmentService");
	//auto inventory	= dynamic_cast<Inventory*>(equip_service->GetEquippedObject(player, "inventory"));
	auto bank		= dynamic_cast<Bank*>(equip_service->GetEquippedObject(player->GetCreature(), "bank"));
    if(!bank)    {
		LOG (error) << "TreasuryManager::bankJoin No bank for " << player->getId();
		return;
	}

	// check if we're not already binded here
    if(static_cast<uint32>(bank->getPlanet()) == gWorldManager->getZoneId())
    {
        gMessageLib->SendSystemMessage(::common::OutOfBand("system_msg", "already_member_of_bank"), player);
        return;
    }

    // check if we are not binded to any other bank
    if(bank->getPlanet() >= 0)
    {
        gMessageLib->SendSystemMessage(::common::OutOfBand("system_msg", "member_of_different_bank"), player);
        return;
    }

    bank->setPlanet((int8)gWorldManager->getZoneId());

    //This message period added at the end as its missing from client.
    gMessageLib->SendSystemMessage(::common::OutOfBand("system_msg", "succesfully_joined_bank"), player);

}
void ossimPlanetLayer::traverse(osg::NodeVisitor& nv)
{
   switch(nv.getVisitorType())
   {
      case osg::NodeVisitor::EVENT_VISITOR:
      {
         if(redrawFlag())
         {
            osgGA::EventVisitor* ev = dynamic_cast<osgGA::EventVisitor*>(&nv);
            if(ev)
            {
               if(ev->getActionAdapter())
               {
                  ev->getActionAdapter()->requestRedraw();
                  setRedrawFlag(false);
               }
            }
         }
         return;
      }
      case osg::NodeVisitor::UPDATE_VISITOR:
      {
         if(!thePlanet)
         {
            setPlanet(ossimPlanet::findPlanet(this));
         }
         break;
      }
      default:
      {
         
      }
   }
   ossimPlanetNode::traverse(nv);
}
void TreasuryManager::bankQuit(PlayerObject* player)
{
	auto equip_service = gWorldManager->getKernel()->GetServiceManager()->GetService<swganh::equipment::EquipmentService>("EquipmentService");
	//auto inventory	= dynamic_cast<Inventory*>(equip_service->GetEquippedObject(player, "inventory"));
	auto bank		= dynamic_cast<Bank*>(equip_service->GetEquippedObject(player->GetCreature(), "bank"));

    if(!bank)    {
		LOG (error) << "TreasuryManager::bankWithdrawAll No Bank Object for " << player->getId();
		return;
	}
    
	// check if the player is really bound to this bank
    if(static_cast<uint32>(bank->getPlanet()) != gWorldManager->getZoneId())    {
        gMessageLib->SendSystemMessage(L"You are not a member of this bank.", player);
        return;
    }

    // check if the bank item box is empty

    // update the playerObject
    bank->setPlanet(-1);

    //This message has a period added to the end as it was missing from client.
    gMessageLib->SendSystemMessage(::common::OutOfBand("system_msg", "succesfully_quit_bank"), player);
  
}
Tank::Tank(Planet* planet, std::string tank_path, sf::Font* hp_font) {

	rotation = 0.0;
	setHp(INITIALHP);

	createSprite(tank_path);
	setPlanet(planet);
	createHP(hp_font);

}