Example #1
0
        BehaviorTrigger ImmediateGiver <BehaviorTrigger, string> .PickBestElement(string key)
        {
            var setting = settings.Find((item) => string.IsNullOrEmpty(item.behaviorName) ? string.Compare(item.sourceEWCs[0], key, false) == 0 : string.Compare(item.behaviorName, key, false) == 0);

            if (setting != null)
            {
                var trigger = new DelayBTrigger {
                    parent = this, setting = setting
                };
                trigger.BeginActualTriggerCreation();
                return(trigger);
            }
            else
            {
                var newSettting = new BehaviorPackingSetting {
                    behaviorName = key
                };
                newSettting.sourceEWCs.Add(key);
                var trigger = new DelayBTrigger {
                    parent = this, setting = setting
                };
                trigger.BeginActualTriggerCreation();
                return(trigger);
            }
        }
 BehaviorTrigger ImmediateGiver <BehaviorTrigger, string> .PickBestElement(string key)
 {
     triggers.TryGetValue(key, out var trigger);
     if (trigger == null)
     {
         var delayTrigger = new DelayBTrigger {
             parent = this, ewcName = key
         };
         triggers.Add(key, trigger = delayTrigger);
         delayTrigger.BeginActualTriggerCreation();
     }
     return(trigger);
 }