private void PreloadAudioAssetSuccess(object asset, object cookie) { AudioTypeVO audioTypeVO = (AudioTypeVO)cookie; this.AssignLoadedAudioClip(audioTypeVO, asset as AudioClip); Service.EventManager.SendEvent(EventId.PreloadedAudioSuccess, audioTypeVO); }
private AudioData GetOrCreateAudioData(AudioTypeVO vo) { if (!this.loadedAudio.ContainsKey(vo)) { this.loadedAudio[vo] = new AudioData(); } return(this.loadedAudio[vo]); }
private AudioData GetAudioData(AudioTypeVO vo) { if (this.loadedAudio.ContainsKey(vo)) { return(this.loadedAudio[vo]); } Service.Logger.Warn("AudioData for " + vo.Uid + " does not exist."); return(null); }
private void AssignLoadedAudioClip(AudioTypeVO audioVO, AudioClip clip) { AudioData orCreateAudioData = this.GetOrCreateAudioData(audioVO); if (orCreateAudioData != null && clip != null) { orCreateAudioData.Clip = clip; } }
private void OnDemandAudioAssetSuccess(object asset, object cookie) { AudioTypeVO audioVO = (AudioTypeVO)cookie; AudioClip clip = asset as AudioClip; this.AssignLoadedAudioClip(audioVO, clip); float num = this.PlayAudioClip(audioVO); Service.EventManager.SendEvent(EventId.PlayedLoadedOnDemandAudio, num); }
private void UnloadLastPlayed(AudioCategory category) { AudioTypeVO audioTypeVO = this.lastPlayed[(int)category]; if (audioTypeVO != null) { AudioData audioData = this.GetAudioData(audioTypeVO); this.UnloadAudio(audioData); this.loadedAudio.Remove(audioTypeVO); this.lastPlayed[(int)category] = null; } }
public void FadeOutComplete() { AudioManager audioManager = Service.Get <AudioManager>(); this.UnregisterFrameTimeObserver(); audioManager.FadeOutComplete(this.source); if (this.nextType != null) { audioManager.PlayAudio(this.nextType.AssetName); } this.source = null; this.nextType = null; }
private float PlayAudioClip(AudioTypeVO audioVO) { if (audioVO.Category != AudioCategory.Effect) { AudioTypeVO audioTypeVO = this.lastPlayed[(int)audioVO.Category]; if (audioTypeVO != audioVO) { this.UnloadLastPlayed(audioVO.Category); } else if (this.IsPlaying(audioVO.Category)) { return(0f); } } AudioCategory category = audioVO.Category; AudioData audioData = this.GetAudioData(audioVO); if (audioData == null) { return(0f); } this.lastPlayed[(int)audioVO.Category] = audioVO; AudioSource audioSource = this.audioSources[category]; switch (category) { case AudioCategory.Dialogue: case AudioCategory.Music: case AudioCategory.Ambience: if (this.fadeOutDictionary.ContainsKey(audioSource)) { this.fadeOutDictionary[audioSource].QueueNextAudio(audioVO); } else { audioSource.clip = audioData.Clip; audioSource.loop = audioVO.Loop; audioSource.Play(); } goto IL_F5; } audioSource.PlayOneShot(audioData.Clip); IL_F5: return(audioData.Clip.length); }
private bool CanLoadAudio(string id) { if (string.IsNullOrEmpty(id)) { return(false); } AudioTypeVO optional = this.sdc.GetOptional <AudioTypeVO>(id); if (optional == null) { this.logger.WarnFormat("Audio key not found: {0}", new object[] { id }); return(false); } return(!this.audioSources[optional.Category].mute); }
public bool LoadAudio(string id) { if (!this.CanLoadAudio(id)) { return(false); } AudioTypeVO optional = this.sdc.GetOptional <AudioTypeVO>(id); AudioData orCreateAudioData = this.GetOrCreateAudioData(optional); if (orCreateAudioData != null && orCreateAudioData.Clip == null && orCreateAudioData.Handle == AssetHandle.Invalid) { AssetHandle handle = AssetHandle.Invalid; Service.AssetManager.Load(ref handle, optional.AssetName, new AssetSuccessDelegate(this.PreloadAudioAssetSuccess), new AssetFailureDelegate(this.PreloadAudioAssetFailure), optional); orCreateAudioData.Handle = handle; return(true); } return(false); }
public float PlayAudio(string id) { if (!this.CanLoadAudio(id)) { return(0f); } AudioTypeVO optional = this.sdc.GetOptional <AudioTypeVO>(id); AudioData orCreateAudioData = this.GetOrCreateAudioData(optional); if (orCreateAudioData != null && orCreateAudioData.Clip == null) { if (orCreateAudioData.Handle == AssetHandle.Invalid) { AssetHandle handle = AssetHandle.Invalid; Service.AssetManager.Load(ref handle, optional.AssetName, new AssetSuccessDelegate(this.OnDemandAudioAssetSuccess), null, optional); orCreateAudioData.Handle = handle; } return(-1f); } return(this.PlayAudioClip(optional)); }
private void PreloadAudioAssets(AssetsCompleteDelegate onComplete) { List <string> list = new List <string>(); List <object> list2 = new List <object>(); List <AssetHandle> list3 = new List <AssetHandle>(); foreach (AudioTypeVO current in this.sdc.GetAll <AudioTypeVO>()) { if (this.IsPreloadable(current) && !this.audioSources[current.Category].mute) { list.Add(current.AssetName); list2.Add(current); list3.Add(AssetHandle.Invalid); } } if (list.Count == 0) { if (onComplete != null) { onComplete(null); return; } } else { Service.Get <AssetManager>().MultiLoad(list3, list, new AssetSuccessDelegate(this.PreloadAudioAssetSuccess), null, list2, onComplete, null); int i = 0; int count = list3.Count; while (i < count) { AudioTypeVO vo = (AudioTypeVO)list2[i]; AudioData orCreateAudioData = this.GetOrCreateAudioData(vo); orCreateAudioData.Handle = list3[i]; i++; } } }
public bool IsPlaying(AudioCategory category, string id) { AudioTypeVO audioTypeVO = this.lastPlayed[(int)category]; return(this.audioSources[category].isPlaying && audioTypeVO != null && audioTypeVO.Uid == id); }
private void PreloadAudioAssetFailure(object cookie) { AudioTypeVO cookie2 = (AudioTypeVO)cookie; Service.EventManager.SendEvent(EventId.PreloadedAudioFailure, cookie2); }
public void QueueNextAudio(AudioTypeVO type) { this.nextType = type; }
public EatResponse OnEvent(EventId id, object cookie) { if (id != EventId.PreloadedAudioSuccess && id != EventId.PreloadedAudioFailure) { switch (id) { case EventId.WarBoardParticipantBuildingSelected: { GameObject gameObject = (GameObject)cookie; SquadWarParticipantState participantState = Service.Get <WarBoardBuildingController>().GetParticipantState(gameObject); bool flag = this.flyout != null && this.flyout.IsShowingParticipantOptions(participantState); if (flag) { Service.Get <WarBoardBuildingController>().DeselectBuilding(); } else if (this.flyout != null) { this.flyout.ShowParticipantOptions(gameObject, participantState); } break; } case EventId.WarBoardBuffBaseBuildingSelected: { UXCheckbox uXCheckbox = (UXCheckbox)cookie; SquadWarBuffBaseData data = (SquadWarBuffBaseData)uXCheckbox.Tag; bool flag2 = this.flyout != null && this.flyout.IsShowingBuffBaseOptions(data); if (flag2) { if (this.flyout != null) { this.flyout.Hide(); } } else { if (this.flyout != null) { this.flyout.ShowBuffBaseOptions(uXCheckbox, data); } Service.Get <WarBoardBuildingController>().DeselectBuilding(); } break; } case EventId.WarBoardBuildingDeselected: { GameObject building = (GameObject)cookie; SquadWarParticipantState participantState2 = Service.Get <WarBoardBuildingController>().GetParticipantState(building); if ((participantState2 == null || this.flyout.IsShowingParticipantOptions(participantState2)) && this.flyout != null) { this.flyout.Hide(); } break; } } } else { AudioTypeVO audioTypeVO = (AudioTypeVO)cookie; if (audioTypeVO != null && audioTypeVO.Uid == "sfx_ui_squadwar_warboard_open") { this.WarBoardAudioLoadFinished(); Service.Get <EventManager>().UnregisterObserver(this, EventId.PreloadedAudioSuccess); Service.Get <EventManager>().UnregisterObserver(this, EventId.PreloadedAudioFailure); } } return(EatResponse.NotEaten); }
private bool IsPreloadable(AudioTypeVO vo) { AssetTypeVO optional = this.sdc.GetOptional <AssetTypeVO>("asset_" + vo.AssetName); return(optional != null && optional.Category == AssetCategory.PreloadStandard); }