NodeAnimAsyncWaiter.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. //
  2. // NodeAnimAsyncWaiter.cpp
  3. // redream_runtime
  4. //
  5. // Created by Chao on 2023/5/29.
  6. //
  7. #include "NodeAnimAsyncWaiter.hpp"
  8. #include "ReboltRedManager.h"
  9. namespace redream{
  10. NodeAnimAsyncWaiter* NodeAnimAsyncWaiter::create(ReboltRedManager* rrm, red::RedBehaviacTree* fatherTree, std::string callbackTreeId, cocos2d::Node* node, std::string animFileKey, cocos2d::Vec2 startPos, cocos2d::Vec2 endPos) {
  11. NodeAnimAsyncWaiter* waiter = new NodeAnimAsyncWaiter();
  12. waiter->autorelease();
  13. waiter->setFatherTree(fatherTree);
  14. waiter->setReboltRedManager(rrm);
  15. waiter->setCallbackTreeId(callbackTreeId);
  16. waiter->_node = node;
  17. waiter->_animFileKey = animFileKey;
  18. waiter->_startPos = startPos;
  19. waiter->_endPos = endPos;
  20. return waiter;
  21. }
  22. void NodeAnimAsyncWaiter::run(ReboltErrorInfo& errorInfo) {
  23. auto reboltManager = _reboltManager;
  24. auto callbackTreeId = _callbackTreeId;
  25. _reboltManager->runAnimFile(_node, _animFileKey, _startPos, _endPos, [=]{
  26. onEnd();
  27. reboltManager->runBehaviacTree(callbackTreeId, {}, {});
  28. }, errorInfo);
  29. }
  30. }