public StateMenu(string pStateName)
            : base(pStateName)
        {
            // Create the menu and then add the required menu items.
            m_MenuManager = new MenuManager(new Vector2(150, 150));
            m_MenuManager.AddItem(new MenuItem("Start Game",ref m_MenuManager));
            m_MenuManager.AddItem(new MenuItem("Settings", ref m_MenuManager));
            m_MenuManager.AddItem(new MenuItem("About", ref m_MenuManager));
            m_MenuManager.AddItem(new MenuItem("Exit", ref m_MenuManager));

            m_MenuManager.MenuItems[0].OnSelect += delegate(object sender, EntityEventArgs e)
            {
                Main.INSTANCE.CurrentGameState = GameState.Game;
            };

            m_MenuManager.MenuItems[1].OnSelect += delegate(object sender, EntityEventArgs e)
            {
                Main.INSTANCE.CurrentGameState = GameState.Settings;
            };

            m_MenuManager.MenuItems[2].OnSelect += delegate(object sender, EntityEventArgs e)
            {

            };

            m_MenuManager.MenuItems[3].OnSelect += delegate(object sender, EntityEventArgs e)
            {
                Environment.Exit(0);
            };
        }
        public MenuItem(string pText, ref MenuManager pRoot)
        {
            this.m_Root = pRoot;
            this.m_Message = pText;

            this.OnCreate = new EntityEventHandler(Event_OnCreate);
            this.OnDestroy = new EntityEventHandler(Event_OnDestroy);
        }
        public StateAbout(string pStateName)
            : base(pStateName)
        {
            m_Manager = new MenuManager(new Vector2(0, 0));

            m_Manager.AddItem(new MenuItem("Exit", ref m_Manager));

            m_Manager.MenuItems[0].OnSelect += delegate(object sender, EntityEventArgs e)
            {

            };
        }
        public StateNetwork(string pStateName)
            : base(pStateName)
        {
            m_MenuManager = new MenuManager(new Vector2(100, 100));

            m_MenuManager.AddItem(new MenuItem("Find game", ref m_MenuManager));
            m_MenuManager.AddItem(new MenuItem("Return to main menu",ref m_MenuManager));

            // Find a game.
            m_MenuManager.MenuItems[0].OnSelect += delegate(object sender, EntityEventArgs e) {
                // Do something lol.
            };

            m_MenuManager.MenuItems[1].OnSelect += delegate(object sender, EntityEventArgs e)
            {
                Main.INSTANCE.CurrentGameState = GameState.Menu;
            };

            Initialise();
        }