//////////////////////////////////////////////////////////////////////////////
//
// AVP_ClientEntity_InteractRetinalScanner.h
//
// Created by AJK 05/01/2009
//
// Copyright (c) 2009 Rebellion. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __AVP_CLIENTENTITY_INTERACTRETINALSCANNER__
#define __AVP_CLIENTENTITY_INTERACTRETINALSCANNER__

// AVP
#include "Entity/PhysicalObject/Interact/ToolReceptacle/AVP_ClientEntity_InteractToolReceptacle.h"

class AVP_Message_InteractRetinalScanner_ClientCreate;
class AVP_ServerEntity_Actor;

class AVP_ClientEntity_InteractRetinalScanner : public AVP_ClientEntity_InteractToolReceptacle
{
public:

	static void															     Create( const Asura_Message* pxMsg );
	static AVP_ClientEntity_InteractRetinalScanner*							 FindEntity( Asura_Guid uGuid )				{ return s_xList.FindEntity( uGuid ); }
	static const Asura_Hashed_List<AVP_ClientEntity_InteractRetinalScanner>* GetList()			{ return &s_xList; }

	virtual InteractionType GetInteractionObjectType() const { return INTERACTION_TYPE_RETINALSCANNER; };
	virtual bool IsActorUsingRightInteractionItem(const AVP_ClientEntity_Actor& xActor) const;

	void GetPredatorUseHeadAnimHashes  ( Asura_Hash_ID& uHUDAnimHash, Asura_Hash_ID& uTPAnimHash ) const;

	Asura_Hash_ID GetVictimBlueprintHash() const { return m_uVictimBlueprintHashID;     }
	Asura_Hash_ID GetVictimBlueprintType() const { return m_uVictimBlueprintType; }

protected:

	AVP_ClientEntity_InteractRetinalScanner();
	virtual ~AVP_ClientEntity_InteractRetinalScanner();

	void		 ProcessClientCreate( const AVP_Message_InteractRetinalScanner_ClientCreate* pxData, float fServerTime, bool bProcessPosAndOri );

	virtual void	   InitialiseFromBlueprint( const Asura_Blueprint& xBlueprint );

private:

	// Predator anims
	Asura_Hash_ID m_uPredatorUseHeadHUDAnimID;
	Asura_Hash_ID m_uPredatorUseHeadTPAnimID;

	Asura_Hash_ID m_uVictimBlueprintHashID;
	Asura_Hash_ID m_uVictimBlueprintType;

	static Asura_Hashed_List<AVP_ClientEntity_InteractRetinalScanner> s_xList;
	typedef AVP_ClientEntity_InteractToolReceptacle PARENT;
};

#endif // #ifndef __AVP_CLIENTENTITY_INTERACTRETINALSCANNER__
