From d2aa2be7889f22c5830dad19e44b5b3234d448a0 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Fri, 30 May 2008 05:25:50 +0000 Subject: [PATCH] * Added helper method to the Sun module to Get the Linden hour based on the math in the sun module. This populates the sun phase slider on the terrain tab in the estate tools according to the current sun phase. Display purposes only for now. Need to go the other way for setting the sun phase based on the linden hour in the estate tools. --- OpenSim/Framework/EstateSettings.cs | 4 +++- .../World/Estate/EstateManagementModule.cs | 3 ++- .../Environment/Modules/World/Sun/SunModule.cs | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs index 331d7c3a22..d0e56ab86e 100644 --- a/OpenSim/Framework/EstateSettings.cs +++ b/OpenSim/Framework/EstateSettings.cs @@ -199,7 +199,9 @@ namespace OpenSim.Framework set { m_sunHour = value; - configMember.forceSetConfigurationOption("sun_hour", m_sunHour.ToString()); + + if (useFixedSun) + configMember.forceSetConfigurationOption("sun_hour", m_sunHour.ToString()); } } diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs index 6c63c36bbd..96ae0654a3 100644 --- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs @@ -183,7 +183,8 @@ namespace OpenSim.Region.Environment.Modules.World.Estate // Time of day / fixed sun m_scene.RegionInfo.EstateSettings.useFixedSun = UseFixedSun; m_scene.RegionInfo.EstateSettings.sunHour = SunHour; - + //m_log.Debug("[ESTATE]: UFS: " + UseFixedSun.ToString()); + //m_log.Debug("[ESTATE]: SunHour: " + SunHour.ToString()); sendRegionInfoPacketToAll(); } diff --git a/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs b/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs index 6e8c28a39f..889be97aaf 100644 --- a/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs @@ -94,6 +94,9 @@ namespace OpenSim.Region.Environment.Modules private LLVector3 Position = new LLVector3(0,0,0); private LLVector3 Velocity = new LLVector3(0,0,0); private LLQuaternion Tilt = new LLQuaternion(1,0,0,0); + private float LindenEstateHour = 6f; + private bool sunFixed = false; + private long estateTicksOffset = 0; private Dictionary m_rootAgents = new Dictionary(); @@ -101,9 +104,21 @@ namespace OpenSim.Region.Environment.Modules private ulong CurrentTime { get { + return (ulong)(((System.DateTime.Now.Ticks) - TicksToEpoch + TicksOffset)/10000000); } } + private float GetLindenEstateHourFromCurrentTime() + { + float ticksleftover = ((float)((ulong)(((System.DateTime.Now.Ticks) - TicksToEpoch + TicksOffset) / 10000000))) % ((float)SecondsPerSunCycle); + //m_log.Debug("[TICKS]: " + ticksleftover.ToString()); + float hour = (24 * (ticksleftover / SecondsPerSunCycle)) + 6; + //m_log.Debug("[LINDENHOUR]: " + hour.ToString()); + //m_log.Debug("[SunCycle]: " + (ticksleftover / 3600)); + //m_log.Debug("[DayLength]: " + m_day_length.ToString()); + + return hour; + } // Called immediately after the module is loaded for a given region // i.e. Immediately after instance creation. @@ -256,6 +271,7 @@ namespace OpenSim.Region.Environment.Modules // set estate settings for region access to sun position m_scene.RegionInfo.EstateSettings.sunPosition = Position; + m_scene.RegionInfo.EstateSettings.sunHour = GetLindenEstateHourFromCurrentTime(); } ///