Esempio n. 1
0
 private void arrangeCurrentState()
 {
     if (architecture.ListOfAlbumReader == null && MyGlobal.currentState == 2)
     {
         currentState = CurrentStateInfo.ListOfImage;
     }
     else
     {
         currentState = (CurrentStateInfo)MyGlobal.currentState;
     }
 }
Esempio n. 2
0
        private static void SerializeAnimator(ref SerializationInfo info, Animator animator)
        {
            info.AddValue("enabled", animator.enabled);

            if (animator.runtimeAnimatorController == null)
            {
                return;
            }

            // Parameters
            animator.enabled = (bool)info.GetValue("enabled", typeof(bool));
            string [] serializedParameterNames  = new string[animator.parameterCount];
            int []    serializedParameterTypes  = new int[animator.parameterCount];
            object [] serializedParameterValues = new object[animator.parameterCount];
            int       i = 0;

            foreach (AnimatorControllerParameter parameter in animator.parameters)
            {
                serializedParameterNames[i] = parameter.name;
                serializedParameterTypes[i] = (int)parameter.type;

                if (parameter.type == AnimatorControllerParameterType.Float)
                {
                    serializedParameterValues[i] = animator.GetFloat(parameter.name);
                }
                else if (parameter.type == AnimatorControllerParameterType.Int)
                {
                    serializedParameterValues[i] = animator.GetInteger(parameter.name);
                }
                else if (parameter.type == AnimatorControllerParameterType.Bool || parameter.type == AnimatorControllerParameterType.Trigger)
                {
                    serializedParameterValues[i] = animator.GetBool(parameter.name);
                }

                i++;
            }
            info.AddValue("parameterNames", serializedParameterNames);
            info.AddValue("parameterTypes", serializedParameterTypes);
            info.AddValue("parameterValues", serializedParameterValues);

            // Current states
            CurrentStateInfo [] currentStates = new CurrentStateInfo[animator.layerCount];
            for (i = 0; i < animator.layerCount; i++)
            {
                currentStates[i] = new CurrentStateInfo
                {
                    fullHashPath   = animator.GetCurrentAnimatorStateInfo(i).fullPathHash,
                    normalizedTime = animator.GetCurrentAnimatorStateInfo(i).normalizedTime
                };
            }
            info.AddValue("currentStates", currentStates);
        }
        private void _UpdateCurrentState(bool updateTime)
        {
            var stateInfo = _animator.GetCurrentAnimatorStateInfo(profile.controllerLayer);
            // var frame = Mathf.Min(TimeUtils.Time2Frame(stateInfo.length * stateInfo.normalizedTime), TimeUtils.Time2Frame(stateInfo.length));
            var totalFrame   = FrameUtil.Time2Frame(stateInfo.length * stateInfo.normalizedTime);
            var profileState = _stateTable[stateInfo.shortNameHash];
            var frame        = stateInfo.loop ? totalFrame % profileState.frames : totalFrame;

            CurrentStateInfo prevState = currentState;
            {
                var nstate         = currentState;
                var didStateChange = false;
                nstate.frame      = frame;
                nstate.totalFrame = totalFrame;
                nstate.state      = profileState;
                nstate.stateInfo  = stateInfo;

                if (nstate.state != currentState.state)
                {
                    nstate.timeSinceExecution = 0;
                    didStateChange            = true;
                }
                else if (updateTime)
                {
                    nstate.timeSinceExecution += Time.deltaTime;
                }

                currentState = nstate;

                if (didStateChange && onStateChanged != null)
                {
                    onStateChanged();
                }
                else
                {
                    // Execute frame update
                    for (int f = prevState.totalFrame; f < currentState.totalFrame; ++f)
                    {
                        int fr = f % profileState.frames;
                        foreach (var list in currentBehaviours)
                        {
                            _FrameUpdateStateBehaviours(list, fr);
                        }
                    }
                }
            }
        }
Esempio n. 4
0
        public IWebPageReader OnClickCallback(WebPageData item)
        {
            switch (currentState)
            {
            case CurrentStateInfo.Unknow:
                break;

            case CurrentStateInfo.ListOfPerson:
                AlbumImages.Clear();
                if (architecture.ListOfAlbumReader == null)     //one level skipped
                {
                    currentState = CurrentStateInfo.ListOfAlbum;
                    return(OnClickCallback(item));
                }
                architecture.ListOfAlbumReader.Url = architecture.ListOfAlbumReader.GetUrl((Person)item.Tag);
                LoadConfig(architecture.ListOfAlbumReader);
                informationForLevel = item.Tag;
                return(this);

            case CurrentStateInfo.ListOfAlbum:
                AlbumImages.Clear();
                if (architecture.ListOfAlbumReader == null)
                {
                    try
                    {
                        item.Tag = Changer.ToAlbum((Person)item.Tag);
                    }
                    catch (Exception) { }
                }

                architecture.ListOfImagesReader.Url = architecture.ListOfImagesReader.GetUrl((Album)item.Tag);
                LoadConfig(architecture.ListOfImagesReader);
                informationForLevel = item.Tag;
                return(this);

            case CurrentStateInfo.ListOfImage:
                break;

            case CurrentStateInfo.ShowImage:
                break;

            default:
                break;
            }
            return(null);
        }
Esempio n. 5
0
        public WebPageData[] ExtractData(HtmlDocument doc)
        {
            arrangeCurrentState();

            List <WebPageData> data = new List <WebPageData>();

            switch (currentState)
            {
            case CurrentStateInfo.Unknow:
                break;

            case CurrentStateInfo.ListOfPerson:
                AlbumImages.Clear();
                var persons = architecture.ListOfPersonReader.GetListOfPerson(doc);
                foreach (var person in persons)
                {
                    WebPageData singleData = new WebPageData();
                    singleData.IsFinal           = true;
                    singleData.ImageUrl          = person.ImageUrl;
                    singleData.mainText          = person.Name;
                    singleData.subText           = (person.Description == string.Empty ? "" : person.Description);
                    singleData.NoOfItemsIncluded = person.NoOfAlbums;
                    singleData.UID = MyGlobal.UidGenerator();
                    singleData.Tag = person;

                    data.Add(singleData);
                }
                break;

            case CurrentStateInfo.ListOfAlbum:

                if (architecture.ListOfAlbumReader == null)
                {
                    currentState = CurrentStateInfo.ListOfPerson;
                    return(ExtractData(doc));
                }

                AlbumImages.Clear();
                var albums = architecture.ListOfAlbumReader.GetAlbumList((Person)informationForLevel, doc);
                foreach (var album in albums)
                {
                    WebPageData singleData = new WebPageData();
                    singleData.IsFinal  = true;
                    singleData.ImageUrl = album.ImageUrl;
                    singleData.mainText = album.Name;

                    singleData.subText           = (album.Description == string.Empty ? "" : album.Description);
                    singleData.NoOfItemsIncluded = album.NoOfImages;
                    singleData.UID = MyGlobal.UidGenerator();
                    singleData.Tag = album;

                    data.Add(singleData);
                }
                break;

            case CurrentStateInfo.ListOfImage:
                var images = architecture.ListOfImagesReader.GetImageList((Album)informationForLevel, doc);
                foreach (var img in images)
                {
                    WebPageData singleData = new WebPageData();
                    singleData.IsFinal  = true;
                    singleData.ImageUrl = img.Image.thumbnil;
                    singleData.mainText = img.Name;
                    singleData.UID      = MyGlobal.UidGenerator();

                    data.Add(singleData);
                    AlbumImages.Add(img.Image);     //get the data for the next level and cached it
                }
                break;

            case CurrentStateInfo.ShowImage:
                break;

            default:
                break;
            }
            return(data.Count == 0 ? null : data.ToArray());
        }