private void ParseUpdatedList(UUID regionID, Dictionary <string, string> vars) { IOpenRegionSettingsConnector orsc = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); if (orsc != null) { OpenRegionSettings settings = orsc.GetSettings(regionID); settings.DefaultDrawDistance = float.Parse(vars["Default Draw Distance"]); settings.ForceDrawDistance = vars["Force Draw Distance"] != null; settings.MaxDragDistance = float.Parse(vars["Max Drag Distance"]); settings.MaximumPrimScale = float.Parse(vars["Max Prim Scale"]); settings.MinimumPrimScale = float.Parse(vars["Min Prim Scale"]); settings.MaximumPhysPrimScale = float.Parse(vars["Max Physical Prim Scale"]); settings.MaximumHollowSize = float.Parse(vars["Max Hollow Size"]); settings.MinimumHoleSize = float.Parse(vars["Min Hole Size"]); settings.MaximumLinkCount = int.Parse(vars["Max Link Count"]); settings.MaximumLinkCountPhys = int.Parse(vars["Max Link Count Phys"]); settings.MaximumInventoryItemsTransfer = int.Parse(vars["Max Inventory Items To Transfer"]); settings.TerrainDetailScale = float.Parse(vars["Terrain Scale"]); settings.ShowTags = int.Parse(vars["Show Tags"]); settings.RenderWater = vars["Render Water"] != null; settings.DisplayMinimap = vars["Allow Minimap"] != null; settings.AllowPhysicalPrims = vars["Allow Physical Prims"] != null; settings.EnableTeenMode = vars["Enable Teen Mode"] != null; settings.ClampPrimSizes = vars["Enforce Max Build Constraints"] != null; orsc.SetSettings(regionID, settings); } }
public string AddOpenRegionSettingsHTMLPage(UUID regionID) { Dictionary <string, string> vars = new Dictionary <string, string>(); IOpenRegionSettingsConnector orsc = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); if (orsc != null) { OpenRegionSettings settings = orsc.GetSettings(regionID); vars.Add("Default Draw Distance", settings.DefaultDrawDistance.ToString()); vars.Add("Force Draw Distance", settings.ForceDrawDistance ? "checked" : ""); vars.Add("Max Drag Distance", settings.MaxDragDistance.ToString()); vars.Add("Max Prim Scale", settings.MaximumPrimScale.ToString()); vars.Add("Min Prim Scale", settings.MinimumPrimScale.ToString()); vars.Add("Max Physical Prim Scale", settings.MaximumPhysPrimScale.ToString()); vars.Add("Max Hollow Size", settings.MaximumHollowSize.ToString()); vars.Add("Min Hole Size", settings.MinimumHoleSize.ToString()); vars.Add("Max Link Count", settings.MaximumLinkCount.ToString()); vars.Add("Max Link Count Phys", settings.MaximumLinkCountPhys.ToString()); vars.Add("Max Inventory Items To Transfer", settings.MaximumInventoryItemsTransfer.ToString()); vars.Add("Terrain Scale", settings.TerrainDetailScale.ToString()); vars.Add("Show Tags", settings.ShowTags.ToString()); vars.Add("Render Water", settings.RenderWater ? "checked" : ""); vars.Add("Allow Minimap", settings.DisplayMinimap ? "checked" : ""); vars.Add("Allow Physical Prims", settings.AllowPhysicalPrims ? "checked" : ""); vars.Add("Enable Teen Mode", settings.EnableTeenMode ? "checked" : ""); vars.Add("Enforce Max Build Constraints", settings.ClampPrimSizes ? "checked" : ""); return(CSHTMLCreator.AddHTMLPage(HTMLPage, "", "OpenRegionSettings", vars, (newVars) => { ParseUpdatedList(regionID, newVars); return AddOpenRegionSettingsHTMLPage(regionID); })); } return(""); }
private Hashtable DispatchOpenRegionSettings(Hashtable m_dhttpMethod, UUID agentID) { Hashtable responsedata = new Hashtable(); responsedata["int_response_code"] = 200; //501; //410; //404; responsedata["content_type"] = "text/plain"; responsedata["keepalive"] = false; responsedata["str_response_string"] = ""; IScenePresence SP = m_scene.GetScenePresence(agentID); if (SP == null) { return(responsedata); //They don't exist } if (!SP.Scene.Permissions.CanIssueEstateCommand(SP.UUID, false)) { return(responsedata); // No permissions } OSDMap rm = (OSDMap)OSDParser.DeserializeLLSDXml((string)m_dhttpMethod["requestbody"]); m_settings.DefaultDrawDistance = rm["draw_distance"].AsInteger(); m_settings.ForceDrawDistance = rm["force_draw_distance"].AsBoolean(); m_settings.DisplayMinimap = rm["allow_minimap"].AsBoolean(); m_settings.AllowPhysicalPrims = rm["allow_physical_prims"].AsBoolean(); m_settings.MaxDragDistance = (float)rm["max_drag_distance"].AsReal(); m_settings.MinimumHoleSize = (float)rm["min_hole_size"].AsReal(); m_settings.MaximumHollowSize = (float)rm["max_hollow_size"].AsReal(); m_settings.MaximumInventoryItemsTransfer = rm["max_inventory_items_transfer"].AsInteger(); m_settings.MaximumLinkCount = (int)rm["max_link_count"].AsReal(); m_settings.MaximumLinkCountPhys = (int)rm["max_link_count_phys"].AsReal(); m_settings.MaximumPhysPrimScale = (float)rm["max_phys_prim_scale"].AsReal(); m_settings.MaximumPrimScale = (float)rm["max_prim_scale"].AsReal(); m_settings.MinimumPrimScale = (float)rm["min_prim_scale"].AsReal(); m_settings.RenderWater = rm["render_water"].AsBoolean(); m_settings.TerrainDetailScale = (float)rm["terrain_detail_scale"].AsReal(); m_settings.ShowTags = (int)rm["show_tags"].AsReal(); m_settings.MaxGroups = (int)rm["max_groups"].AsReal(); m_settings.AllowParcelWindLight = rm["allow_parcel_windlight"].AsBoolean(); m_settings.EnableTeenMode = rm["enable_teen_mode"].AsBoolean(); m_settings.ClampPrimSizes = rm["enforce_max_build"].AsBoolean(); IOpenRegionSettingsConnector connector = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); //Update the database if (connector != null) { connector.SetSettings(m_scene.RegionInfo.RegionID, m_settings); } //Update all clients about changes SendToAllClients(); return(responsedata); }
private void RegionManager_Load(object sender, EventArgs e) { IOpenRegionSettingsConnector orsc = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); if (orsc != null) { string navUrl = orsc.AddOpenRegionSettingsHTMLPage(CurrentRegionID); //string navUrl = BuildRegionManagerHTTPPage(CurrentRegionID); webBrowser1.Navigate(navUrl); } }
public void AddRegion(IScene scene) { m_scene = scene; scene.EventManager.OnMakeRootAgent += OnNewClient; scene.EventManager.OnRegisterCaps += OnRegisterCaps; scene.RegisterModuleInterface <IOpenRegionSettingsModule>(this); IOpenRegionSettingsConnector orsc = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); if (orsc != null) { m_settings = orsc.GetSettings(scene.RegionInfo.RegionID); } ReadConfig(scene); }
private byte[] DispatchOpenRegionSettings(Stream request, UUID agentID) { IScenePresence SP = m_scene.GetScenePresence(agentID); if (SP == null || !SP.Scene.Permissions.CanIssueEstateCommand(SP.UUID, false)) { return(new byte[0]); } OSDMap rm = (OSDMap)OSDParser.DeserializeLLSDXml(request); m_settings.DefaultDrawDistance = rm["draw_distance"].AsInteger(); m_settings.ForceDrawDistance = rm["force_draw_distance"].AsBoolean(); m_settings.DisplayMinimap = rm["allow_minimap"].AsBoolean(); m_settings.AllowPhysicalPrims = rm["allow_physical_prims"].AsBoolean(); m_settings.MaxDragDistance = (float)rm["max_drag_distance"].AsReal(); m_settings.MinimumHoleSize = (float)rm["min_hole_size"].AsReal(); m_settings.MaximumHollowSize = (float)rm["max_hollow_size"].AsReal(); m_settings.MaximumInventoryItemsTransfer = rm["max_inventory_items_transfer"].AsInteger(); m_settings.MaximumLinkCount = (int)rm["max_link_count"].AsReal(); m_settings.MaximumLinkCountPhys = (int)rm["max_link_count_phys"].AsReal(); m_settings.MaximumPhysPrimScale = (float)rm["max_phys_prim_scale"].AsReal(); m_settings.MaximumPrimScale = (float)rm["max_prim_scale"].AsReal(); m_settings.MinimumPrimScale = (float)rm["min_prim_scale"].AsReal(); m_settings.RenderWater = rm["render_water"].AsBoolean(); m_settings.TerrainDetailScale = (float)rm["terrain_detail_scale"].AsReal(); m_settings.ShowTags = (int)rm["show_tags"].AsReal(); m_settings.MaxGroups = (int)rm["max_groups"].AsReal(); m_settings.AllowParcelWindLight = rm["allow_parcel_windlight"].AsBoolean(); m_settings.EnableTeenMode = rm["enable_teen_mode"].AsBoolean(); m_settings.ClampPrimSizes = rm["enforce_max_build"].AsBoolean(); IOpenRegionSettingsConnector connector = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); //Update the database if (connector != null) { connector.SetSettings(m_scene.RegionInfo.RegionID, m_settings); } //Update all clients about changes SendToAllClients(); return(new byte[0]); }
public string GetOpenRegionSettingsHTMLPage(UUID regionID) { object remoteValue = InternalDoRemote(regionID); if (remoteValue != null || m_doRemoteOnly) { return((string)remoteValue); } IOpenRegionSettingsConnector orsc = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); if (orsc != null) { return(orsc.AddOpenRegionSettingsHTMLPage(regionID)); } return(""); }
private new void Update() { if (RegionListBox.SelectedIndex < 0) { return; } object item = RegionListBox.Items[RegionListBox.SelectedIndex]; if (item == null) { MessageBox.Show("Select a valid region from the list."); return; } if (item.ToString().StartsWith("Online - ")) { item = item.ToString().Remove(0, 9); } RegionInfo region = m_connector.GetRegionInfo(item.ToString()); if (region == null) { MessageBox.Show("You must enter a valid region name!"); return; } string oldRegionName = region.RegionName; bool listNeedsUpdated = oldRegionName != textBox1.Text; region.RegionName = textBox1.Text; region.RegionID = CurrentRegionID; region.RegionLocX = int.Parse(textBox3.Text) * Constants.RegionSize; region.RegionLocY = int.Parse(textBox5.Text) * Constants.RegionSize; IPAddress address = IPAddress.Parse("0.0.0.0"); string[] ports = textBox7.Text.Split(','); region.UDPPorts.Clear(); foreach (string port in ports) { string tPort = port.Trim(); int iPort = 0; if (int.TryParse(tPort, out iPort)) { region.UDPPorts.Add(iPort); } } region.InternalEndPoint = new IPEndPoint(address, region.UDPPorts[0]); region.RegionType = textBox11.Text; region.ObjectCapacity = int.Parse(textBox6.Text); int maturityLevel = 0; if (!int.TryParse(Maturity.Text, out maturityLevel)) { if (Maturity.Text == "Adult") { maturityLevel = 2; } else if (Maturity.Text == "Mature") { maturityLevel = 1; } else //Leave it as PG by default if they do not select a valid option { maturityLevel = 0; } } region.RegionSettings.Maturity = maturityLevel; region.Disabled = DisabledEdit.Checked; region.NumberStartup = int.Parse(StartupNumberBox.Text); region.RegionSizeX = int.Parse(RegionSizeX.Text); region.RegionSizeY = int.Parse(RegionSizeY.Text); region.Startup = ConvertIntToStartupType(startupType.SelectedIndex); region.InfiniteRegion = einfiniteRegion.Checked; if ((region.RegionSizeX % Constants.MinRegionSize) != 0 || (region.RegionSizeY % Constants.MinRegionSize) != 0) { MessageBox.Show("You must enter a valid region size (multiple of " + Constants.MinRegionSize + "!"); return; } m_connector.UpdateRegionInfo(region); if (OnNewRegion != null) { OnNewRegion(region); } if (listNeedsUpdated) { RefreshCurrentRegions(); } RegionListBox.SelectedItem = region.RegionName; IOpenRegionSettingsConnector orsc = Aurora.DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); if (orsc != null) { OpenRegionSettings ors = orsc.GetSettings(region.RegionID); ors.MaximumPhysPrimScale = float.Parse(eMaxPhysPrim.Text); ors.MaximumPrimScale = float.Parse(eMaxPrimSize.Text); orsc.SetSettings(region.RegionID, ors); } }
public OSD BuildOpenRegionInfo(IScenePresence sp) { OSDMap map = new OSDMap(); OSDMap body = new OSDMap(); IOpenRegionSettingsConnector orsc = DataManager.DataManager.RequestPlugin <IOpenRegionSettingsConnector>(); if (orsc != null) { if (sp.Scene.Permissions.CanIssueEstateCommand(sp.UUID, false)) { body.Add("EditURL", OSD.FromString(orsc.AddOpenRegionSettingsHTMLPage(sp.Scene.RegionInfo.RegionID))); } } if (m_settings.MaxDragDistance != -1) { body.Add("MaxDragDistance", OSD.FromReal(m_settings.MaxDragDistance)); } if (m_settings.DefaultDrawDistance != -1) { body.Add("DrawDistance", OSD.FromReal(m_settings.DefaultDrawDistance)); body.Add("ForceDrawDistance", OSD.FromInteger(m_settings.ForceDrawDistance ? 1 : 0)); } if (m_settings.MaximumPrimScale != -1) { body.Add("MaxPrimScale", OSD.FromReal(m_settings.MaximumPrimScale)); } if (m_settings.MinimumPrimScale != -1) { body.Add("MinPrimScale", OSD.FromReal(m_settings.MinimumPrimScale)); } if (m_settings.MaximumPhysPrimScale != -1) { body.Add("MaxPhysPrimScale", OSD.FromReal(m_settings.MaximumPhysPrimScale)); } if (m_settings.MaximumHollowSize != -1) { body.Add("MaxHollowSize", OSD.FromReal(m_settings.MaximumHollowSize)); } if (m_settings.MinimumHoleSize != -1) { body.Add("MinHoleSize", OSD.FromReal(m_settings.MinimumHoleSize)); } body.Add("EnforceMaxBuild", OSD.FromInteger(m_settings.ClampPrimSizes ? 1 : 0)); if (m_settings.MaximumLinkCount != -1) { body.Add("MaxLinkCount", OSD.FromInteger(m_settings.MaximumLinkCount)); } if (m_settings.MaximumLinkCountPhys != -1) { body.Add("MaxLinkCountPhys", OSD.FromInteger(m_settings.MaximumLinkCountPhys)); } body.Add("LSLFunctions", m_settings.LSLCommands); body.Add("WhisperDistance", OSD.FromReal(m_settings.WhisperDistance)); body.Add("SayDistance", OSD.FromReal(m_settings.SayDistance)); body.Add("ShoutDistance", OSD.FromReal(m_settings.ShoutDistance)); body.Add("RenderWater", OSD.FromInteger(m_settings.RenderWater ? 1 : 0)); body.Add("TerrainDetailScale", OSD.FromReal(m_settings.TerrainDetailScale)); if (m_settings.MaximumInventoryItemsTransfer != -1) { body.Add("MaxInventoryItemsTransfer", OSD.FromInteger(m_settings.MaximumInventoryItemsTransfer)); } body.Add("AllowMinimap", OSD.FromInteger(m_settings.DisplayMinimap ? 1 : 0)); body.Add("AllowPhysicalPrims", OSD.FromInteger(m_settings.AllowPhysicalPrims ? 1 : 0)); body.Add("OffsetOfUTC", OSD.FromInteger(m_settings.OffsetOfUTC)); body.Add("OffsetOfUTCDST", OSD.FromInteger(m_settings.OffsetOfUTCDST ? 1 : 0)); body.Add("ToggleTeenMode", OSD.FromInteger(m_settings.EnableTeenMode ? 1 : 0)); body.Add("SetTeenMode", OSD.FromInteger(m_settings.SetTeenMode ? 1 : 0)); body.Add("ShowTags", OSD.FromInteger(m_settings.ShowTags)); if (m_settings.MaxGroups != -1) { body.Add("MaxGroups", OSD.FromInteger(m_settings.MaxGroups)); } body.Add("AllowParcelWindLight", OSD.FromInteger(m_settings.AllowParcelWindLight ? 1 : 0)); //Add all the generic ones foreach (KeyValuePair <string, string> KVP in additionalKVPs) { body.Add(KVP.Key, OSD.FromString(KVP.Value)); } map.Add("body", body); map.Add("message", OSD.FromString("OpenRegionInfo")); return(map); }