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); }