示例#1
0
 protected override void InitFields()
 {
     this.m_DelegateTypes = new Type[]
     {
         typeof(vp_Activity.Callback),
         typeof(vp_Activity.Callback),
         typeof(vp_Activity.Condition),
         typeof(vp_Activity.Condition)
     };
     this.m_Fields = new FieldInfo[]
     {
         base.GetType().GetField("StartCallbacks"),
         base.GetType().GetField("StopCallbacks"),
         base.GetType().GetField("StartConditions"),
         base.GetType().GetField("StopConditions")
     };
     base.StoreInvokerFieldNames();
     this.m_DefaultMethods = new MethodInfo[]
     {
         base.GetType().GetMethod("Empty"),
         base.GetType().GetMethod("Empty"),
         base.GetType().GetMethod("AlwaysOK"),
         base.GetType().GetMethod("AlwaysOK")
     };
     this.Prefixes = new Dictionary <string, int>
     {
         {
             "OnStart_",
             0
         },
         {
             "OnStop_",
             1
         },
         {
             "CanStart_",
             2
         },
         {
             "CanStop_",
             3
         }
     };
     this.StartCallbacks  = new vp_Activity.Callback(vp_Activity.Empty);
     this.StopCallbacks   = new vp_Activity.Callback(vp_Activity.Empty);
     this.StartConditions = new vp_Activity.Condition(vp_Activity.AlwaysOK);
     this.StopConditions  = new vp_Activity.Condition(vp_Activity.AlwaysOK);
 }
示例#2
0
 public bool TryStop()
 {
     if (!this.m_Active)
     {
         return(false);
     }
     if (Time.time < this.NextAllowedStopTime)
     {
         return(false);
     }
     Delegate[] invocationList = this.StopConditions.GetInvocationList();
     for (int i = 0; i < invocationList.Length; i++)
     {
         vp_Activity.Condition condition = (vp_Activity.Condition)invocationList[i];
         if (!condition())
         {
             return(false);
         }
     }
     this.Active = false;
     return(true);
 }