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

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

Finished working parts of Binary Builder.

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