Esempio n. 1
0
 public UIImplements(IPrefabLoader prefabLoader, ISounder sounder, IFadeCreator fadeCreator,
                     ILoadingCreator loadingCreator, IToastCreator toastCreator)
 {
     PrefabLoader   = prefabLoader;
     Sounder        = sounder;
     FadeCreator    = fadeCreator;
     LoadingCreator = loadingCreator;
     ToastCreator   = toastCreator;
 }
Esempio n. 2
0
 private static void PlayClickSound(ISounder sounder, UISound se)
 {
     if (!string.IsNullOrEmpty(se.m_PlayName))
     {
         sounder.PlayClickSE(se.m_PlayName);
     }
     else
     {
         sounder.PlayDefaultClickSE();
     }
 }
Esempio n. 3
0
        public ISounder[] GetAllSounders()
        {
            ISounder[] sounders            = new ISounder[m_Sounders.Count];
            LinkedListNode <ISounder> node = m_Sounders.First;
            int index = 0;

            while (node != null)
            {
                sounders[index] = node.Value;
                ++index;
                node = node.Next;
            }
            return(sounders);
        }
Esempio n. 4
0
        private static bool OnClick(ISounder sounder, TouchEvent touch)
        {
            UISound se  = new UISound();
            bool    ret = touch.Listener.Part.OnClick(touch, se);

            // if (ret) touch.Listener.Part.TargetLayer?.OnClick(touch, se);

            if (!ret || sounder == null)
            {
                return(ret);
            }

            PlayClickSound(sounder, se);

            return(true);
        }
Esempio n. 5
0
        public void PlayAudio(object audioAsset, AudioInfo info)
        {
            if (info == null)
            {
                throw new ArgumentNullException("invalid audio info");
            }
            ISounder sounder = null;
            LinkedListNode <ISounder> node = m_Sounders.First;
            int sameCount = 0;

            while (node != null)
            {
                if (MaxSameAudioCount > 0 && node.Value.AudioAsset == audioAsset)
                {
                    ++sameCount;
                    if (sounder != null && node.Value.Time > sounder.Time)
                    {
                        sounder = node.Value;
                    }
                }
                if (!node.Value.Loop && node.Value.IsStopped)
                {
                    sounder = node.Value;
                    break;
                }
                node = node.Next;
            }

            if (sounder == null)
            {
                sounder = m_Creater.CreateSounder(SounderRoot);
                m_Sounders.AddLast(sounder);
            }

            sounder.Reset(audioAsset, info);
            sounder.Play();
        }
Esempio n. 6
0
		public void Implement(IPrefabLoader prefabLoader, ISounder sounder, IFadeCreator fadeCreator) {
			m_instance.m_implements = new UIImplements(prefabLoader, sounder, fadeCreator);
		}
Esempio n. 7
0
 public static void SetImplement(IPrefabLoader prefabLoader, ISounder sounder, IFadeCreator fadeCreator,
                                 ILoadingCreator loadingCreator, IToastCreator toastCreator)
 {
     Instance.m_Implements = new UIImplements(prefabLoader, sounder, fadeCreator, loadingCreator, toastCreator);
 }
Esempio n. 8
0
 public UIImplements(IPrefabLoader prefabLoader, ISounder sounder, IFadeCreator fadeCreator)
 {
     m_prefabLoader = prefabLoader;
     m_sounder      = sounder;
     m_fadeCreator  = fadeCreator;
 }
Esempio n. 9
0
        public void CallTouchEvents(int untouchableIndex, bool isScreenTouchable, ISounder sounder)
        {
            while (m_TouchEvents.Count > 0)
            {
                TouchEvent touch = m_TouchEvents.Dequeue();

                if (!CheckTouchable(untouchableIndex, isScreenTouchable, touch))
                {
                    continue;
                }

                bool ret = false;

                // Trueが帰ってきたらTargetLayerにも伝播
                // 一旦無し
                switch (touch.Type)
                {
                case EnumTouchType.Click:
                    ret = OnClick(sounder, touch);
                    break;

                case EnumTouchType.Down:
                    ret = touch.Listener.Part.OnTouchDown(touch);
                    // if (ret) touch.Listener.Part.TargetLayer?.OnTouchDown(touch);
                    break;

                case EnumTouchType.Up:
                    ret = touch.Listener.Part.OnTouchUp(touch);
                    // if (ret) touch.Listener.Part.TargetLayer?.OnTouchUp(touch);
                    break;

                case EnumTouchType.Drag:
                    ret = touch.Listener.Part.OnDrag(touch);
                    // if (ret) touch.Listener.Part.TargetLayer?.OnDrag(touch);
                    break;

                case EnumTouchType.BeginDrag:
                    ret = touch.Listener.Part.OnBeginDrag(touch);
                    // if (ret) touch.Listener.Part.TargetLayer?.OnBeginDrag(touch);
                    break;

                case EnumTouchType.EndDrag:
                    ret = touch.Listener.Part.OnEndDrag(touch);
                    // if (ret) touch.Listener.Part.TargetLayer?.OnEndDrag(touch);
                    break;

                case EnumTouchType.Drop:
                    ret = touch.Listener.Part.OnDrop(touch);
                    // if (ret) touch.Listener.Part.TargetLayer?.OnDrop(touch);
                    break;

                case EnumTouchType.None:
                    break;

                default: break;
                }

                if (!ret)
                {
                    continue;
                }

                m_TouchEvents.Clear();
                break;
            }
        }
Esempio n. 10
0
 public SounderPresenter(ISounder view, LVL lvl)
 {
     CurLVL             = lvl;
     _view              = view;
     view.SounderPaint += SounderPanel_Paint;
 }