public MainMenuHandler( IScreenNavigation screenNavigation, IConnectionManager connectionManager) { _screenNavigation = screenNavigation; _connectionManager = connectionManager; }
public static void RunApplication( IScreenNavigation screenNavigation, IScreenProvider screenProvider, CancellationToken cancellationToken) { screenNavigation.ScreenObservable.Subscribe(screen => { // TODO: Refactor to IObservable<IChangeDetector>. var cd = screenProvider.GetCurrentScreen()?.ChangeDetector; cd?.NotifyChanged(); }); while (true) { if (cancellationToken.IsCancellationRequested) { return; } if (screenNavigation.Screen == GameScreen.Exit) { return; } var screen = screenProvider.GetCurrentScreen(); if (screen == null) { continue; } var inputHandler = screen.InputHandler; var cd = screen.ChangeDetector; var key = Console.ReadKey(true); switch (key.Key) { case ConsoleKey.Escape: inputHandler.Escape(); break; case ConsoleKey.Backspace: inputHandler.Backspace(); break; case ConsoleKey.Tab: inputHandler.Tab(); break; default: inputHandler.Type(key.KeyChar); break; } // A hack to redraw the screen every time a key is pressed (to highlight Typers). cd.NotifyChanged(); } }
public MainMenuInputHandler( ITyperPool typerPool, ComponentPool componentPool, MainMenuState state, IScreenNavigation screenNavigation, IConnectionManager connectionManager) : base(typerPool, componentPool) { _screenNavigation = screenNavigation; _connectionManager = connectionManager; _state = state; }
public CharacterCreationInputHandler( ITyperPool typerPool, ComponentPool componentPool, CharacterCreationState state, IScreenNavigation screenNavigation, ICharactersClient charactersClient) : base(typerPool, componentPool) { _screenNavigation = screenNavigation; _charactersClient = charactersClient; _state = state; }
public ScreenHandlerProvider( IScreenNavigation screenNavigation, IScreenHandler mainMenuScreen, IScreenHandler characterCreationScreen, IScreenHandler dialogModal) { _screenNavigation = screenNavigation; _mainMenuScreen = mainMenuScreen; _characterCreationScreen = characterCreationScreen; _dialogModal = dialogModal; }
public StatePrinter( object printLock, IScreenNavigation screenNavigation, IOutput output, IObservable <TState> stateObservable, IPrinter <TState> statePrinter, GameScreen screen) // TODO: Make sure only one StatePrinter exists per GameScreen. { _printLock = printLock; _screenNavigation = screenNavigation; _output = output; _stateObservable = stateObservable; _statePrinter = statePrinter; _screen = screen; Subscribe(); }
public CharacterCreationHandler(IScreenNavigation screenNavigation) { _screenNavigation = screenNavigation; }