//////////////////////////////////////////////////////////////////////////////
// 
// FILE : ToolsAVP_Entity_Dropship.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_DROPSHIP_H_
#define _TOOLSAVP_ENTITY_DROPSHIP_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_ServerVehicle_Dropship;

//////////////////////////////////////////////////////////////////////////////
//
// ToolsAVP_Entity_Dropship
//
//////////////////////////////////////////////////////////////////////////////

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

	virtual void AddOverlayControls( Asura_Overlay* pxOverlay, Asura_Vector_2& xOffset );
	virtual void OnSelection();
	virtual void OnDeselection();
	virtual bool HandlesThisMessage( int iMessageID );
	virtual void UpdateWhileSelected();


	// call back functions
	static void SelectStartGS2Node(); 
	static void SetStartGS2Node(Asura_Guid uGuid); 
	static void ClearStartGS2Node(); 

protected:
	ToolsAVP_Entity_Dropship(AVP_ServerVehicle_Dropship* pxActor);
	virtual ~ToolsAVP_Entity_Dropship() {}

    virtual const char*		GetTypeDescription() { return "Dropship"; }
	virtual Asura_Hash_ID	GetDefaultBlueprintHashID(void) const { return 0xe645f9ab; } // Asura_GetHashID( "Dropship" );


private:

	typedef ToolsAVP_Entity_Actor PARENT;

	void Validate();
	void RequestRefreshOverlay() { m_bRefreshOverlay = true; }
	bool m_bRefreshOverlay;
	AVP_ServerVehicle_Dropship* m_pxDropship;

	static ToolsAVP_Entity_Dropship* s_pxCurrentActive;


};

#endif //_TOOLSAVP_ENTITY_DROPSHIP_H_
