/// <summary> /// Remove trigger in hex unit with this installer /// </summary> /// <typeparam name="TTarget">Type object for target trigger</typeparam> /// <param name="installer">object who set trigger in this hex unit</param> public void RemoveTriggers <TTarget>(IHexTrigger <TTarget> installer) { var query = from HexTriggerContainer <TTarget> trigger in _hexTriggers where trigger.Installer.Equals(installer) select trigger; var hexTriggerContainers = query as HexTriggerContainer <TTarget>[] ?? query.ToArray(); if (!hexTriggerContainers.Any()) { return; } foreach (var trigger in hexTriggerContainers) { _hexTriggers.Remove(trigger); } }
internal HexTriggerContainer(IHexTrigger <TTarget> installer) : this() { TargetType = typeof(TTarget); Installer = installer; }
/// <summary> /// Add new trigger in hex unit /// </summary> /// <typeparam name="TTarget">Type object for target trigger</typeparam> /// <param name="installer"></param> public void AddTrigger <TTarget>(IHexTrigger <TTarget> installer) { _hexTriggers.Add(new HexTriggerContainer <TTarget>(installer)); }