public override void Perform (LayerStatus [] statuses, Dictionary<int, StateInfo> stateInfos) {
			LayerStatus status = statuses [layer];
			if (status.State.Current == stateId) {
				// seems awkward but null check first costs almost no performance, but a dictionary lookup does
				if (OnActive != null || OnEnter != null || OnStay != null) {
					StateInfo currentInfo = GetStateInfo (status.State.Current, stateInfos);
					if (currentInfo != null) {
						if (status.State.HasChanged) {
							if (OnEnter != null) {
								// fire once after a state change
								OnEnter (currentInfo, status);
							}
						} else if (OnStay != null) {
							// OnStay starts firing the 2nd time we are in this state
							OnStay (currentInfo, status);
						}
						if (OnActive != null) {
							// fire always
							OnActive (currentInfo, status);
						}
					}
				}
			} else if (status.State.Previous == stateId && status.State.HasChanged) {
				StateInfo previousInfo = GetStateInfo (status.State.Previous, stateInfos);
				if (OnExit != null) {
					OnExit (previousInfo, status);
				}
			}
		}
Esempio n. 2
0
		public override void Perform (LayerStatus [] statuses, Dictionary<int, StateInfo> stateInfos) {
			if (performAction != null) {
				performAction (stateInfos, statuses);
			} else {
				Debug.LogWarning ("No performAction supplied!");
			}
		}
Esempio n. 3
0
 public Layer(bool loop = false, int octave = 5)
 {
     pos        = 0;
     status     = LayerStatus.NotStarted;
     this.loop  = loop;
     baseOctave = octave;
     Sequence   = new List <Note>();
 }
		public override void Perform (LayerStatus[] statuses, Dictionary<int, TransitionInfo> transitionInfos) {
			if (layer == -1) {
				foreach (LayerStatus status in statuses) {
					CheckTransitionStatus (status, transitionInfos);
				}
			} else {
				CheckTransitionStatus (statuses [layer], transitionInfos);
			}
		}
Esempio n. 5
0
    // Use this for initialization
    IEnumerator Start()
    {
        status = LayerStatus.Start;
        canvas = GetComponentInChildren <Canvas>();

        yield return(StartCoroutine(LayerStart()));

        status = LayerStatus.Update;
    }
Esempio n. 6
0
		public void Initialise (Animator animator, BaseAnimatorAccess animatorAccess) {
			LayerCount = animator.layerCount;
			LayerStatuses = new LayerStatus [LayerCount];
			for (int i = 0; i < LayerCount; i++) {
				LayerStatuses [i] = new LayerStatus (i, 0, 0);
			}
			// callback to overriden method in generated class to initialise state and transition infos
			animatorAccess.InitialiseEventManager ();
		}
Esempio n. 7
0
    public virtual IEnumerator DestroyLayer()
    {
        status = LayerStatus.End;

        ClearLayerInfoFromParent();

        yield return(StartCoroutine(LayerEnd()));

        Destroy(gameObject);

        yield return(null);
    }
 internal static string ToJson(LayerStatus layerstatus)
 {
     string json = "{";
     json += string.Format("\"type\":\"UGC\",");
     json += string.Format("\"name\":\"{0}\",", layerstatus.LayerName);
     json += string.Format("\"visible\":{0},", layerstatus.IsVisible.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLower());
     if (!string.IsNullOrEmpty(layerstatus.DisplayFilter))
     {
         json += string.Format("\"displayFilter\":\"{0}\"", layerstatus.DisplayFilter.ToString());
     }
     json += "}";
     return json;
 }
        //Layer的其他属性等有需求再加;
        internal static string ToJson(LayerStatus param)
        {
            if (param == null)
            {
                return null;
            }
            string json = "{";
            json += string.Format("\"visible\":{0},", param.Visible.ToString().ToLower());
            json += string.Format("\"displayFilter\":\"{0}\",", param.DisplayFilter);
            json += string.Format("\"name\":\"{0}\"", param.LayerName);
            json += "}";

            return json;
        }
Esempio n. 10
0
        public async Task UpdateStatus(string workspaceId, string layerId, LayerStatus status)
        {
            TableOperation retrieveOperation = TableOperation.Retrieve <StatusEntity>(workspaceId, layerId);

            TableResult retrievedResult = await _table.ExecuteAsync(retrieveOperation);

            if (retrievedResult.Result != null)
            {
                var queue = (StatusEntity)retrievedResult.Result;
                queue.Status = status.ToString();
                await _table.ExecuteAsync(TableOperation.Replace(queue));
            }
            else
            {
                await _table.ExecuteAsync(TableOperation.Insert(new StatusEntity(workspaceId, layerId)));
            }
        }
		void CheckTransitionStatus (LayerStatus status, Dictionary<int, TransitionInfo> transitionInfos) {
			if (status.Transition.HasChanged) {
				int currentTransitionId = status.Transition.Current;
				if (currentTransitionId != 0 && OnStarted != null) {
					TransitionInfo currentInfo = GetTransitionInfo (currentTransitionId, transitionInfos);
					if (currentInfo != null) {
						OnStarted (currentInfo, status);
					}
				}
				int previousTransitionId = status.Transition.Previous;
				if (previousTransitionId != 0 && OnFinished != null) {
					TransitionInfo previousInfo = GetTransitionInfo (previousTransitionId, transitionInfos);
					if (previousInfo != null) {
						OnFinished (previousInfo, status);
					}
				}
			}
		}
Esempio n. 12
0
        public void Shift(OutputDevice outputDevice)
        {
            if (Sequence == null || Sequence.Count == 0 || status == LayerStatus.Finished)
            {
                return;
            }
            if (status == LayerStatus.NotStarted)
            {
                status = LayerStatus.Playing;
                StartNote(pos, outputDevice);
                length = 1;
                return;
            }

            var note = Sequence[pos];

            if (length < note.Length)
            {
                length++;
                return;
            }

            StopNote(pos, outputDevice);
            pos++;
            if (pos == Sequence.Count)
            {
                if (!loop)
                {
                    status = LayerStatus.Finished;
                    return;
                }

                pos = 0;
            }

            StartNote(pos, outputDevice);
            length = 1;
        }
Esempio n. 13
0
        public async Task UpdateStatus(string workspaceId, string layerId, LayerStatus status)
        {
            var currentStatus = await GetStatus(workspaceId, layerId);

            string msg;

            if (!currentStatus.HasValue)
            {
                // create one if status doesn't exist
                msg = "INSERT INTO Statuses (Id, WorkspaceId, Status) VALUES($Id, $WorkspaceId, $Status)";
            }
            else
            {
                // update it if it exists
                msg = "UPDATE Statuses SET Status = $Status WHERE Id = $Id and WorkspaceId = $WorkspaceId";
            }
            var cmd = new SqliteCommand(msg, _queueDatabase);

            cmd.Parameters.AddWithValue("$Status", status.ToString());
            cmd.Parameters.AddWithValue("$Id", layerId);
            cmd.Parameters.AddWithValue("$WorkspaceId", workspaceId);
            cmd.ExecuteScalar();
        }
		public override void Perform (LayerStatus[] statuses, Dictionary<int, TransitionInfo> transitionInfos) {
			LayerStatus status = statuses [layer];
			if (status.Transition.HasChanged) {
				if (OnStarted != null) {
					TransitionInfo currentInfo = GetTransitionInfo (status.Transition.Current, transitionInfos);
					if (currentInfo != null && GetObservedState (currentInfo) == stateId) {
						OnStarted (currentInfo, status);
					}
				}
				if (OnFinished != null) {
					TransitionInfo previousInfo = GetTransitionInfo (status.Transition.Previous, transitionInfos);
					if (previousInfo != null && GetObservedState (previousInfo) == stateId) {
						OnFinished (previousInfo, status);
					}
				}
			}
			if (OnActive != null) {
				TransitionInfo currentInfo = GetTransitionInfo (status.Transition.Current, transitionInfos);
				if (currentInfo != null && GetObservedState (currentInfo) == stateId) {
					OnActive (currentInfo, status);
				}
			}
		}
		public override void Perform (LayerStatus[] statuses, Dictionary<int, TransitionInfo> transitionInfos)
		{
			LayerStatus status = statuses [layer];
			int currentTransitionId = status.Transition.Current;
			if (status.Transition.HasChanged) {
				if (currentTransitionId == transitionId && OnStarted != null) {
					TransitionInfo currentInfo = GetTransitionInfo (currentTransitionId, transitionInfos);
					if (currentInfo != null) {
						OnStarted (currentInfo, status);
					}
				}
				int previousTransitionId = status.Transition.Previous;
				if (OnFinished != null && previousTransitionId == transitionId) {
					TransitionInfo previousInfo = GetTransitionInfo (previousTransitionId, transitionInfos);
					if (previousInfo != null) {
						OnFinished (previousInfo, status);
					}
				}
			} else if (OnStay != null && currentTransitionId == transitionId) {
				// OnStay starts firing one cycle after OnStarted
				TransitionInfo info = GetTransitionInfo (currentTransitionId, transitionInfos);
				OnStay (info, status);
			}
		}
		public virtual void Perform (LayerStatus[] statuses, Dictionary<int, TransitionInfo> transitionInfos) {
		}
Esempio n. 17
0
		public abstract void Perform (LayerStatus [] statuses, Dictionary<int, StateInfo> stateInfos);
Esempio n. 18
0
 public void SetLayer(int i, IBGLayer lay)
 {
     layers[i] = new LayerStatus();
     layers[i].layer=lay;
 }
Esempio n. 19
0
 public GlobeLayerInfo()
 {
     // Treat empty layers as complete by default
     status = LayerStatus.Complete;
 }
Esempio n. 20
0
 public void SetLayer(int i, IBGLayer lay)
 {
     layers[i]       = new LayerStatus();
     layers[i].layer = lay;
 }