/// <summary> /// Changes mode to the specified one and logs it on the console. /// </summary> /// <param name="modeType">The CECP mode type.</param> private void ChangeMode(CECPModeType modeType) { _textLogger.WriteLine($"{CECPConstants.EnginePrefix}: Mode changed to {modeType}."); var ficsModeFactory = new CECPModeFactory(); _cecpMode = ficsModeFactory.Create(modeType); _cecpMode.OnSendData += CECPMode_OnSendData; _cecpMode.OnChangeMode += CECPMode_OnChangeMode; }
/// <summary> /// Creates a new instance of the CECP mode specified in the parameter. /// </summary> /// <param name="type">The CECP mode.</param> /// <exception cref="CECPModeNotFoundException">Thrown when the factory cannot create CECP mode with the specified type (enum value not supported).</exception> /// <returns>The CECP mode instance.</returns> public CECPModeBase Create(CECPModeType type) { switch (type) { case CECPModeType.Init: return(new InitMode()); case CECPModeType.Game: return(new GameMode()); } throw new CECPModeNotFoundException(); }
/// <summary> /// Initializes a new instance of the <see cref="ChangeModeEventArgs"/> class. /// </summary> /// <param name="newModeType">The new FICS mode.</param> public ChangeModeEventArgs(CECPModeType newModeType) { NewModeType = newModeType; }
/// <summary> /// Changes mode to the specified one. /// </summary> /// <param name="newModeType">The new CECP mode.</param> public void ChangeMode(CECPModeType newModeType) { OnChangeMode?.Invoke(this, new ChangeModeEventArgs(newModeType)); }