/***************************************************************************** * GameComponentCollection.h * * * * XFX GameComponentCollection definition file * * Copyright (c) XFX Team. All Rights Reserved * *****************************************************************************/ #ifndef _XFX_GAMECOMPONENTCOLLECTION_ #define _XFX_GAMECOMPONENTCOLLECTION_ #include "Interfaces.h" #include #include #include using namespace System; using namespace System::Collections::Generic; namespace XFX { /** * A collection of game components. */ class GameComponentCollection : public Object { private: List _components; protected: void ClearItems(); void InsertItem(const int index, IGameComponent * const item); void RemoveItem(const int index); void SetItem(const int index, IGameComponent * const item); public: int Count() const; GameComponentCollection(); virtual ~GameComponentCollection(); IGameComponent* operator[](const int index); static const Type& GetType(); Event ComponentAdded; Event ComponentRemoved; }; } #endif //_XFX_GAMECOMPONENTCOLLECTION_