PlayTimeLineAsyncWaiter.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // PlayTimeLineAsyncWaiter.cpp
  3. // redream_runtime
  4. //
  5. // Created by Chao on 2023/5/29.
  6. //
  7. #include "PlayTimeLineAsyncWaiter.hpp"
  8. #include "ReboltRedManager.h"
  9. namespace redream{
  10. PlayTimeLineAsyncWaiter* PlayTimeLineAsyncWaiter::create(ReboltRedManager* rrm, red::RedBehaviacTree* fatherTree, std::string callbackTreeId, int seqId, REDAnimationManager* redAnimationManager) {
  11. PlayTimeLineAsyncWaiter* waiter = new PlayTimeLineAsyncWaiter();
  12. waiter->autorelease();
  13. waiter->setFatherTree(fatherTree);
  14. waiter->setReboltRedManager(rrm);
  15. waiter->setCallbackTreeId(callbackTreeId);
  16. waiter->_seqId = seqId;
  17. waiter->_redAnimationManager = redAnimationManager;
  18. return waiter;
  19. }
  20. void PlayTimeLineAsyncWaiter::run(ReboltErrorInfo& errorInfo) {
  21. _redAnimationManager->runAnimationsWithListen(_seqId, this);
  22. }
  23. void PlayTimeLineAsyncWaiter::completedAnimationSequenceNamed(const char *name, int seqId, int tag) {
  24. auto reboltManager = _reboltManager;
  25. auto callbackTreeId = _callbackTreeId;
  26. onEnd();
  27. reboltManager->runBehaviacTree(callbackTreeId, {}, {});
  28. }
  29. void PlayTimeLineAsyncWaiter::stopAnimationSequenceNamed(const char *name, int seqId, int tag) {
  30. onEnd();
  31. }
  32. };