Без опису
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. namespace Unity.VisualScripting
  2. {
  3. [TypeIcon(typeof(StateGraph))]
  4. public sealed class SuperState : NesterState<StateGraph, StateGraphAsset>, IGraphEventListener
  5. {
  6. public SuperState() : base() { }
  7. public SuperState(StateGraphAsset macro) : base(macro) { }
  8. public static SuperState WithStart()
  9. {
  10. var superState = new SuperState();
  11. superState.nest.source = GraphSource.Embed;
  12. superState.nest.embed = StateGraph.WithStart();
  13. return superState;
  14. }
  15. #region Lifecycle
  16. protected override void OnEnterImplementation(Flow flow)
  17. {
  18. if (flow.stack.TryEnterParentElement(this))
  19. {
  20. nest.graph.Start(flow);
  21. flow.stack.ExitParentElement();
  22. }
  23. }
  24. protected override void OnExitImplementation(Flow flow)
  25. {
  26. if (flow.stack.TryEnterParentElement(this))
  27. {
  28. nest.graph.Stop(flow);
  29. flow.stack.ExitParentElement();
  30. }
  31. }
  32. public void StartListening(GraphStack stack)
  33. {
  34. if (stack.TryEnterParentElement(this))
  35. {
  36. nest.graph.StartListening(stack);
  37. stack.ExitParentElement();
  38. }
  39. }
  40. public void StopListening(GraphStack stack)
  41. {
  42. if (stack.TryEnterParentElement(this))
  43. {
  44. nest.graph.StopListening(stack);
  45. stack.ExitParentElement();
  46. }
  47. }
  48. public bool IsListening(GraphPointer pointer)
  49. {
  50. return pointer.GetElementData<Data>(this).isActive;
  51. }
  52. #endregion
  53. public override StateGraph DefaultGraph()
  54. {
  55. return StateGraph.WithStart();
  56. }
  57. }
  58. }