Ejemplo n.º 1
0
        private void PreloadAudioAssetSuccess(object asset, object cookie)
        {
            AudioTypeVO audioTypeVO = (AudioTypeVO)cookie;

            this.AssignLoadedAudioClip(audioTypeVO, asset as AudioClip);
            Service.EventManager.SendEvent(EventId.PreloadedAudioSuccess, audioTypeVO);
        }
Ejemplo n.º 2
0
 private AudioData GetOrCreateAudioData(AudioTypeVO vo)
 {
     if (!this.loadedAudio.ContainsKey(vo))
     {
         this.loadedAudio[vo] = new AudioData();
     }
     return(this.loadedAudio[vo]);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
        private void AssignLoadedAudioClip(AudioTypeVO audioVO, AudioClip clip)
        {
            AudioData orCreateAudioData = this.GetOrCreateAudioData(audioVO);

            if (orCreateAudioData != null && clip != null)
            {
                orCreateAudioData.Clip = clip;
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
            }
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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));
        }
Ejemplo n.º 12
0
        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++;
                }
            }
        }
Ejemplo n.º 13
0
        public bool IsPlaying(AudioCategory category, string id)
        {
            AudioTypeVO audioTypeVO = this.lastPlayed[(int)category];

            return(this.audioSources[category].isPlaying && audioTypeVO != null && audioTypeVO.Uid == id);
        }
Ejemplo n.º 14
0
        private void PreloadAudioAssetFailure(object cookie)
        {
            AudioTypeVO cookie2 = (AudioTypeVO)cookie;

            Service.EventManager.SendEvent(EventId.PreloadedAudioFailure, cookie2);
        }
Ejemplo n.º 15
0
 public void QueueNextAudio(AudioTypeVO type)
 {
     this.nextType = type;
 }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        private bool IsPreloadable(AudioTypeVO vo)
        {
            AssetTypeVO optional = this.sdc.GetOptional <AssetTypeVO>("asset_" + vo.AssetName);

            return(optional != null && optional.Category == AssetCategory.PreloadStandard);
        }