///////////////////////////////////////////////////////////////////////////////
//
// File   : AVP_Human_InteractionHandler.h
// Author : Ali Jakamy
// Date   : 25-11-2008
//
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif   // ifdef ASURA_USE_PRAGMA_ONCE

#ifndef AVP_HUMAN_INTERACTIONHANDLER
#define AVP_HUMAN_INTERACTIONHANDLER

#include "Actor/AVP_Actor_InteractionHandler.h"

class AVP_ClientEntity_InteractObject;

class AVP_Human_InteractionHandler : public AVP_Actor_InteractionHandler
{
public:
	AVP_Human_InteractionHandler(AVP_ClientEntity_Actor& xOwner);

	virtual void Update();
	virtual Asura_Guid GetGuidForInteraction( AVP_INTERACTION_TYPES eType ) const;

	virtual bool IsInteractionAllowed() const;

	virtual bool HandleInteraction(AVP_INTERACTION_TYPES eType, int iKeyType, float fKeyValue) const;
	virtual bool IsInteracting() const;

	static bool GetIsHumanInteractionMove(const Asura_Hash_ID uMoveHash);

#if defined(ASURA_SUPPORT_COMMAND_CONSOLE)
	static void CreateConsoleVars();
#endif	// defined(ASURA_SUPPORT_COMMAND_CONSOLE)

private:
	Asura_Guid m_uNearbyBuddyGuid;

	static bool s_bRenderPickUpBuddyPrompt;

	typedef AVP_Actor_InteractionHandler PARENT;
};   

#endif   