EventData.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using CommonAI.Zone.ZoneEditor.EventTrigger;
  2. using CommonLang.Property;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. namespace CommonAI.Zone.EventTrigger
  8. {
  9. public interface IEditorValue
  10. {
  11. object GetEnvValue(IEditorValueAdapter api);
  12. }
  13. public interface IEventDataNode
  14. {
  15. /// <summary>
  16. /// 触发器名字
  17. /// </summary>
  18. string EventName { get; set; }
  19. /// <summary>
  20. /// 启用
  21. /// </summary>
  22. bool EventIsActive { get; set; }
  23. /// <summary>
  24. /// 注释
  25. /// </summary>
  26. string EventComment { get; set; }
  27. /// <summary>
  28. /// 保存
  29. /// </summary>
  30. string EventTreePath { get; set; }
  31. /// <summary>
  32. /// 延迟执行
  33. /// </summary>
  34. int EventDelayTimeMS { get; set; }
  35. /// <summary>
  36. /// 临时变量
  37. /// </summary>
  38. List<LocalVar> EventLocalVars { get; }
  39. /// <summary>
  40. /// 事件触发
  41. /// </summary>
  42. List<AbstractTrigger> EventTriggers { get; }
  43. /// <summary>
  44. /// 条件
  45. /// </summary>
  46. List<AbstractCondition> EventConditions { get; }
  47. /// <summary>
  48. /// 动作
  49. /// </summary>
  50. List<AbstractAction> EventActions { get; }
  51. /// <summary>
  52. /// 功能文本
  53. /// </summary>
  54. /// <returns></returns>
  55. string FunctionText();
  56. }
  57. [DescAttribute("临时变量")]
  58. [Expandable]
  59. public abstract class LocalVar
  60. {
  61. [DescAttribute("变量名")]
  62. public string Key = "LocalVarName";
  63. public abstract object GetValue(IEditorValueAdapter api, EventArguments args);
  64. public abstract object GetAbstractValue();
  65. }
  66. [DescAttribute("触发事件")]
  67. [Expandable]
  68. public abstract class AbstractTrigger : IDisposable
  69. {
  70. abstract public void Listen(EventTriggerAdapter api, EventArguments args);
  71. virtual public void Dispose() { }
  72. }
  73. [DescAttribute("条件")]
  74. [Expandable]
  75. public abstract class AbstractCondition : IDisposable
  76. {
  77. abstract public bool Test(EventTriggerAdapter api, EventArguments args);
  78. virtual public void Dispose() { }
  79. }
  80. [DescAttribute("动作")]
  81. [Expandable]
  82. public abstract class AbstractAction : IDisposable
  83. {
  84. abstract public void DoAction(EventTriggerAdapter api, EventArguments args);
  85. virtual public void Dispose() { }
  86. }
  87. [DescAttribute("抽象值")]
  88. [Expandable]
  89. public abstract class AbstractValue<T> : IEditorValue
  90. {
  91. abstract public T GetValue(IEditorValueAdapter api, EventArguments args);
  92. public object GetEnvValue(IEditorValueAdapter api)
  93. {
  94. return GetValue(api, new EventArguments());
  95. }
  96. }
  97. }