root/Code/oMaE/oMaE/MinigameFactory.cs @ 103

Revision 103, 2.2 KB (checked in by acarter, 2 years ago)

Finished basic structure for FSM minigame.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Microsoft.Xna.Framework;
6using Microsoft.Xna.Framework.Audio;
7using Microsoft.Xna.Framework.Content;
8using Microsoft.Xna.Framework.GamerServices;
9using Microsoft.Xna.Framework.Graphics;
10using Microsoft.Xna.Framework.Input;
11using Microsoft.Xna.Framework.Media;
12using oMaE.MiniGames;
13using Serializables;
14namespace oMaE
15{
16    /// <summary>
17    /// A class for creating new minigames.
18    /// </summary>
19    public class MinigameFactory : GameObject
20    {
21        private List<MiniGame> minigames = new List<MiniGame>();
22        /// <summary>
23        /// Overriding the children to all be minigames.
24        /// </summary>
25        public override IEnumerable<GameObject> Children
26        {
27            get
28            {
29                return minigames;
30            }
31        }
32        /// <summary>
33        /// Creates an empty minigame factory.
34        /// </summary>
35        public MinigameFactory() {}
36
37        /// <summary>
38        /// Loads the minigame content
39        /// </summary>
40        /// <param name="Content">The content manager</param>
41        public override void LoadContent(ContentManager Content)
42        {
43            minigames.Add(new FSM());
44            minigames.Add(new BaseChanger());
45            foreach (BalanceGame balance in Content.Load<BalanceGame[]>("AppData/Balance"))
46                minigames.Add(new Balance(balance));
47            foreach (MatchGame match in Content.Load<MatchGame[]>("AppData/Match"))
48                minigames.Add(new Match(match));
49            // minigames.Sort();
50            foreach (GameObject child in Children)
51                child.Visible = false;
52            base.LoadContent(Content);
53        }
54
55        /// <summary>
56        /// Which minigame is next.
57        /// </summary>
58        private int next = 0;
59        /// <summary>
60        /// Accessor method for minigames.
61        /// </summary>
62        /// <returns>Returns a minigame.</returns>
63        public MiniGame getMiniGame()
64        {
65            if (next >= minigames.Count)
66                next = 0;
67            return minigames[next++];
68        }
69    }
70}
Note: See TracBrowser for help on using the browser.