Exemple #1
0
 private GameObject GetPrefab(RavenhillViewType viewType)
 {
     if (cachedPrefabs.ContainsKey(viewType))
     {
         return(cachedPrefabs[viewType]);
     }
     else
     {
         string path = GetPath(viewType);
         if (!string.IsNullOrEmpty(path))
         {
             GameObject prefab = Resources.Load <GameObject>(path);
             if (prefab != null)
             {
                 cachedPrefabs[viewType] = prefab;
             }
             else
             {
                 throw new ResourceFailedLoadException(path);
             }
             return(prefab);
         }
         else
         {
             throw new UnityException($"Not founded path for view type: {viewService}");
         }
     }
 }
Exemple #2
0
        public override GameObject ShowView(RavenhillViewType type, object data = null)
        {
            GameObject resultObject = null;

            if (openedViews.ContainsKey(type))
            {
                GameObject existingViewObj = openedViews[type];
                if (existingViewObj)
                {
                    existingViewObj.GetComponentInChildren <RavenhillBaseView>()?.Setup(data);
                    resultObject = existingViewObj;
                }
                else
                {
                    openedViews.Remove(type);
                    resultObject = CreatePrefabAndAddToScreen(type, data);
                    openedViews.Add(type, resultObject);
                }
            }
            else
            {
                resultObject = CreatePrefabAndAddToScreen(type, data);
                openedViews.Add(type, resultObject);
            }

            RavenhillEvents.OnViewAdded(type);
            return(resultObject);
        }
Exemple #3
0
        public override void RemoveView(RavenhillViewType viewType)
        {
            if (openedViews.ContainsKey(viewType))
            {
                GameObject instance = openedViews[viewType];
                openedViews.Remove(viewType);

                if (instance)
                {
                    RavenhillBaseView baseView = instance.GetComponentInChildren <RavenhillBaseView>();
                    baseView?.OnViewWillBeClosed();

                    if (baseView)
                    {
                        baseView.FadeOut();
                    }
                    else
                    {
                        GameObject.Destroy(instance);
                    }
                    lastViewRemovedTime = Time.time;
                    RavenhillEvents.OnViewRemoved(viewType);
                }
            }
        }
Exemple #4
0
        private GameObject CreatePrefabAndAddToScreen(RavenhillViewType viewType, object data = null)
        {
            GameObject        prefab   = GetPrefab(viewType);
            GameObject        instance = GameObject.Instantiate <GameObject>(prefab);
            RavenhillBaseView baseView = instance.GetComponentInChildren <RavenhillBaseView>();

            baseView?.Setup(data);
            ICanvasSerive canvasService = engine.GetService <ICanvasSerive>();

            canvasService?.Add(instance.transform);
            SetSibling(baseView);
            return(instance);
        }
Exemple #5
0
 public override GameObject GetView(RavenhillViewType viewType)
 {
     return(openedViews.GetOrDefault(viewType));
 }
Exemple #6
0
 public override bool ExistView(RavenhillViewType viewType)
 {
     return(openedViews.ContainsKey(viewType));
 }
Exemple #7
0
        private System.Collections.IEnumerator CorRemoveView(RavenhillViewType viewType, float delay)
        {
            yield return(new WaitForSeconds(delay));

            RemoveView(viewType);
        }
Exemple #8
0
 public override void RemoveView(RavenhillViewType viewType, float delay)
 {
     engine.StartCoroutine(CorRemoveView(viewType, delay));
 }
Exemple #9
0
 public abstract void RemoveView(RavenhillViewType viewType);
Exemple #10
0
 public abstract void ShowViewWithDelay(RavenhillViewType viewType, float delay, object data = null);
Exemple #11
0
 private void OnViewRemoved(RavenhillViewType viewType)
 {
     viewRemovedLastTime = Time.time;
 }
Exemple #12
0
        private System.Collections.IEnumerator CorShowViewWithDelay(RavenhillViewType type, float delay, object data)
        {
            yield return(new WaitForSeconds(delay));

            ShowView(type, data);
        }
Exemple #13
0
 public override void ShowViewWithDelay(RavenhillViewType viewType, float delay, object data = null)
 {
     Debug.Log($"SHow view {viewType} with delay {delay}");
     engine.StartCoroutine(CorShowViewWithDelay(viewType, delay, data));
 }
Exemple #14
0
 public abstract GameObject GetView(RavenhillViewType viewType);
Exemple #15
0
 public abstract void RemoveView(RavenhillViewType viewType, float delay);
Exemple #16
0
 public abstract void ShowViewWithCondition(RavenhillViewType viewType, System.Func <bool> predicate, object data = null);
Exemple #17
0
 public string GetPath(RavenhillViewType viewType)
 {
     return(prefabPath.ContainsKey(viewType) ? prefabPath[viewType] : string.Empty);
 }
 private void OnViewAdded(RavenhillViewType viewType)
 {
     isStopped = viewService.hasModals;
 }
Exemple #19
0
 public override void ShowViewWithCondition(RavenhillViewType viewType, Func <bool> predicate, object data = null)
 {
     engine.StartCoroutine(CorShowViewWithCondition(viewType, predicate, data));
 }
Exemple #20
0
 public abstract bool ExistView(RavenhillViewType viewType);
Exemple #21
0
 public static void OnViewRemoved(RavenhillViewType type)
 {
     ViewRemoved?.Invoke(type);
 }
Exemple #22
0
        private System.Collections.IEnumerator CorShowViewWithCondition(RavenhillViewType viewType, Func <bool> predicate, object data = null)
        {
            yield return(new WaitUntil(predicate));

            ShowView(viewType, data);
        }
Exemple #23
0
 private void OnViewRemoved(RavenhillViewType viewType)
 {
     lastViewRemoveTime = Time.time;
 }
Exemple #24
0
 public abstract GameObject ShowView(RavenhillViewType viewType, object data = null);