// // PlayTimeLineAsyncWaiter.cpp // redream_runtime // // Created by Chao on 2023/5/29. // #include "PlayTimeLineAsyncWaiter.hpp" #include "ReboltRedManager.h" namespace redream{ PlayTimeLineAsyncWaiter* PlayTimeLineAsyncWaiter::create(ReboltRedManager* rrm, red::RedBehaviacTree* fatherTree, std::string callbackTreeId, int seqId, REDAnimationManager* redAnimationManager) { PlayTimeLineAsyncWaiter* waiter = new PlayTimeLineAsyncWaiter(); waiter->autorelease(); waiter->setFatherTree(fatherTree); waiter->setReboltRedManager(rrm); waiter->setCallbackTreeId(callbackTreeId); waiter->_seqId = seqId; waiter->_redAnimationManager = redAnimationManager; return waiter; } void PlayTimeLineAsyncWaiter::run(ReboltErrorInfo& errorInfo) { _redAnimationManager->runAnimationsWithListen(_seqId, this); } void PlayTimeLineAsyncWaiter::completedAnimationSequenceNamed(const char *name, int seqId, int tag) { auto reboltManager = _reboltManager; auto callbackTreeId = _callbackTreeId; onEnd(); reboltManager->runBehaviacTree(callbackTreeId, {}, {}); } void PlayTimeLineAsyncWaiter::stopAnimationSequenceNamed(const char *name, int seqId, int tag) { onEnd(); } };