//////////////////////////////////////////////////////////////////////////////////////
// 
// FILE : ToolsAVP_Entity_Predator.h
//
// AUTHOR : Martin G. Harris - Modified By Chris Wallace
//
// Copyright 2002 Rebellion, All Rights Reserved.
//
//////////////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef _TOOLSAVP_ENTITY_PREDATOR_H_
#define _TOOLSAVP_ENTITY_PREDATOR_H_

// I N C L U D E S ///////////////////////////////////////////////////////////

#include "Entity/PhysicalObject/Actor/ToolsAVP_Entity_Actor.h"

// F O R W A R D   D E C L A R A T I O N S ///////////////////////////////////

class AVP_ServerActor_Predator;

//////////////////////////////////////////////////////////////////////////////
//
// ToolsAVP_Entity_Predator
//
//////////////////////////////////////////////////////////////////////////////

class ToolsAVP_Entity_Predator : public ToolsAVP_Entity_Actor
{
public:
    static Tools_Object* Create( const bool bFullInit );
    static Tools_Object* Create( Asura_Entity* pxEntity );
	static void Project_Create();
	virtual Tools_Object*	CreateObjectOfThisType() const { return Create( false ); }

	virtual bool			GetParameter( Asura_Hash_ID uParamID, Tools_Parameter* pxParam ) const;
	virtual bool			SetParameter( Asura_Hash_ID uParamID, const Tools_Parameter* pxParam );
	virtual void			UpdateWhileSelected();

protected:
	ToolsAVP_Entity_Predator(AVP_ServerActor_Predator* pxActor);

    virtual const char* GetTypeDescription() { return "Predator"; }

    virtual bool HandlesThisMessage( int iMessageID );
	virtual void AddOverlayControls( Asura_Overlay* pxNewOverlay, Asura_Vector_2& xOffset );
	virtual void AddFilesToExportList(List<Asura_String>& nameList) const;

    virtual Asura_Hash_ID GetDefaultBlueprintHashID() const { return 0xb31282f7; } // Asura_GetHashID( "Predator" )
	virtual void          RestoreMesh(); 

private:

	void RequestRefreshOverlay() { m_bRefreshOverlay = true; }

	static void BehaviourChanged( int iThis );

    typedef ToolsAVP_Entity_Actor PARENT;

	AVP_ServerActor_Predator*	m_pxPredator; // cached pointer to entity
	bool m_bRefreshOverlay;
};

//////////////////////////////////////////////////////////////////////////////
//
// 
//
//////////////////////////////////////////////////////////////////////////////

#endif //_TOOLSAVP_ENTITY_PREDATOR_H_

