/// <summary> /// Обновление данных менеджера. Предназначен для вызова каждый кадр в модели. /// </summary> public void ManagerUpdateStep() { //обновление состояния проигрывания звуковых эффектов for (var i = 0; i < PlayingSfx.Count; i++) { AppSoundAsset appSoundAsset = PlayingSfx[i]; //используем запросы для получения данных SoundManagerRequestB requestBIsPlaying = new SoundManagerRequestB(ESoundManagerRequestType.IsSoundPlaying, appSoundAsset); AppSoundManagerMediator.Request(requestBIsPlaying, AppSoundManagerMediator.ViewSoundManagerColleague); SoundManagerRequestB requestBIsPaused = new SoundManagerRequestB(ESoundManagerRequestType.IsSoundPaused, appSoundAsset); AppSoundManagerMediator.Request(requestBIsPaused, AppSoundManagerMediator.ViewSoundManagerColleague); if (!requestBIsPlaying.RequestDataBool && !requestBIsPaused.RequestDataBool) { PlayingSfx.Remove(appSoundAsset); i--; } } }
/// <summary> /// Стандартный конструктор /// </summary> /// <param name="parMessageType">Тип сообшения</param> /// <param name="parSoundAsset">Связанный звуковой ресурс</param> /// <param name="parAmFloat">Параметр сообщения float</param> public SoundManagerMessageF(ESoundManagerMessageType parMessageType, AppSoundAsset parSoundAsset, float parAmFloat) : base(parMessageType, parSoundAsset) { ParamFloat = parAmFloat; }
/// <summary> /// Стандартный конструктор /// </summary> /// <param name="parRequestType">Тип запроса</param> /// <param name="parSoundAsset">Связанный звуковой ресурс</param> protected SoundManagerRequest(ESoundManagerRequestType parRequestType, AppSoundAsset parSoundAsset) { RequestType = parRequestType; SoundAsset = parSoundAsset; }
/// <summary> /// Стандартный конструктор /// </summary> /// <param name="parMessageType">Тип сообшения</param> /// <param name="parSoundAsset">Связанный звуковой ресурс</param> /// <param name="parAmBool">Параметр сообщения bool</param> public SoundManagerMessageB(ESoundManagerMessageType parMessageType, AppSoundAsset parSoundAsset, bool parAmBool) : base( parMessageType, parSoundAsset) { ParamBool = parAmBool; }
/// <summary> /// Стандартный конструктор /// </summary> /// <param name="parRequestType">Тип запроса</param> /// <param name="parSoundAsset">Связанный звуковой ресурс</param> public SoundManagerRequestB(ESoundManagerRequestType parRequestType, AppSoundAsset parSoundAsset) : base(parRequestType, parSoundAsset) { }
/// <summary> /// Стандартный конструктор /// </summary> /// <param name="parMessageType">Тип сообшения</param> /// <param name="parSoundAsset">Связанный звуковой ресурс</param> public SoundManagerMessage(ESoundManagerMessageType parMessageType, AppSoundAsset parSoundAsset) { MessageType = parMessageType; SoundAsset = parSoundAsset; }
/// <summary> /// Вспомогательный метод для проверки приостановки воспроизведения аудио ресурса /// </summary> /// <param name="parAppSoundAsset">Целевой аудио ресурс для проверки</param> /// <returns>True, если воспроизведение приостановлено</returns> public bool IsSoundPaused(AppSoundAsset parAppSoundAsset) { SoundManagerRequestB request = new SoundManagerRequestB(ESoundManagerRequestType.IsSoundPaused, parAppSoundAsset); return(request.RequestDataBool); }
/// <summary> /// Вспомогательный метод для остановки воспроизведения аудио ресурса /// </summary> /// <param name="parAppSoundAsset">Целевой аудио ресурс</param> public void StopSound(AppSoundAsset parAppSoundAsset) { AppSoundManagerMediator.Send(new SoundManagerMessage(ESoundManagerMessageType.SoundStop, parAppSoundAsset), AppSoundManagerMediator.ViewSoundManagerColleague); }
/// <summary> /// Стандартный конструктор /// </summary> /// <param name="parLinkedAppSoundAsset">Связанный аудио-ресурс</param> /// <param name="parLinkedMusicAssetDefinition">Тип музыкальной композиции</param> public PlayingBackgroundMusicData(AppSoundAsset parLinkedAppSoundAsset, EAppMusicAssets parLinkedMusicAssetDefinition) { LinkedAppSoundAsset = parLinkedAppSoundAsset; LinkedMusicAssetDefinition = parLinkedMusicAssetDefinition; }