private static List <Line> ProcessInteractableObject(ref Map map, IEnumerable <Object> interactableObj) { List <Line> intLink = new List <Line>(); foreach (var obj in interactableObj) { if (!string.IsNullOrEmpty(obj.OnActivate)) { map.Objects[obj.Name].Activate = BehaviourParser(map, obj.Name, obj.OnActivate); foreach (var target in BehaviourHelper.GetAllTarget(map, obj.OnActivate.Split(';'))) { if (target is null) { continue; } var ps = HelperMethod.CutIntoAxisAlignVector2(obj.WorldPos.ToVector2(), target.WorldPos.ToVector2()).ToArray(); intLink.Add(new Line(Color.Cyan, ps)); } } if (!string.IsNullOrEmpty(obj.OnDeactivate)) { map.Objects[obj.Name].Deactivate = BehaviourParser(map, obj.Name, obj.OnDeactivate); foreach (var target in BehaviourHelper.GetAllTarget(map, obj.OnDeactivate.Split(';'))) { if (target is null) { continue; } var ps = HelperMethod.CutIntoAxisAlignVector2(obj.WorldPos.ToVector2(), target.WorldPos.ToVector2()).ToArray(); intLink.Add(new Line(Color.OrangeRed, ps)); } } } return(intLink); }