public void RemoveScreen(Data.UI.Interfaces.IGameScreen screen) { _gameScreens.Remove(screen); if (screen is IDrawable) { var dScreen = screen as IDrawable; dScreen.UnloadContent(); if (dScreen.CoversOthers) { foreach (IDrawable oScreen in _gameScreens) { oScreen.IsCovered = false; oScreen.OnTop = false; } if (_gameScreens.Last.Value is IDrawable) { (_gameScreens.Last.Value as IDrawable).OnTop = true; } } } if (screen is IInputReciever) { if (_gameScreens.Count > 0) { if (_gameScreens.Last.Value is IInputReciever) { (_gameScreens.Last.Value as IInputReciever).HasFocus = true; } } } }
public LoadingScreen(Action loadMethod, Data.UI.Interfaces.IGameScreen next) : base(true,false) { multiThreaded = false; fadeBlack = false; _loadMethod = loadMethod; nextScreen = next; }
public LoadingScreen(Action loadMethod, Data.UI.Interfaces.IGameScreen next) : base(true) { multiThreaded = false; fadeBlack = false; _loadMethod = loadMethod; nextScreen = next; }
public void AddScreenLoad(Data.UI.Interfaces.IGameScreen screen) { if (!_ready) { throw new Data.Exceptions.EngineException("System not ready", true); } screen.StateManager = this; var loadingScreen = new SystemScreens.LoadingScreen(screen.LoadContent, screen); AddScreen(loadingScreen, false); }
public LoadingScreen(Action loadMethod, Data.UI.Interfaces.IGameScreen next, TimedAction updateMethod, TimedAction drawMethod) : base(true) { multiThreaded = true; nextScreen = next; _loadMethod = loadMethod; _drawMethod = drawMethod; _updateMathod = updateMethod; }
public LoadingScreen(Action loadMethod, Data.UI.Interfaces.IGameScreen next, TimedAction updateMethod, TimedAction drawMethod) : base(true, false) { multiThreaded = true; nextScreen = next; _loadMethod = loadMethod; _drawMethod = drawMethod; _updateMathod = updateMethod; }
public void AddScreen(Data.UI.Interfaces.IGameScreen screen, bool loaded = false) { screen.StateManager = this; if (!loaded) { screen.Initialize(); } if (screen is IDrawable) { var dScreen = screen as IDrawable; if (!loaded) { dScreen.LoadContent(); } if (dScreen.CoversOthers) { foreach (IDrawable oScreen in _gameScreens) { oScreen.IsCovered = true; oScreen.OnTop = false; } dScreen.OnTop = true; dScreen.IsCovered = false; } } if (screen is IInputReciever) { var iScreen = screen as IInputReciever; var inputScreens = from s in _gameScreens where s is IInputReciever select s; foreach (IInputReciever oScreen in inputScreens) { oScreen.HasFocus = false; } InputManager.RegisterScreen(iScreen); iScreen.HasFocus = true; } if (_gameScreens.Count > 0 && _gameScreens.Last.Value is SystemScreens.LoadingScreen) { _gameScreens.AddBefore(_gameScreens.Last, screen); } else { _gameScreens.AddLast(screen); } }
public void RemoveScreen(Data.UI.Interfaces.IGameScreen screen) { screen.UnloadContent(); _gameScreens.Remove(screen); if (_gameScreens.Count > 1) { if (screen.CoversOthers) { var oldScreen = _gameScreens.Last; if (_gameScreens.Count > 1) { do { if (oldScreen.Value.CoversOthers) { oldScreen.Value.IsCovered = false; break; } oldScreen = oldScreen.Previous; } while (oldScreen.Previous != null); } } if (screen.HasFocus) { var oldScreen = _gameScreens.Last; do { if (oldScreen.Value.GetsInput) { oldScreen.Value.HasFocus = true; break; } oldScreen = oldScreen.Previous; } while (oldScreen.Previous != null); } } else { var temp = _gameScreens.First; temp.Value.IsCovered = false; if (temp.Value.GetsInput) { temp.Value.HasFocus = true; } } }
public void AddScreen(Data.UI.Interfaces.IGameScreen screen, bool loaded = false) { screen.StateManager = this; if (_ready && !loaded) { screen.Initialize(); screen.LoadContent(); } if (screen.GetsInput) { screen.HasFocus = true; InputManager.RegisterScreen(screen); if (_gameScreens.Count > 0) { var oldScreen = _gameScreens.First; do { oldScreen.Value.HasFocus = false; oldScreen = oldScreen.Next; } while (oldScreen != null); } } if (screen.CoversOthers) { screen.HasFocus = true; if (_gameScreens.Count > 0) { var oldScreen = _gameScreens.First; do { oldScreen.Value.IsCovered = true; oldScreen = oldScreen.Next; } while (oldScreen != null); } _gameScreens.AddLast(screen); } else { _gameScreens.AddBefore(_gameScreens.Last, screen); } }
/*public static void RegisterPlayerNode(Objects.GameObjects.Player player) * { * player.RegisterControlReference(_controls); * }*/ public static void RegisterScreen(Data.UI.Interfaces.IGameScreen screen) { screen.ControlReference = _controls; }