// // NodeAnimAsyncWaiter.cpp // redream_runtime // // Created by Chao on 2023/5/29. // #include "NodeAnimAsyncWaiter.hpp" #include "ReboltRedManager.h" namespace redream{ NodeAnimAsyncWaiter* NodeAnimAsyncWaiter::create(ReboltRedManager* rrm, red::RedBehaviacTree* fatherTree, std::string callbackTreeId, cocos2d::Node* node, std::string animFileKey, cocos2d::Vec2 startPos, cocos2d::Vec2 endPos) { NodeAnimAsyncWaiter* waiter = new NodeAnimAsyncWaiter(); waiter->autorelease(); waiter->setFatherTree(fatherTree); waiter->setReboltRedManager(rrm); waiter->setCallbackTreeId(callbackTreeId); waiter->_node = node; waiter->_animFileKey = animFileKey; waiter->_startPos = startPos; waiter->_endPos = endPos; return waiter; } void NodeAnimAsyncWaiter::run(ReboltErrorInfo& errorInfo) { auto reboltManager = _reboltManager; auto callbackTreeId = _callbackTreeId; _reboltManager->runAnimFile(_node, _animFileKey, _startPos, _endPos, [=]{ onEnd(); reboltManager->runBehaviacTree(callbackTreeId, {}, {}); }, errorInfo); } }