///////////////////////////////////////////////////////////////////////////////
//
// File: ToolsAVP_Entity_Container.h
//
// Created by Martin G.Harris (20/8/2008)
// 
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __TOOLSAVP_ENTITY_CONTAINER_H__
#define __TOOLSAVP_ENTITY_CONTAINER_H__

#ifdef ASURA_USE_CONTAINER_SYSTEM

// Includes
#include "Entity/Container/Tools_Entity_Container.h"

///////////////////////////////
// ToolsAVP_Entity_Container //
///////////////////////////////
class ToolsAVP_Entity_Container : public Tools_Entity_Container
{
	typedef Tools_Entity_Container PARENT;

public:
	ToolsAVP_Entity_Container(Asura_Entity* pxEntity);
	virtual ~ToolsAVP_Entity_Container();

	virtual void UpdatePositionInAsuraData( bool bUpdateLinkedObjects );

    // Message handling.
    virtual bool HandlesThisMessage(int iMessageID);

	virtual void AddProjectOverlayControls(Asura_Overlay* pxOverlay, Asura_Vector_2& xOffset);
	
public:
	static ToolsAVP_Entity_Container* FindEntity(Asura_Guid uGuid)
	{
		return static_cast<ToolsAVP_Entity_Container*>(PARENT::FindEntity(uGuid));
	}
};

#endif //#ifdef ASURA_USE_CONTAINER_SYSTEM

#endif //__TOOLSAVP_ENTITY_CONTAINER_H__
