public IPromise Animate(TimedValue<TransformState> target) { this.previous = new TimedValue<TransformState>(new TransformState(transform.localPosition, transform.localRotation, transform.localScale), getTime()); this.target = target; finishAnimation = new UndoablePromise(); animating = true; return finishAnimation.WithName(string.Format("Animate {0}", name)); }
/// <summary> /// Resolve the returned promise once the predicate evalutes to true /// </summary> public IPromise WaitUntil(Func<TimeData, bool> predicate) { var promise = new UndoablePromise(); var wait = new PredicateWait() { timeStarted = getCurrentTime(), pendingPromise = promise, timeData = new TimeData(), predicate = predicate }; waiting.Add(wait); return promise; }