From bf8ffc7a0ca9411bd12b96d19075058e79b6c5e3 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sat, 12 Jan 2008 03:17:28 +0000 Subject: * For your enjoyment, some RAdmin improvements, namely a new LoadHeightmap method. --- .../RemoteController/RemoteAdminPlugin.cs | 39 ++++++++++++++++++++++ OpenSim/Region/Environment/Scenes/Scene.cs | 9 +++++ 2 files changed, 48 insertions(+) (limited to 'OpenSim') diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index 0f99c70..cce58c2 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs @@ -66,6 +66,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions m_httpd.AddXmlRPCHandler("admin_shutdown", XmlRpcShutdownMethod); m_httpd.AddXmlRPCHandler("admin_broadcast", XmlRpcAlertMethod); m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod); + m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod); } } catch (NullReferenceException) @@ -135,6 +136,44 @@ namespace OpenSim.ApplicationPlugins.LoadRegions return response; } + public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request) + { + XmlRpcResponse response = new XmlRpcResponse(); + Hashtable requestData = (Hashtable)request.Params[0]; + + Hashtable responseData = new Hashtable(); + if (requiredPassword != "" && + (!requestData.Contains("password") || (string)requestData["password"] != requiredPassword)) + { + responseData["accepted"] = "false"; + response.Value = responseData; + } + else + { + string file = (string)requestData["filename"]; + LLUUID regionID = LLUUID.Parse((string)requestData["regionid"]); + MainLog.Instance.Verbose("RADMIN", "Terrain Loading: " + file); + + responseData["accepted"] = "true"; + + Scene region = null; + + if (m_app.SceneManager.TryGetScene(regionID, out region)) + { + region.LoadWorldMap(file); + responseData["success"] = "true"; + } + else + { + responseData["success"] = "false"; + responseData["error"] = "1: Unable to get a scene with that name."; + } + response.Value = responseData; + } + + return response; + } + public XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request) { MainLog.Instance.Verbose("RADMIN", "Received Shutdown Administrator Request"); diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index d8733f4..5278202 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -775,6 +775,15 @@ namespace OpenSim.Region.Environment.Scenes } /// + /// Loads a world map from a specified R32 file + /// + /// A working R32 file + public void LoadWorldMap(string filename) + { + Terrain.LoadFromFileF32(filename); + } + + /// /// Loads the World heightmap /// /// -- cgit v1.1