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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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("");
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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);
        }