source: 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Guis/GuiManager.cs @ 4713

Revision 4713, 1.9 KB checked in by dezhidki, 9 years ago (diff)

Talletus.

Line 
1using CastleMaster.Graphics;
2using System;
3using System.Collections.Generic;
4using System.Linq;
5using System.Text;
6
7namespace CastleMaster.Guis
8{
9    public class GuiManager
10    {
11        private List<Gui> registeredGuis;
12        private Gui importantGui = null;
13        private bool hasImportantGui = false;
14
15        public GuiManager()
16        {
17            registeredGuis = new List<Gui>();
18        }
19
20        public void AddGui(Gui gui, bool activate, bool important = false)
21        {
22            if (important)
23            {
24                importantGui = gui;
25                hasImportantGui = true;
26            }
27            else
28                registeredGuis.Add(gui);
29            gui.IsActive = activate;
30            registeredGuis = registeredGuis.OrderBy(g => g.Importance).ToList();
31        }
32
33        public Gui ImportantGui { get { return importantGui; } }
34
35        public void RemoveGui(Gui gui)
36        {
37            gui.IsActive = false;
38            if (importantGui == gui)
39            {
40                importantGui = null;
41                hasImportantGui = false;
42            }
43            else
44                registeredGuis.Remove(gui);
45        }
46
47        public void Update()
48        {
49            if (hasImportantGui)
50            {
51                importantGui.Update();
52                return;
53            }
54
55            for (int i = 0; i < registeredGuis.Count; i++)
56            {
57                Gui g = registeredGuis[i];
58                if (g.IsActive) g.Update();
59            }
60        }
61
62        public void Render(RenderHelper renderer)
63        {
64            if (registeredGuis.Count > 0)
65            {
66                foreach (Gui g in registeredGuis)
67                    if (g.IsActive) g.Render(renderer);
68            }
69
70            if (hasImportantGui)
71                importantGui.Render(renderer);
72        }
73    }
74}
Note: See TracBrowser for help on using the repository browser.