private void arrangeCurrentState() { if (architecture.ListOfAlbumReader == null && MyGlobal.currentState == 2) { currentState = CurrentStateInfo.ListOfImage; } else { currentState = (CurrentStateInfo)MyGlobal.currentState; } }
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); } } } } }
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); }
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()); }