protected override IControlLink MakeLink(UUID from, UUID to, Parameters parameters, float weight = default(float), bool bidirectional = true) { Logger.Debug("Creating link between '" + GetNode(from).Name + "' and '" + GetNode(to).Name + "'."); UUID creator = parameters.Get <UUID>(Control.OwnerID); ILink l = Model.AddLink(from, to, parameters, weight, bidirectional); IControlLink link = new SandboxControlLink(l, GetNode(from), GetNode(to), this, _tableFactory, Factory, Permissions); Logger.Debug("Created '" + link.Name + "'."); return(Record.MakeMapped <IControlLink>(link)); }
public ModifyLinks(IButton button, SandboxControl control, IPrimFactory factory) : base(button) { _control = control; _dialog = new Dialog(button.Prims.Count() > 0 ? button.Prims.First() : factory.Host, factory, SandboxControlLink.UNIT, SandboxControlLink.LENGTH, SandboxControlLink.RANDOM, Dialog.CANCEL); _dialog.ResponseReceived += (name, id, text, chat) => { switch (text) { case SandboxControlLink.UNIT: SandboxControlLink.SetType(name, id, ControlLink.LinkType.Unit, _control, GetParameters(id)); break; case SandboxControlLink.RANDOM: SandboxControlLink.SetType(name, id, ControlLink.LinkType.Random, _control, GetParameters(id)); break; case SandboxControlLink.LENGTH: SandboxControlLink.SetType(name, id, ControlLink.LinkType.Length, _control, GetParameters(id)); break; } }; }