/*set layer position
     * */
    private void UIScreensLayerPositions()
    {
        //check if on of object is null
        if (_currentUIScreen == null && _nextUIScreen == null)
        {
            LoggingManager.AddErrorToLog("Try show UI screen animation without nex and current screen");
            return;
        }

        if (_currentUIScreen == null)
        {
            _nextUIScreen.transform.SetSiblingIndex(0);
            return;
        }


        if (_nextUIScreen == null)
        {
            _currentUIScreen.transform.SetSiblingIndex(0);
            return;
        }

        //if next screen withOut animation so position
        if (_animtionSettings.staticNextUIScreen)
        {
            _currentUIScreen.transform.SetSiblingIndex(1);
            _nextUIScreen.transform.SetSiblingIndex(0);
        }
        else
        {
            _currentUIScreen.transform.SetSiblingIndex(0);
            _nextUIScreen.transform.SetSiblingIndex(1);
        }
    }
    /*Logic of animation
     * */
    private void SetAnimationParams()
    {
        switch (_animtionSettings.uiScreenAnimationType)
        {
        case EnumUIScreenAnimationType.withOut:
            WithOutAnimation();
            break;

        case EnumUIScreenAnimationType.slideBottomTop:
            SlideBottomTop();
            break;

        case EnumUIScreenAnimationType.slideTopBottom:
            SlideTopBottom();
            break;

        case EnumUIScreenAnimationType.slideLeftRight:
            SlideLeftRight();
            break;

        case EnumUIScreenAnimationType.slideRightLeft:
            SlideRightLeft();
            break;

        default:
            LoggingManager.AddErrorToLog(_animtionSettings.uiScreenAnimationType + "Doesn't realesed in UIAinimationManager");
            break;
        }
    }
    public void InitCollaction <T>(string staticFileName) where T : DataVO
    {
        StartInitialization();
        T traceValue;

        LoggingManager.Log(typeof(T) + " Start initialization");
        _collactionName = staticFileName;
        StaticResourcesXmlLoader <T> container = StaticResourcesXmlLoader <T> .LoadContainer(UrlXmls.staticData + staticFileName);

        _collaction     = new Dictionary <string, IStaticData>();
        _listOfAllNames = new List <string>();
        foreach (T data in container.dataList)
        {
            if (!_collaction.ContainsKey(data.Name))
            {
                _collaction.Add(data.Name, data);
                _listOfAllNames.Add(data.Name);
            }
            else
            {
                LoggingManager.AddErrorToLog("Repeated static data element with id " + data.Name);
            }
        }
        LoggingManager.Log(typeof(T) + " Finish initialization");
        _initializationStatus = EnumInitializationStatus.initializated;
    }
Esempio n. 4
0
    //set animation setting by uiMenuAnimationType
    private void SetAnimationSettings()
    {
        _tween.SetAnimatioDuration(_animetionSettings.duration);

        switch (_animetionSettings.uiMenuAnimationType)
        {
        case EnumUIMenuAnimationType.alpha:
            _tween.SetFadeStartEndValues(0, 1);
            break;

        case EnumUIMenuAnimationType.slideLeftRight:
            _tween.SetAnimationPosition(new Vector2(-CurrentObjectWidth, 0), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve);
            break;

        case EnumUIMenuAnimationType.slideRightLeft:
            _tween.SetAnimationPosition(new Vector2(CurrentObjectWidth, 0), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve);
            break;

        case EnumUIMenuAnimationType.slideBottomTop:
            _tween.SetAnimationPosition(new Vector2(0, -CurrentObjectHeight), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve);
            break;

        case EnumUIMenuAnimationType.slideTopBottom:
            _tween.SetAnimationPosition(new Vector2(0, CurrentObjectHeight), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve);
            break;

        default:
            LoggingManager.AddErrorToLog("Doesnt release next animation type in UI menu " + _animetionSettings.uiMenuAnimationType.ToString());
            break;
        }
    }
Esempio n. 5
0
    private IEnumerator CheckOfInitializateAllScreens()
    {
        while (true)
        {
            foreach (IInitilizationProcess pair in _uiScreens.Values)
            {
                if (pair.initializationStatus == EnumInitializationStatus.initializationError)
                {
                    LoggingManager.AddErrorToLog("Problem with " + pair.ClassNameInInitialization);
                    _initializationStatus = EnumInitializationStatus.initializationError;
                    yield break;
                }

                if (!pair.allInitializated)
                {
                    yield return(null);
                }
            }

            if (MainInitializationProcess.Instance.FirstScreen != EnumUIScreenID.withOutName)
            {
                ShowScreenByID(MainInitializationProcess.Instance.FirstScreen);
            }

            _initializationStatus = EnumInitializationStatus.initializated;
            yield break;
        }
        yield break;
    }
Esempio n. 6
0
    public void StartInitialization()
    {
        _initializationStatus = EnumInitializationStatus.inProgress;

        //get game obgect by his tag, where must be all ui screens
        GameObject uiScreenContainer = GameObject.FindGameObjectWithTag(TagNames.TAG_UI_SCREEN_CONTAINER);

        if (uiScreenContainer == null)
        {
            LoggingManager.AddErrorToLog("Didn't found game object by tag " + TagNames.TAG_UI_SCREEN_CONTAINER);
            _initializationStatus = EnumInitializationStatus.initializationError;
            return;
        }

        Dictionary <EnumUIScreenID, string> screenList = GetScreenList();

        //add all screens to dictionary by his id
        _uiScreens = new Dictionary <EnumUIScreenID, IUIScreenController>();
        foreach (KeyValuePair <EnumUIScreenID, string> pair in screenList)
        {
            if (!_uiScreens.ContainsKey(pair.Key))
            {
                _uiScreens.Add(pair.Key, PrefabCreatorManager.Instance.InstanceComponent <IUIScreenController>(pair.Value, uiScreenContainer));
                _uiScreens[pair.Key].SetDefaulStartPosition();
            }
            else
            {
                LoggingManager.AddErrorToLog("Found repeat screen id " + pair.Key);
            }
        }

        StartCoroutine(CheckOfInitializateAllScreens());
    }
Esempio n. 7
0
    /// <summary>
    /// remove current screen from stack and show preview screen
    /// </summary>
    public void ShowPreviousScreen()
    {
        //if showing/hiding animation isnt finishd
        if (UIScreenAnimationManager.Instance.isAnimating)
        {
            return;
        }

        if (_screenStack.Count == 0)
        {
            LoggingManager.AddErrorToLog("Try return to preview screen, but screen stack is empty");
            return;
        }
        IUIScreenNavigationController previousScreenNavigationController = _screenStack[_screenStack.Count - 1];

        //remove last screen it must be curren opened screen
        _screenStack.RemoveAt(_screenStack.Count - 1);

        if (_screenStack.Count == 0)
        {
            //go to main screen
            ShowNavigationOfPreviousScreen(_uiScreens[_finishScreen], previousScreenNavigationController.AnimationSettings, null);
        }
        else
        {
            //show preview screen from stack
            ShowNavigationOfPreviousScreen(_uiScreens[_screenStack[_screenStack.Count - 1].ScreenID], previousScreenNavigationController.AnimationSettings, previousScreenNavigationController.Data);
        }
    }
 /**
  * Logic
  * */
 public IStaticData GetDataById(string name)
 {
     if (_collaction.ContainsKey(name))
     {
         return(_collaction[name]);
     }
     LoggingManager.AddErrorToLog("Did't found data with id " + name + " in collection " + _collactionName);
     return((IStaticData) new object());
 }
Esempio n. 9
0
 /// <summary>
 /// Get Collection data by static type
 /// </summary>
 /// <param name="type">Static type</param>
 /// <returns>Static data</returns>
 public CollectionOfData GetCollectionByType(EnumStaticDataType type)
 {
     if (!_allStaticData.ContainsKey(type))
     {
         LoggingManager.AddErrorToLog("Try get static collection by type " + type.ToString());
         return(null);
     }
     return(_allStaticData[type]);
 }
Esempio n. 10
0
    //return component from created prefab
    public CMP InstanceComponent <CMP>(string prefabUrl, GameObject container = null, EnumPositioning positioning = EnumPositioning.withOut, Vector3 pos = default(Vector3)) where CMP : class
    {
        CMP returnClass = InstanceOfPrefab(prefabUrl, container, positioning, pos).GetComponent(typeof(CMP)) as CMP;

        if (returnClass == null)
        {
            LoggingManager.AddErrorToLog("Didnt found component " + typeof(CMP) + " in prefab " + prefabUrl);
        }
        return(returnClass);
    }
    protected virtual T GetDataProvider <T>() where T : class
    {
        T dataProvider = _source.GetComponent <T>();

        if (dataProvider == null)
        {
            LoggingManager.AddErrorToLog("Source must implement the data provider interface!");
        }
        return(dataProvider);
    }
Esempio n. 12
0
    //hide menu
    public void HideMenu(EnumUIMenuID menuID)
    {
        if (!_uiMenus.ContainsKey(menuID))
        {
            LoggingManager.AddErrorToLog("Try hide, but Didnt found menu " + menuID.ToString());
            return;
        }

        _uiMenus[menuID].HideAnimation();
    }
Esempio n. 13
0
 public TransmissionData GetTransmissionDataByIndex(int index)
 {
     for (int i = 0; i < transmissionList.Count; i++)
     {
         if (transmissionList[i].index == index)
         {
             return(transmissionList[i]);
         }
     }
     LoggingManager.AddErrorToLog("Didn found " + index + " transmission");
     return(transmissionList[0]);
 }
Esempio n. 14
0
 public static Sprite LoadSprite(string url)
 {
     if (!_imagesPool.ContainsKey(url))
     {
         _imagesPool[url] = Resources.Load <Sprite>(url);
     }
     if (_imagesPool[url] == null)
     {
         LoggingManager.AddErrorToLog("Didnt found image " + url);
     }
     return(_imagesPool[url]);
 }
Esempio n. 15
0
 /// <summary>
 /// get static element by his unical name
 /// </summary>
 /// <param name="name">unicel name of Statis Data</param>
 /// <returns>element VO Data</returns>
 public IStaticData GetStaticDataByName(string name)
 {
     foreach (CollectionOfData collection in _allStaticData.Values)
     {
         if (collection.List.IndexOf(name) != -1)
         {
             return(collection.Collaction[name]);
         }
     }
     LoggingManager.AddErrorToLog("Didnt found " + name + " in static data");
     return(null);
 }
 public void SetDefaulStartPosition()
 {
     _baseRectTransform = gameObject.GetComponent <RectTransform>();
     if (_baseRectTransform == null)
     {
         LoggingManager.AddErrorToLog("Didn't found RectTransform in screen " + screenID.ToString());
     }
     else
     {
         _baseRectTransform.offsetMin = new Vector3(0, 0, 0);
         _baseRectTransform.offsetMax = new Vector3(0, 0, 0);
     }
 }
Esempio n. 17
0
    /* Logic
     * */
    // show menu animation
    public void ShowMenu(EnumUIMenuID menuID, object data = null)
    {
        if (!_uiMenus.ContainsKey(menuID))
        {
            LoggingManager.AddErrorToLog("Try show, but Didnt found menu " + menuID.ToString());
            return;
        }
        if (data != null)
        {
            _uiMenus[menuID].Data = data;
        }

        _uiMenus[menuID].ShowAnimation();
    }
Esempio n. 18
0
 protected virtual void FindGamePlayController()
 {
     _gamePlayElementController = gameObject.GetComponent <GamePlayController>();
     if (_gamePlayElementController == null)
     {
         _gamePlayElementController = gameObject.GetComponentInParent <GamePlayController>();
     }
     if (_gamePlayElementController == null)
     {
         LoggingManager.AddErrorToLog("Didt found gamePlay Element Controller");
     }
     _gamePlayElementController.initStaticData += InitStaticData;
     InitStaticData();
 }
    public static StaticResourcesXmlLoader <T> LoadContainer(string xmlUrls)
    {
        TextAsset _xml = Resources.Load <TextAsset>(xmlUrls);

        if (_xml == null)
        {
            LoggingManager.AddErrorToLog("Didnt load xml " + xmlUrls);
        }
        StringReader  reader     = new StringReader(_xml.text);
        XmlSerializer serializer = new XmlSerializer(typeof(StaticResourcesXmlLoader <T>));
        StaticResourcesXmlLoader <T> container = serializer.Deserialize(reader) as StaticResourcesXmlLoader <T>;

        reader.Close();
        return(container);
    }
Esempio n. 20
0
    //creat prefab
    public GameObject InstanceOfPrefab(string prefabUrl, GameObject container = null, EnumPositioning positioning = EnumPositioning.withOut, Vector3 pos = default(Vector3))
    {
        //try to load prefab from resources folder
        if (!_loadedGameObjectsPool.ContainsKey(prefabUrl))
        {
            //save loaded prefab in pool
            _loadedGameObjectsPool[prefabUrl] = Resources.Load(prefabUrl, typeof(GameObject)) as GameObject;
        }

        GameObject go = _loadedGameObjectsPool[prefabUrl];

        if (go == null)
        {
            LoggingManager.AddErrorToLog("Didnt found prefab " + prefabUrl);
        }
        //try get RecycleGameObjectController, if it, so get it frome pool
        var        recycledScript = go.GetComponent <RecycleGameObjectManager>();
        GameObject instance       = null;

        if (recycledScript != null)
        {
            var pool = GetObjectPool(recycledScript);
            instance = pool.NextObject().gameObject;
        }
        else
        {
            //creat brefab instance
            instance = Instantiate(go) as GameObject;
        }

        if (container != null)
        {
            //add prefab to container
            instance.transform.SetParent(container.transform);
        }
        if (positioning != EnumPositioning.withOut)
        {
            if (positioning == EnumPositioning.local)
            {
                instance.transform.localPosition = pos;
            }
            if (positioning == EnumPositioning.global)
            {
                instance.transform.position = pos;
            }
        }
        return(instance);
    }
Esempio n. 21
0
    public void StartInitialization()
    {
        _initializationStatus = EnumInitializationStatus.inProgress;
        _container            = GameObject.FindGameObjectWithTag(TagNames.TAG_GAME_VIEW_CONTAINER);
        if (_container == null)
        {
            LoggingManager.AddErrorToLog("Didn't found game object by tag " + TagNames.TAG_GAME_VIEW_CONTAINER);
            _initializationStatus = EnumInitializationStatus.initializationError;
            return;
        }

        //creat prefab with train game view manager for view train
        _locomotiveViewManager = PrefabCreatorManager.Instance.InstanceComponent <LocomotiveViewManager>(PrefabsURL.LOCOMOTIVE_GAME_VIEW, _container, EnumPositioning.local, new Vector3(0, 0, 0));
        _locationViewManager   = PrefabCreatorManager.Instance.InstanceComponent <LocationViewManager>(PrefabsURL.LOCATION_GAME_VIEW, _container, EnumPositioning.local, new Vector3(0, 0, 10));

        _initializationStatus = EnumInitializationStatus.initializated;
    }
Esempio n. 22
0
    //set def position
    private void Start()
    {
        IUIScreenNavigationController[] uiNavigationControllerArray = gameObject.GetComponentsInChildren <IUIScreenNavigationController>();
        for (int i = 0; i < uiNavigationControllerArray.Length; i++)
        {
            uiNavigationControllerArray[i].Source = gameObject;
        }
        RectTransform baseRectTransform = gameObject.GetComponent <RectTransform>();

        if (baseRectTransform == null)
        {
            LoggingManager.AddErrorToLog("Didn't found RectTransform in menu " + MenuID.ToString());
        }
        else
        {
            baseRectTransform.offsetMin = new Vector2(0, 0);
            baseRectTransform.offsetMax = new Vector2(0, 0);
        }
    }
Esempio n. 23
0
 /// <summary>
 /// Check of errors
 /// </summary>
 /// <param name="screenID">id of checking screen</param>
 private bool CheckOfScreen(EnumUIScreenID screenID)
 {
     //if showing/hiding animation isnt finishd
     if (UIScreenAnimationManager.Instance.isAnimating)
     {
         return(true);
     }
     //if doesn't found screen with this name in _uiScreens
     if (!_uiScreens.ContainsKey(screenID))
     {
         LoggingManager.AddErrorToLog("Try open Screen, but he is epsan in _uiScreens");
         return(true);
     }
     if (screenID == _currentScreen.screenID)
     {
         return(true);
     }
     return(false);
 }
Esempio n. 24
0
    /*Logic */
    //show first screen
    private void ShowScreenByID(EnumUIScreenID screenID)
    {
        if (!_uiScreens.ContainsKey(screenID))
        {
            LoggingManager.AddErrorToLog("Try open " + screenID.ToString() + " first Screen, but he is epsan in _uiScreens");
            return;
        }

        //set all deactivate
        foreach (KeyValuePair <EnumUIScreenID, IUIScreenController> pair in _uiScreens)
        {
            if (pair.Key != screenID)
            {
                pair.Value.baseGameObject.SetActive(false);
            }
        }

        ChangeCurrentScreen(_uiScreens[screenID]);
        _currentScreen.baseGameObject.SetActive(true);
        _currentScreen.SetData(null);
    }
    //tracing of initialization process
    private IEnumerator TracingProcess()
    {
        while (!allInitializated)
        {
            foreach (IInitilizationProcess initilizationClass in _initializationList)
            {
                if (initilizationClass.initializationStatus == EnumInitializationStatus.initializationError)
                {
                    LoggingManager.AddErrorToLog(string.Format("InitializationError in {0}", initilizationClass.ClassNameInInitialization));
                    yield break;
                }

                if (initilizationClass.initializationStatus == EnumInitializationStatus.inProgress)
                {
                    LoggingManager.Log(string.Format("WAIT OF in {0}", initilizationClass.ClassNameInInitialization));
                }
            }
            yield return(new WaitForSeconds(1f));
        }
        LoggingManager.Instance.AddLog("All were initializated");
        yield break;
    }
Esempio n. 26
0
    public void StartInitialization()
    {
        _initializationStatus = EnumInitializationStatus.inProgress;

        //get game obgect by his tag, where must be all ui screens
        GameObject uiMenuContainer = GameObject.FindGameObjectWithTag(TagNames.TAG_UI_MENU_CONTAINER);

        if (uiMenuContainer == null)
        {
            LoggingManager.AddErrorToLog("Didn't found game object by tag " + TagNames.TAG_UI_MENU_CONTAINER);
            _initializationStatus = EnumInitializationStatus.initializationError;
            return;
        }

        Dictionary <EnumUIMenuID, string> menuList = GetMenuList();

        //add all screens to dictionary by his id
        _uiMenus = new Dictionary <EnumUIMenuID, IUIMenuController>();
        foreach (KeyValuePair <EnumUIMenuID, string> pair in menuList)
        {
            if (!_uiMenus.ContainsKey(pair.Key))
            {
                _uiMenus.Add(pair.Key, PrefabCreatorManager.Instance.InstanceComponent <IUIMenuController>(pair.Value, uiMenuContainer));
            }
            else
            {
                LoggingManager.AddErrorToLog("Found repeat menu id " + pair.Key);
            }
        }

        //show menu wat should be add in start game
        for (int i = 0; i < MainInitializationProcess.Instance.ActivateMenu.Count; i++)
        {
            ShowMenu(MainInitializationProcess.Instance.ActivateMenu[i], null);
        }

        _initializationStatus = EnumInitializationStatus.initializated;
    }
    //Update is called once per frame
    void Update()
    {
        return;

        if (!MainInitializationProcess.Instance.allInitializated)
        {
            return;
        }

        if (!MainGameController.Instance.MoveCamera)
        {
            return;
        }

        if (_setMaxCameraSize)
        {
            SetDefaultSettings();
        }
        //set pixels in unit like in background

        if (_targetWidth < _minZoomWidth)
        {
            _targetWidth = _minZoomWidth;
        }

        if (CheckOnNewBGSize() || _targetWidth != _oldTargetWidth || changeViewProportions)
        {
            float h      = _targetWidth * (float)Screen.height / (float)Screen.width;
            int   height = Mathf.RoundToInt(h);
            //check on size camera and bg
            if (height > _bgHeight)
            {
                //LoggingManager.AddErrorToLog("HEIGHT TO BIG");
                ZoomCameraIn(CAMERA_ZOOM_SPEED);
                Update();
                return;
            }
            //check on size camera and bg
            if (_targetWidth > _bgWidth)
            {
                //LoggingManager.AddErrorToLog("WIDTH TO BIG");
                ZoomCameraIn(CAMERA_ZOOM_SPEED);
                Update();
                return;
            }

            _oldTargetWidth = _targetWidth;

            if (_mainCamera == null)
            {
                _mainCamera = GetComponent <Camera>();
                if (_mainCamera == null)
                {
                    LoggingManager.AddErrorToLog("Didn't found maint camera");
                }
            }

            _mainCamera.orthographicSize = height / 2;

            //set new limits
            float vertical   = _bgWidth - _targetWidth;
            float horizontal = _bgHeight - height;

            _leftLimit  = -1 * vertical / 2;
            _rightLimit = vertical / 2;

            _topLimit    = horizontal / 2;
            _bottomLimit = -1 * horizontal / 2;

            CheckOnLimits();
        }

        /*Use for testing
         * reaction on key
         * */
        if (Input.GetKey(KeyCode.RightArrow))
        {
            MoveCameraRight(CAMERA_MOVE_SPEED);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            MoveCameraLeft(CAMERA_MOVE_SPEED);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            MoveCameraDown(CAMERA_MOVE_SPEED);
        }
        if (Input.GetKey(KeyCode.UpArrow))
        {
            MoveCameraUp(CAMERA_MOVE_SPEED);
        }
        if (Input.GetKey(KeyCode.Z))
        {
            ZoomCameraIn(CAMERA_ZOOM_SPEED);
            return;
        }
        if (Input.GetKey(KeyCode.X))
        {
            ZoomCameraOut(CAMERA_ZOOM_SPEED);
            return;
        }

        if (transform.position == _newPosition)
        {
            return;
        }
        float moveSpeed = _cameraMoveSpeed * _PIXELSTOUNITS * Time.deltaTime;

        transform.position = Vector3.Lerp(transform.position, _newPosition, moveSpeed);
    }