public Control(IKeyTableFactory tableFactory, IAsynchQueueFactory queueFactory, IPrimFactory primFactory, IModel model, IConfigSource config) : base(tableFactory, queueFactory) { ControlConfig = config.Configs[CONTROL_CONFIG]; IConfig commonConfig = config.Configs["Common"]; if (ControlConfig == null) { ControlConfig = config.Configs[0]; } if (commonConfig == null) { commonConfig = config.Configs[0]; } _toggleGlow = ControlConfig.GetDouble("ToggleGlow", .15); _fade = ControlConfig.GetDouble("Fade", .8); _defaultRecordingName = ControlConfig.Get("DefaultSequenceName", "Sequence"); _defaultTopologyName = ControlConfig.Get("DefaultTopologyName", "Topology"); _multiNumber = ControlConfig.GetInt("MultiSendNumber", 10); _multiSendDelay = ControlConfig.GetInt("MultiSendDelay", 750); _wait = commonConfig.GetInt("Wait", 50); _factory = primFactory; _record = MakeRecord(ControlConfig, tableFactory, queueFactory, primFactory); _topology = MakeTopology(ControlConfig); _permissions = MakePermissions(tableFactory, config); _state = MakeState(tableFactory, config); _model = Record.Make <IModel>(model, false); string tableName = ControlConfig.Get(TABLE_KEY, null); int tableCount = ControlConfig.GetInt(TABLE_COUNT, 1); _tables = new List <RoutingTable>(); if (tableName != null && tableCount > 1) { for (int i = 1; i <= tableCount; i++) { _tables.Add(new RoutingTable(Factory.MakeButton(tableName + i, Permissions), this, Factory)); } } else if (tableName != null) { _tables.Add(new RoutingTable(Factory.MakeButton(tableName, Permissions), this, Factory)); } _tables.Add(new RoutingTable(Factory.MakeButton(ControlConfig.Get(TABLE_HUD_KEY, "TableDisplayHUD"), Permissions), this, Factory)); Logger.Info("Control started."); }
public LockedPermissions(IPrimFactory factory, IConfigSource config, IPrim host, Control.Impl.Module.Control control) { _ownerID = UUID.Zero; _host = host; IConfig controlConfig = config.Configs["Control"]; double fade = controlConfig.GetDouble("LockFade", control.Fade); double glow = controlConfig.GetDouble("LockGlow", control.ToggleGlow); _lockWait = controlConfig.GetInt("ControlsLockTimeout", 300000); _lockToggle = new Toggle(factory.MakeButton("Lock", new LockPermissions(this)), fade, glow); _lockToggle.OnToggledOn += (source, args) => SetCurrentOwner(args.ID, args.Name); _lockToggle.OnToggledOff += (source, args) => { _ownerID = UUID.Zero; _host.Say(_ownerName + " relinquished control of sandbox."); JM726.Lib.Static.Util.Wake(this); }; _lockToggle.OnTouched += (source, args) => { if (_Locked && !args.AvatarID.Equals(_ownerID)) _host.Say("Unable to take control of sandbox. Sandbox is currently locked to '" + _ownerName + "'."); }; }
public LockedPermissions(IPrimFactory factory, IConfigSource config, IPrim host, Control.Impl.Module.Control control) { _ownerID = UUID.Zero; _host = host; IConfig controlConfig = config.Configs["Control"]; double fade = controlConfig.GetDouble("LockFade", control.Fade); double glow = controlConfig.GetDouble("LockGlow", control.ToggleGlow); _lockWait = controlConfig.GetInt("ControlsLockTimeout", 300000); _lockToggle = new Toggle(factory.MakeButton("Lock", new LockPermissions(this)), fade, glow); _lockToggle.OnToggledOn += (source, args) => SetCurrentOwner(args.ID, args.Name); _lockToggle.OnToggledOff += (source, args) => { _ownerID = UUID.Zero; _host.Say(_ownerName + " relinquished control of sandbox."); JM726.Lib.Static.Util.Wake(this); }; _lockToggle.OnTouched += (source, args) => { if (_Locked && !args.AvatarID.Equals(_ownerID)) { _host.Say("Unable to take control of sandbox. Sandbox is currently locked to '" + _ownerName + "'."); } }; }