diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 906c862beb..643dca3518 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -454,6 +454,12 @@ namespace OpenSim.Region.Framework.Scenes private string m_defaultScriptEngine; + private int m_unixStartTime; + public int UnixStartTime + { + get { return m_unixStartTime; } + } + /// /// Tick at which the last login occurred. /// @@ -1438,7 +1444,7 @@ namespace OpenSim.Region.Framework.Scenes m_isRunning = true; m_active = true; - + m_unixStartTime = Util.UnixTimeSinceEpoch(); // m_log.DebugFormat("[SCENE]: Starting Heartbeat timer for {0}", RegionInfo.RegionName); if (m_heartbeatThread != null) { diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 089a5a8e6a..8359440f25 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -5785,7 +5785,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_String llGetEnv(LSL_String name) { m_host.AddScriptLPS(1); - if (name == "dynamic_pathfinding") + if (name == "agent_limit") + { + return World.RegionInfo.RegionSettings.AgentLimit.ToString(); + } + else if (name == "dynamic_pathfinding") { return "0"; } @@ -5793,14 +5797,37 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { return World.RegionInfo.EstateSettings.EstateID.ToString(); } + else if (name == "estate_name") + { + return World.RegionInfo.EstateSettings.EstateName; + } else if (name == "frame_number") { return World.Frame.ToString(); } + else if (name == "region_cpu_ratio") + { + return "1"; + } else if (name == "region_idle") { return "0"; } + else if (name == "region_product_name") + { + if (World.RegionInfo.RegionType != String.Empty) + return World.RegionInfo.RegionType; + else + return ""; + } + else if (name == "region_product_sku") + { + return "OpenSim"; + } + else if (name == "region_start_time") + { + return World.UnixStartTime.ToString(); + } else if (name == "sim_channel") { return "OpenSim"; @@ -5809,6 +5836,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { return World.GetSimulatorVersion(); } + else if (name == "simulator_hostname") + { + IUrlModule UrlModule = World.RequestModuleInterface(); + return UrlModule.ExternalHostNameForLSL; + } else { return "";