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

Revision 104, 2.3 KB (checked in by acarter, 2 years ago)

FSM now loads for serializer

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