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

Revision 114, 2.4 KB (checked in by jwentworth, 2 years ago)

Added wave1d game

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 Wave1D());
44            foreach (BaseChangerGame baseChanger in Content.Load<BaseChangerGame[]>("AppData/BaseChanger"))
45                minigames.Add(new BaseChanger(baseChanger));
46            foreach (FSMGame fsm in Content.Load<FSMGame[]>("AppData/FSM"))
47                minigames.Add(new FSM(fsm));
48            foreach (BalanceGame balance in Content.Load<BalanceGame[]>("AppData/Balance"))
49                minigames.Add(new Balance(balance));
50            foreach (MatchGame match in Content.Load<MatchGame[]>("AppData/Match"))
51                minigames.Add(new Match(match));
52            // minigames.Sort();
53            foreach (GameObject child in Children)
54                child.Visible = false;
55            base.LoadContent(Content);
56        }
57
58        /// <summary>
59        /// Which minigame is next.
60        /// </summary>
61        private int next = 0;
62        /// <summary>
63        /// Accessor method for minigames.
64        /// </summary>
65        /// <returns>Returns a minigame.</returns>
66        public MiniGame getMiniGame()
67        {
68            if (next >= minigames.Count)
69                next = 0;
70            return minigames[next++];
71        }
72    }
73}
Note: See TracBrowser for help on using the browser.