public static void InitializeWebUIDefaults (WebInterface webinterface) { _settingsWebUI = new WebUISettings (); _settingsWebUI.LastSettingsVersionUpdateIgnored = CurrentVersion; _settingsWebUI.LastPagesVersionUpdateIgnored = PagesMigrator.GetVersion (); _settingsWebUI.MapCenter = new Vector2 (Constants.DEFAULT_REGIONSTART_X, Constants.DEFAULT_REGIONSTART_Y); // check for user configurations var configSrc = webinterface.Registry.RequestModuleInterface<ISimulationBase> ().ConfigSource; var loginConfig = configSrc.Configs ["LoginService"]; if (loginConfig != null) { _settingsWebUI.WebRegistration = loginConfig.GetBoolean ("AllowAnonymousLogin", true); } var mapConfig = configSrc.Configs ["WebInterface"]; if (mapConfig != null) { _settingsWebUI.MapCenter.X = mapConfig.GetInt ("mapcenter_x", (int)_settingsWebUI.MapCenter.X); _settingsWebUI.MapCenter.Y = mapConfig.GetInt ("mapcenter_y", (int)_settingsWebUI.MapCenter.Y); } }
internal void SaveWebUISettings (WebUISettings settings) { IGenericsConnector generics = Framework.Utilities.DataManager.RequestPlugin<IGenericsConnector> (); generics.AddGeneric (UUID.Zero, "WebUISettings", "Settings", settings.ToOSD ()); webUISettings = settings; }
internal WebUISettings GetWebUISettings () { if (webUISettings == null) { IGenericsConnector generics = Framework.Utilities.DataManager.RequestPlugin<IGenericsConnector> (); var settings = generics.GetGeneric<WebUISettings> (UUID.Zero, "WebUISettings", "Settings"); if (settings == null) { settings = new WebUISettings (); var simbase = Registry.RequestModuleInterface<ISimulationBase> (); settings.MapCenter.X = simbase.MapCenterX; settings.MapCenter.Y = simbase.MapCenterY; } return settings; } return webUISettings; }
public Dictionary<string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary<string, object>(); var gridService = webInterface.Registry.RequestModuleInterface<IGridService> (); if (requestParameters.ContainsKey("Submit")) { string RegionServerURL = requestParameters["RegionServerURL"].ToString(); // required if (RegionServerURL == "") { response = "<h3>" + translator.GetTranslatedString ("RegionServerURLError") + "</h3>"; return null; } string RegionName = requestParameters["RegionName"].ToString(); //string OwnerUUID = requestParameters["OwnerUUID"].ToString(); string RegionLocX = requestParameters["RegionLocX"].ToString(); string RegionLocY = requestParameters["RegionLocY"].ToString(); string RegionSizeX = requestParameters["RegionSizeX"].ToString(); string RegionSizeY = requestParameters["RegionSizeY"].ToString(); string RegionType = requestParameters["RegionType"].ToString(); string RegionPresetType = requestParameters["RegionPresetType"].ToString(); string RegionTerrain = requestParameters["RegionTerrain"].ToString(); string RegionLoadTerrain = requestParameters.ContainsKey("RegionLoadTerrain") ? requestParameters["RegionLoadTerrain"].ToString() : ""; //bool ToSAccept = requestParameters.ContainsKey("ToSAccept") && // requestParameters["ToSAccept"].ToString() == "Accepted"; // string UserType = requestParameters.ContainsKey("UserType") // only admins can set membership // ? requestParameters ["UserType"].ToString () // : "Resident"; // a bit of idiot proofing if (RegionName == "") { response = "<h3>" + translator.GetTranslatedString ("RegionNameError") + "</h3>"; return null; } if ( (RegionLocX == "") || (RegionLocY == "") ) { response = "<h3>" + translator.GetTranslatedString ("RegionLocationError") + "</h3>"; return null; } // so far so good... // build the new region details int RegionPort = int.Parse (requestParameters ["RegionPort"].ToString ()); var newRegion = new RegionInfo(); newRegion.RegionName = RegionName; newRegion.RegionType = RegionType; newRegion.RegionLocX = int.Parse (RegionLocX); newRegion.RegionLocY = int.Parse (RegionLocY); newRegion.RegionSizeX = int.Parse (RegionSizeX); newRegion.RegionSizeY = int.Parse (RegionSizeY); newRegion.RegionPort = RegionPort; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 50000; newRegion.Startup = StartupType.Normal; var regionPreset = RegionPresetType.ToLower (); if (regionPreset.StartsWith ("c", System.StringComparison.Ordinal)) { newRegion.RegionPort = int.Parse( requestParameters["RegionPort"].ToString() ); newRegion.SeeIntoThisSimFromNeighbor = (requestParameters["RegionVisibility"].ToString().ToLower() == "yes"); newRegion.InfiniteRegion = (requestParameters["RegionInfinite"].ToString().ToLower() == "yes"); newRegion.ObjectCapacity = int.Parse( requestParameters["RegionCapacity"].ToString() ); string delayStartup = requestParameters["RegionDelayStartup"].ToString(); newRegion.Startup = delayStartup.StartsWith ("n", System.StringComparison.Ordinal) ? StartupType.Normal : StartupType.Medium; } if (regionPreset.StartsWith ("w", System.StringComparison.Ordinal)) { // 'standard' setup newRegion.RegionType = newRegion.RegionType + "Whitecore"; //info.RegionPort; // use auto assigned port newRegion.RegionTerrain = "Flatland"; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 50000; newRegion.RegionPort = RegionPort; } if (regionPreset.StartsWith ("o", System.StringComparison.Ordinal)) { // 'Openspace' setup newRegion.RegionType = newRegion.RegionType + "Openspace"; //newRegion.RegionPort; // use auto assigned port if (RegionTerrain.StartsWith ("a", System.StringComparison.Ordinal)) newRegion.RegionTerrain = "Aquatic"; else newRegion.RegionTerrain = "Grassland"; newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 750; newRegion.RegionSettings.AgentLimit = 10; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith ("h", System.StringComparison.Ordinal)) { // 'Homestead' setup newRegion.RegionType = newRegion.RegionType + "Homestead"; //info.RegionPort; // use auto assigned port newRegion.RegionTerrain = "Homestead"; newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 3750; newRegion.RegionSettings.AgentLimit = 20; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith ("f", System.StringComparison.Ordinal)) { // 'Full Region' setup newRegion.RegionType = newRegion.RegionType + "Full Region"; //newRegion.RegionPort; // use auto assigned port newRegion.RegionTerrain = RegionTerrain; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 15000; newRegion.RegionSettings.AgentLimit = 100; if (newRegion.RegionType.StartsWith ("M", System.StringComparison.Ordinal)) // defaults are 'true' { newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } } if (RegionLoadTerrain.Length > 0) { // we are loading terrain from a file... handled later newRegion.RegionTerrain = "Custom"; } // Disabled as this is a work in progress and will break with the current scenemanager (Dec 5 - greythane- // TODO: !!! Assumes everything is local for now !!! ISceneManager scenemanager = webInterface.Registry.RequestModuleInterface<ISceneManager> (); if (scenemanager.CreateRegion(newRegion)) { IGridRegisterModule gridRegister = webInterface.Registry.RequestModuleInterface<IGridRegisterModule>(); if (gridRegister != null) { if (gridRegister.RegisterRegionWithGrid (null, true, false, null)) { response = "<h3>Successfully created region, redirecting to main page</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 3000);" + "</script>"; } } // response = "<h3>" + error + "</h3>"; response = "<h3> Error registering region with grid</h3>"; } else response = "<h3>Error creating this region.</h3>"; return null; } // we have or need data if (httpRequest.Query.ContainsKey ("regionid")) { var region = gridService.GetRegionByUUID (null, UUID.Parse (httpRequest.Query ["regionid"].ToString ())); vars.Add ("RegionName", region.RegionName); UserAccount estateOwnerAccount = null; var estateOwner = UUID.Zero; IEstateConnector estateConnector = Framework.Utilities.DataManager.RequestPlugin<IEstateConnector> (); if (estateConnector != null) { EstateSettings estate = estateConnector.GetEstateSettings (region.RegionID); if (estate != null) estateOwner = estate.EstateOwner; var accountService = webInterface.Registry.RequestModuleInterface<IUserAccountService> (); if (accountService != null) estateOwnerAccount = accountService.GetUserAccount (null, estate.EstateOwner); } vars.Add ("OwnerUUID", estateOwner); vars.Add ("OwnerName", estateOwnerAccount != null ? estateOwnerAccount.Name : "No account found"); vars.Add ("RegionLocX", region.RegionLocX / Constants.RegionSize); vars.Add ("RegionLocY", region.RegionLocY / Constants.RegionSize); vars.Add ("RegionSizeX", region.RegionSizeX); vars.Add ("RegionSizeY", region.RegionSizeY); vars.Add ("RegionType", region.RegionType); vars.Add ("RegionTerrain", region.RegionTerrain); vars.Add ("RegionOnline", (region.Flags & (int)RegionFlags.RegionOnline) == (int)RegionFlags.RegionOnline ? translator.GetTranslatedString ("Online") : translator.GetTranslatedString ("Offline")); IWebHttpTextureService webTextureService = webInterface.Registry. RequestModuleInterface<IWebHttpTextureService> (); if (webTextureService != null && region.TerrainMapImage != UUID.Zero) vars.Add ("RegionImageURL", webTextureService.GetTextureURL (region.TerrainMapImage)); else vars.Add ("RegionImageURL", "images/icons/no_picture.jpg"); } else { // default values // check for user region name seed string[] m_regionNameSeed = null; IConfig regionConfig = webInterface.Registry.RequestModuleInterface<ISimulationBase>().ConfigSource.Configs["FileBasedSimulationData"]; if (regionConfig != null) { string regionNameSeed = regionConfig.GetString ("RegionNameSeed", ""); if (regionNameSeed != "") m_regionNameSeed = regionNameSeed.Split (','); } var rNames = new Utilities.MarkovNameGenerator(); string regionName = rNames.FirstName (m_regionNameSeed == null ? Utilities.RegionNames: m_regionNameSeed, 3,7); vars.Add ("RegionName", regionName); var scenemanager = webInterface.Registry.RequestModuleInterface<ISceneManager> (); var gconnector = Framework.Utilities.DataManager.RequestPlugin<IGenericsConnector>(); var settings = gconnector.GetGeneric<WebUISettings>(UUID.Zero, "WebUISettings", "Settings"); if (settings == null) settings = new WebUISettings (); // get some current details //List<GridRegion> regions = gridService.GetRegionsByName(null, "", null,null); var currentInfo = scenemanager.FindCurrentRegionInfo (); //Dictionary<string, int> currentInfo = null; if (currentInfo != null) { vars.Add ("RegionLocX", currentInfo ["minX"] > 0 ? currentInfo ["minX"] : settings.MapCenter.X); vars.Add ("RegionLocY", currentInfo ["minY"] > 0 ? currentInfo ["minY"] : settings.MapCenter.Y); vars.Add("RegionPort", currentInfo ["port"] > 0 ? currentInfo ["port"] + 1 : 9000); } else { vars.Add ("RegionLocX", settings.MapCenter.X); vars.Add ("RegionLocY", settings.MapCenter.Y); vars.Add("RegionPort", 9000); } vars.Add ("RegionSizeX", Constants.RegionSize); vars.Add ("RegionSizeY", Constants.RegionSize); vars.Add ("RegionType", webInterface.RegionTypeArgs(translator)); vars.Add ("RegionPresetType", webInterface.RegionPresetArgs(translator)); vars.Add ("RegionTerrain", webInterface.RegionTerrainArgs(translator)); } // Labels //vars.Add ("RegionInformationText", translator.GetTranslatedString ("RegionInformationText")); vars.Add ("RegionNameText", translator.GetTranslatedString ("RegionNameText")); vars.Add ("RegionLocationText", translator.GetTranslatedString ("RegionLocationText")); vars.Add ("RegionSizeText", translator.GetTranslatedString ("RegionSizeText")); vars.Add ("RegionTypeText", translator.GetTranslatedString ("RegionTypeText")); vars.Add ("RegionPresetText", translator.GetTranslatedString ("RegionPresetText")); vars.Add ("RegionTerrainText", translator.GetTranslatedString ("RegionTerrainText")); vars.Add ("OwnerNameText", translator.GetTranslatedString ("OwnerNameText")); vars.Add ("RegionPortText", translator.GetTranslatedString ("RegionPortText")); vars.Add ("RegionDelayStartupText", translator.GetTranslatedString ("RegionDelayStartupText")); vars.Add ("RegionVisibilityText", translator.GetTranslatedString ("RegionVisibilityText")); vars.Add ("RegionInfiniteText", translator.GetTranslatedString ("RegionInfiniteText")); vars.Add ("RegionCapacityText", translator.GetTranslatedString ("RegionCapacityText")); vars.Add ("Yes", translator.GetTranslatedString ("Yes")); vars.Add ("No", translator.GetTranslatedString ("No")); vars.Add("Accept", translator.GetTranslatedString("Accept")); vars.Add("Submit", translator.GetTranslatedString("Submit")); vars.Add("SubmitURL", "home.html"); vars.Add("ErrorMessage", ""); return vars; }
public static void InitializeWebUIDefaults(WebInterface webinterface) { _settingsWebUI = new WebUISettings (); _settingsWebUI.LastSettingsVersionUpdateIgnored = CurrentVersion; _settingsWebUI.LastPagesVersionUpdateIgnored = PagesMigrator.GetVersion (); _settingsWebUI.MapCenter = new Vector2 (1000, 1000); var configSrc = webinterface.Registry.RequestModuleInterface<ISimulationBase> ().ConfigSource; var loginConfig = configSrc.Configs ["LoginService"]; if (loginConfig != null) { _settingsWebUI.WebRegistration = loginConfig.GetBoolean ("AllowAnonymousLogin", true); } }
internal WebUISettings GetWebUISettings() { if (webUISettings == null) { IGenericsConnector generics = Framework.Utilities.DataManager.RequestPlugin<IGenericsConnector> (); var settings = generics.GetGeneric<WebUISettings> (UUID.Zero, "WebUISettings", "Settings"); if (settings == null) settings = new WebUISettings (); return settings; } return webUISettings; }
public Dictionary<string, object> Fill (WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary<string, object> (); var gridService = webInterface.Registry.RequestModuleInterface<IGridService> (); vars.Add ("RegionServerURL", webInterface.GridURL); // This needs to be sorted out for grid regions #region EditRegion if (requestParameters.ContainsKey ("Submit")) { string RegionServerURL = requestParameters ["RegionServerURL"].ToString (); // required if (RegionServerURL == "") { response = "<h3>" + translator.GetTranslatedString ("RegionServerURLError") + "</h3>"; return null; } var regionID = requestParameters ["RegionID"].ToString (); var regionName = requestParameters ["RegionName"].ToString (); //var OwnerUUID = requestParameters["OwnerUUID"].ToString(); var regionLocX = requestParameters ["RegionLocX"].ToString (); var regionLocY = requestParameters ["RegionLocY"].ToString (); var regionSizeX = requestParameters ["RegionSizeX"].ToString (); var regionSizeY = requestParameters ["RegionSizeY"].ToString (); var regionType = requestParameters ["RegionType"].ToString (); var regionPresetType = requestParameters ["RegionPresetType"].ToString (); var regionTerrain = requestParameters ["RegionTerrain"].ToString (); var regionLoadTerrain = requestParameters.ContainsKey ("RegionLoadTerrain") ? requestParameters ["RegionLoadTerrain"].ToString () : ""; // a bit of idiot proofing if (regionName == "") { response = "<h3>" + translator.GetTranslatedString ("RegionNameError") + "</h3>"; return null; } if ((regionLocX == "") || (regionLocY == "")) { response = "<h3>" + translator.GetTranslatedString ("RegionLocationError") + "</h3>"; return null; } // so far so good... // build the new region details int RegionPort = int.Parse (requestParameters ["RegionPort"].ToString ()); var newRegion = new RegionInfo (); if (regionID != "") newRegion.RegionID = UUID.Parse (regionID); newRegion.RegionName = regionName; newRegion.RegionType = regionType; newRegion.RegionLocX = int.Parse (regionLocX); newRegion.RegionLocY = int.Parse (regionLocY); newRegion.RegionSizeX = int.Parse (regionSizeX); newRegion.RegionSizeY = int.Parse (regionSizeY); newRegion.RegionPort = RegionPort; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 50000; newRegion.Startup = StartupType.Normal; var regionPreset = regionPresetType.ToLower (); //SubString(0,1); if (regionPreset.StartsWith ("c", System.StringComparison.Ordinal)) { newRegion.RegionPort = int.Parse (requestParameters ["RegionPort"].ToString ()); newRegion.SeeIntoThisSimFromNeighbor = (requestParameters ["RegionVisibility"].ToString ().ToLower () == "yes"); newRegion.InfiniteRegion = (requestParameters ["RegionInfinite"].ToString ().ToLower () == "yes"); newRegion.ObjectCapacity = int.Parse (requestParameters ["RegionCapacity"].ToString ()); string delayStartup = requestParameters ["RegionDelayStartup"].ToString (); newRegion.Startup = delayStartup.StartsWith ("n", System.StringComparison.Ordinal) ? StartupType.Normal : StartupType.Medium; } if (regionPreset.StartsWith ("w", System.StringComparison.Ordinal)) { // 'standard' setup newRegion.RegionType = newRegion.RegionType + "Whitecore"; //info.RegionPort; // use auto assigned port newRegion.RegionTerrain = "Flatland"; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 50000; newRegion.RegionPort = RegionPort; } if (regionPreset.StartsWith ("o", System.StringComparison.Ordinal)) { // 'Openspace' setup newRegion.RegionType = newRegion.RegionType + "Openspace"; //newRegion.RegionPort; // use auto assigned port if (regionTerrain.StartsWith ("a", System.StringComparison.Ordinal)) newRegion.RegionTerrain = "Aquatic"; else newRegion.RegionTerrain = "Grassland"; newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 750; newRegion.RegionSettings.AgentLimit = 10; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith ("h", System.StringComparison.Ordinal)) { // 'Homestead' setup newRegion.RegionType = newRegion.RegionType + "Homestead"; //info.RegionPort; // use auto assigned port newRegion.RegionTerrain = "Homestead"; newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 3750; newRegion.RegionSettings.AgentLimit = 20; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith ("f", System.StringComparison.Ordinal)) { // 'Full Region' setup newRegion.RegionType = newRegion.RegionType + "Full Region"; //newRegion.RegionPort; // use auto assigned port newRegion.RegionTerrain = regionTerrain; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 15000; newRegion.RegionSettings.AgentLimit = 100; if (newRegion.RegionType.StartsWith ("M", System.StringComparison.Ordinal)) // defaults are 'true' { newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } } if (regionLoadTerrain.Length > 0) { // we are loading terrain from a file... handled later newRegion.RegionTerrain = "Custom"; } // TODO: !!! Assumes everything is local for now !!! if (requestParameters.ContainsKey ("NewRegion")) { ISceneManager scenemanager = webInterface.Registry.RequestModuleInterface<ISceneManager> (); if (scenemanager.CreateRegion (newRegion)) { response = "<h3>Successfully created region</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=region_manager\";}, 2000);" + "</script>"; return null; } response = "<h3>Error creating this region.</h3>"; return null; } /* not necessary?? IGridRegisterModule gridRegister = webInterface.Registry.RequestModuleInterface<IGridRegisterModule> (); if (gridRegister != null) { if (gridRegister.RegisterRegionWithGrid (null, true, false, null)) { } // response = "<h3>" + error + "</h3>"; response = "<h3> Error registering region with grid</h3>"; } */ // update region details var infoConnector = Framework.Utilities.DataManager.RequestPlugin<IRegionInfoConnector> (); if (infoConnector != null) { infoConnector.UpdateRegionInfo (newRegion); response = "<h3>Region details updated.</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=region_manager\";}, 2000);" + "</script>"; } else response = "<h3>Unable to update Region details!</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=region_manager\";}, 2000);" + "</script>"; return null; } #endregion #region EditRegion // we have or need data if (httpRequest.Query.ContainsKey ("regionid")) { var region = gridService.GetRegionByUUID (null, UUID.Parse (httpRequest.Query ["regionid"].ToString ())); vars.Add ("RegionID", region.RegionID.ToString ()); vars.Add ("RegionName", region.RegionName); UserAccount estateOwnerAccount = null; var estateOwner = UUID.Zero; var estateId = -1; IEstateConnector estateConnector = Framework.Utilities.DataManager.RequestPlugin<IEstateConnector> (); if (estateConnector != null) { EstateSettings estate = estateConnector.GetEstateSettings (region.RegionID); if (estate != null) { estateId = (int)estate.EstateID; estateOwner = estate.EstateOwner; } var accountService = webInterface.Registry.RequestModuleInterface<IUserAccountService> (); if (accountService != null) estateOwnerAccount = accountService.GetUserAccount (null, estate.EstateOwner); } vars.Add ("EstateList", WebHelpers.EstateSelections (webInterface.Registry, null, estateId)); vars.Add ("OwnerUUID", region.EstateOwner); vars.Add ("OwnerName", estateOwnerAccount != null ? estateOwnerAccount.Name : "No account found"); vars.Add ("RegionLocX", region.RegionLocX / Constants.RegionSize); vars.Add ("RegionLocY", region.RegionLocY / Constants.RegionSize); vars.Add ("RegionSizeX", region.RegionSizeX); vars.Add ("RegionSizeY", region.RegionSizeY); vars.Add ("RegionPort", region.InternalPort.ToString ()); vars.Add ("RegionType", WebHelpers.RegionTypeArgs (translator, region.RegionType)); vars.Add ("RegionPresetType", WebHelpers.RegionPresetArgs (translator, region.RegionType)); vars.Add ("RegionTerrain", WebHelpers.RegionTerrainArgs (translator, region.RegionTerrain)); // TODO: This will not work yet :) bool switches = false; var infoConnector = Framework.Utilities.DataManager.RequestPlugin<IRegionInfoConnector> (); if (infoConnector != null) { var regionInfo = infoConnector.GetRegionInfo (region.RegionID); if (regionInfo != null) { vars.Add ("RegionCapacity", regionInfo.ObjectCapacity.ToString ()); vars.Add ("RegionVisibility", WebHelpers.YesNoSelection (translator, regionInfo.SeeIntoThisSimFromNeighbor)); vars.Add ("RegionInfinite", WebHelpers.YesNoSelection (translator, regionInfo.InfiniteRegion)); vars.Add ("RegionDelayStartup", WebHelpers.RegionStartupSelection (translator, regionInfo.Startup)); } } if (!switches) { vars.Add ("RegionCapacity", "Unknown"); vars.Add ("RegionVisibility", WebHelpers.YesNoSelection (translator, true)); vars.Add ("RegionInfinite", WebHelpers.YesNoSelection (translator, true)); vars.Add ("RegionDelayStartup", WebHelpers.RegionStartupSelection (translator, StartupType.Normal)); } //vars.Add ("RegionOnline", // (region.Flags & (int)RegionFlags.RegionOnline) == (int)RegionFlags.RegionOnline // ? translator.GetTranslatedString ("Online") // : translator.GetTranslatedString ("Offline")); IWebHttpTextureService webTextureService = webInterface.Registry. RequestModuleInterface<IWebHttpTextureService> (); if (webTextureService != null && region.TerrainMapImage != UUID.Zero) vars.Add ("RegionImageURL", webTextureService.GetTextureURL (region.TerrainMapImage)); else vars.Add ("RegionImageURL", "images/icons/no_picture.jpg"); vars.Add ("Submit", translator.GetTranslatedString ("SaveUpdates")); } #endregion else #region NewRegion { // default values // check for user region name seed string [] m_regionNameSeed = null; IConfig regionConfig = webInterface.Registry.RequestModuleInterface<ISimulationBase> ().ConfigSource.Configs ["FileBasedSimulationData"]; if (regionConfig != null) { string regionNameSeed = regionConfig.GetString ("RegionNameSeed", ""); if (regionNameSeed != "") m_regionNameSeed = regionNameSeed.Split (','); } var rNames = new Utilities.MarkovNameGenerator (); string regionName = rNames.FirstName (m_regionNameSeed == null ? Utilities.RegionNames : m_regionNameSeed, 3, 7); vars.Add ("RegionID", ""); vars.Add ("RegionName", regionName); var scenemanager = webInterface.Registry.RequestModuleInterface<ISceneManager> (); var gconnector = Framework.Utilities.DataManager.RequestPlugin<IGenericsConnector> (); var settings = gconnector.GetGeneric<WebUISettings> (UUID.Zero, "WebUISettings", "Settings"); if (settings == null) settings = new WebUISettings (); // get some current details (This may be better than using scenemanager) //List<GridRegion> regions = gridService.GetRegionsByName(null, "", null,null); var currentInfo = scenemanager.FindCurrentRegionInfo (); //Dictionary<string, int> currentInfo = null; if (currentInfo != null) { vars.Add ("RegionLocX", currentInfo ["minX"] > 0 ? currentInfo ["minX"] : settings.MapCenter.X); vars.Add ("RegionLocY", currentInfo ["minY"] > 0 ? currentInfo ["minY"] : settings.MapCenter.Y); vars.Add ("RegionPort", currentInfo ["port"] > 0 ? currentInfo ["port"] + 1 : 9000); } else { vars.Add ("RegionLocX", settings.MapCenter.X); vars.Add ("RegionLocY", settings.MapCenter.Y); vars.Add ("RegionPort", 9000); } vars.Add ("RegionSizeX", Constants.RegionSize); vars.Add ("RegionSizeY", Constants.RegionSize); vars.Add ("RegionType", WebHelpers.RegionTypeArgs (translator, "")); vars.Add ("RegionPresetType", WebHelpers.RegionPresetArgs (translator, "")); vars.Add ("RegionTerrain", WebHelpers.RegionTerrainArgs (translator, "")); vars.Add ("EstateList", WebHelpers.EstateSelections (webInterface.Registry, null, -1)); vars.Add ("RegionCapacity", "Unknown"); vars.Add ("RegionVisibility", WebHelpers.YesNoSelection (translator, true)); vars.Add ("RegionInfinite", WebHelpers.YesNoSelection (translator, true)); vars.Add ("RegionDelayStartup", WebHelpers.RegionStartupSelection (translator, StartupType.Normal)); // normal startup vars.Add ("Submit", translator.GetTranslatedString ("Save")); } #endregion vars.Add ("RegionPresets", WebHelpers.RegionSelections (webInterface.Registry)); // Labels vars.Add ("RegionManagerText", translator.GetTranslatedString ("MenuRegionManager")); vars.Add ("RegionNameText", translator.GetTranslatedString ("RegionNameText")); vars.Add ("RegionLocationText", translator.GetTranslatedString ("RegionLocationText")); vars.Add ("RegionSizeText", translator.GetTranslatedString ("RegionSizeText")); vars.Add ("RegionTypeText", translator.GetTranslatedString ("RegionTypeText")); vars.Add ("RegionPresetText", translator.GetTranslatedString ("RegionPresetText")); vars.Add ("RegionTerrainText", translator.GetTranslatedString ("RegionTerrainText")); vars.Add ("EstateText", translator.GetTranslatedString ("EstateText")); vars.Add ("OwnerNameText", translator.GetTranslatedString ("OwnerNameText")); vars.Add ("RegionPortText", translator.GetTranslatedString ("RegionPortText")); vars.Add ("RegionDelayStartupText", translator.GetTranslatedString ("RegionDelayStartupText")); vars.Add ("RegionVisibilityText", translator.GetTranslatedString ("RegionVisibilityText")); vars.Add ("RegionInfiniteText", translator.GetTranslatedString ("RegionInfiniteText")); vars.Add ("RegionCapacityText", translator.GetTranslatedString ("RegionCapacityText")); vars.Add ("Cancel", translator.GetTranslatedString ("Cancel")); vars.Add ("InfoMessage", ""); return vars; }