bool ISimulationDataLightShareStorageInterface.TryGetValue(UUID regionID, out EnvController.WindlightSkyData skyData, out EnvController.WindlightWaterData waterData) { using (var conn = new NpgsqlConnection(m_ConnectionString)) { conn.Open(); using (var cmd = new NpgsqlCommand("SELECT * FROM lightshare WHERE \"RegionID\" = @regionid LIMIT 1", conn)) { cmd.Parameters.AddParameter("@regionid", regionID); using (NpgsqlDataReader reader = cmd.ExecuteReader()) { if (!reader.Read()) { skyData = EnvController.WindlightSkyData.Defaults; waterData = EnvController.WindlightWaterData.Defaults; return(false); } skyData = new EnvController.WindlightSkyData { Ambient = reader.GetWLVector4("Ambient"), CloudColor = reader.GetWLVector4("CloudColor"), CloudCoverage = (double)reader["CloudCoverage"], BlueDensity = reader.GetWLVector4("BlueDensity"), CloudDetailXYDensity = reader.GetVector3("CloudDetailXYDensity"), CloudScale = (double)reader["CloudScale"], CloudScroll = reader.GetWLVector2("CloudScroll"), CloudScrollXLock = (bool)reader["CloudScrollXLock"], CloudScrollYLock = (bool)reader["CloudScrollYLock"], CloudXYDensity = reader.GetVector3("CloudXYDensity"), DensityMultiplier = (double)reader["DensityMultiplier"], DistanceMultiplier = (double)reader["DistanceMultiplier"], DrawClassicClouds = (bool)reader["DrawClassicClouds"], EastAngle = (double)reader["EastAngle"], HazeDensity = (double)reader["HazeDensity"], HazeHorizon = (double)reader["HazeHorizon"], Horizon = reader.GetWLVector4("Horizon"), MaxAltitude = (int)reader["MaxAltitude"], SceneGamma = (double)reader["SceneGamma"], SunGlowFocus = (double)reader["SunGlowFocus"], SunGlowSize = (double)reader["SunGlowSize"], SunMoonColor = reader.GetWLVector4("SunMoonColor"), SunMoonPosition = (double)reader["SunMoonPosition"] }; waterData = new EnvController.WindlightWaterData { BigWaveDirection = reader.GetWLVector2("BigWaveDirection"), LittleWaveDirection = reader.GetWLVector2("LittleWaveDirection"), BlurMultiplier = (double)reader["BlurMultiplier"], FresnelScale = (double)reader["FresnelScale"], FresnelOffset = (double)reader["FresnelOffset"], NormalMapTexture = reader.GetUUID("NormalMapTexture"), ReflectionWaveletScale = reader.GetVector3("ReflectionWaveletScale"), RefractScaleAbove = (double)reader["RefractScaleAbove"], RefractScaleBelow = (double)reader["RefractScaleBelow"], UnderwaterFogModifier = (double)reader["UnderwaterFogModifier"], Color = reader.GetColor("WaterColor"), FogDensityExponent = (double)reader["FogDensityExponent"] }; return(true); } } } }