Пример #1
0
        /// <summary>
        /// Runs an Action that can be awaited.
        /// </summary>
        /// <param name="action">A FiniteTimeAction.</param>
        public Task<ActionState> RunActionsAsync(FiniteTimeAction action)
        {
            var tcs = new TaskCompletionSource<ActionState>();

            ActionState state = null;
            var completion = new CallFunc(() => tcs.TrySetResult(state));

            var asyncAction = new Sequence(action, completion);

            state = Application.Current.ActionManager.AddAction(asyncAction, this);
            return tcs.Task;
        }
Пример #2
0
		/// <summary>
		/// Runs a sequence of Actions so that it can be awaited.
		/// </summary>
		/// <param name="actions">An array of FiniteTimeAction objects.</param>
		public Task<ActionState> RunActionsAsync(params FiniteTimeAction[] actions)
		{
			if (actions.Length == 0)
				return Task.FromResult<ActionState>(null);

			var tcs = new TaskCompletionSource<ActionState>();

			var numActions = actions.Length;
			var asyncActions = new FiniteTimeAction[actions.Length + 1];
			Array.Copy(actions, asyncActions, numActions);

			ActionState state = null;
			asyncActions[numActions] = new CallFunc(() => tcs.TrySetResult(state));

			var asyncAction = asyncActions.Length > 1 ? new Sequence(asyncActions) : asyncActions[0];

			state = Application.Current.ActionManager.AddAction(asyncAction, this);
			return tcs.Task;
		}
Пример #3
0
 public CallFuncState(CallFunc action, Node target)
     : base(action, target)
 {
     CallFunction   = action.CallFunction;
     ScriptFuncName = action.ScriptFuncName;
 }
Пример #4
0
 public AsyncCompletionCallFuncState(CallFunc action, Node target)
     : base(action, target)
 {
 }
Пример #5
0
		public CallFuncState (CallFunc action, Node target)
			: base(action, target)
		{   
			CallFunction = action.CallFunction;
			ScriptFuncName = action.ScriptFuncName;
		}
Пример #6
0
 public AsyncCompletionCallFuncState(CallFunc action, Node target)
     : base(action, target)
 {
 }