public override ControllerResult Start(ControllerSettings settings) { var mainMenuResult = new AtomicReference <NextController>(NextController.MainMenu); var gameSettingsProvider = new AtomicReference <Func <GameSettings> >(); pages.InitializeComponents(window, mainMenuResult, gameSettingsProvider); mainScreen.InitializeMainScreen(window, MAIN_SCR_IMAGE); while (window.IsOpen() && mainMenuResult.Value == NextController.MainMenu) { window.DispatchEvents(); window.Clear(); window.Draw(mainScreen); window.Draw(pages.Active); window.Display(); } window.EnsureClosed(); return(new ControllerResult { Next = mainMenuResult.Value, Settings = gameSettingsProvider.Value?.Invoke() }); }
public GuiView(GameWindow window, ResourceManager resources, Map world, WorldView worldView) { this.abilitiesContainer = new AbilitiesContainer(resources, window); this.contextInfo = new ContextInfo(new Vector2f(window.Size.X - 400, window.Size.Y - 50), 350); this.model = world.Model; this.pageControl = new PageControl(); this.view = new View(window.DefaultView); this.world = world; this.worldView = worldView; pageControl.InitializeComponents(window, resources, world.TurnCycle); pageControl.Active.Add(abilitiesContainer); pageControl.Bus.Subscribe(window); window.MouseMoved += MouseMoved; world.ObjectSelectStateChanged += ObjectSelectStateChanged; }