/// <summary> /// Convenient method for linking the events of this <see cref="Story"/> to another /// <see cref="Procedure"/>. Also optionally add event handlers to /// <see cref="Procedure.Started"/> and <see cref="Procedure.Completed"/>. /// </summary> /// <param name="pro">The <see cref="Procedure"/> to link to.</param> /// <param name="started">Event handler for <see cref="Procedure.Started"/>.</param> /// <param name="completed"> /// Event handler for <see cref="Procedure.Completed"/>. /// </param> public void Link(Procedure pro, LogicEventHandler started = null, LogicEventHandler completed = null) { Event.Register(this, Started, (sender, e) => pro.Start()); Event.Register(this, Skipped, (sender, e) => pro.Skip()); Event.Register(this, Stopping, (sender, e) => pro.Stop()); Event.Register(pro, Completed, (sender, e) => Complete()); if (started != null) Event.Register(this, Started, started); if (completed != null) Event.Register(this, Completed, completed); }
public Loop(Procedure pro) { Procedure = pro; }
public void RegisterKey(string key, Procedure pro) { Key k; Enum.TryParse(key, out k); Keys.Add(k, pro); }
public Judgement(Func<bool> cond, Procedure proTrue, Procedure proFalse = null) { Condition = cond; True = proTrue; False = proFalse; }