From 64fea8f20c581cc7fd726ca8314c045c1739e627 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 12 Sep 2020 16:14:01 +0100 Subject: [PATCH] mantis 8770: let osGetSunParam(day_length) return the same as llGetDayLength() ie day length at prim location --- .../Shared/Api/Implementation/OSSL_Api.cs | 26 +++++++++++++------ .../Shared/Api/Interface/IOSSL_Api.cs | 2 +- .../Shared/Api/Runtime/OSSL_Stub.cs | 2 +- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 6b5d70bedb..c06f13967d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -1638,7 +1638,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return GetSunParam(param); } - public double osGetSunParam(string param) + public LSL_Float osGetSunParam(LSL_String param) { CheckThreatLevel(); return GetSunParam(param); @@ -1646,15 +1646,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api private double GetSunParam(string param) { - double value = 0.0; - - ISunModule module = World.RequestModuleInterface(); - if (module != null) + param = param.ToLower(); + switch(param) { - value = module.GetSunParameter(param); + case "day_length": + if (m_envModule == null) + return 14400; + return m_envModule.GetDayLength(m_host.AbsolutePosition); + case "year_length": + return 365; + case "day_night_offset": + return 0; + case "update_interval": + return 0.1; + case "day_time_sun_hour_scale": + return 1; + default: + break; } - - return value; + return 0; } public void osSunSetParam(string param, double value) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index 3e8c5bb3ab..bd2a461a06 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -250,7 +250,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces void osSetRegionSunSettings(bool useEstateSun, bool sunFixed, double sunHour); void osSetEstateSunSettings(bool sunFixed, double sunHour); LSL_Float osGetCurrentSunHour(); - double osGetSunParam(string param); + LSL_Float osGetSunParam(LSL_String param); double osSunGetParam(string param); // Deprecated void osSetSunParam(string param, double value); void osSunSetParam(string param, double value); // Deprecated diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index f5777b15be..4e824f1334 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -81,7 +81,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase return m_OSSL_Functions.osGetCurrentSunHour(); } - public double osGetSunParam(string param) + public LSL_Float osGetSunParam(LSL_String param) { return m_OSSL_Functions.osGetSunParam(param); }