/// <summary> /// The method for creating a trigger /// </summary> /// <param name="_trigger">The xml element containing the trigger description (Root node = Trigger)</param> /// <returns>The newly created trigger.</returns> public override Trigger CreateTrigger(XElement _trigger) { FindKeyTrigger t = null; String id = _trigger.Attribute("id").Value; string hint = _trigger.Elements().First().Element("Hint") != null ? _trigger.Elements().First().Element("Hint").Value : ""; string keyObject = _trigger.Elements().First().Element("KeyObject") != null ? _trigger.Elements().First().Element("KeyObject").Value : ""; float radius = float.Parse(_trigger.Elements().First().Element("Radius").Value); GeoCoordinate keyPosition = new GeoCoordinate(float.Parse(_trigger.Elements().First().Element("Latitude").Value), float.Parse(_trigger.Elements().First().Element("Longitude").Value), 0); t = new FindKeyTrigger(id, radius, keyPosition, hint, keyObject); t.preTriggerObjectIds = new List<string>(); t.postTriggerObjectIds = new List<string>(); if (_trigger.Element("PreTriggerObject") != null) foreach (XElement objectIdElement in _trigger.Element("PreTriggerObject").Elements()) { t.preTriggerObjectIds.Add(objectIdElement.Value); } if (_trigger.Element("PostTriggerObject") != null) foreach (XElement objectIdElement in _trigger.Element("PostTriggerObject").Elements()) { t.postTriggerObjectIds.Add(objectIdElement.Value); } return t; }
public void Init(FindKeyTrigger _trigger) { trigger = _trigger; enabled = false; hint.text = trigger.hint; ToolBox.Instance.sensorManager.gps.AddObserver(this); Enable(true); }