aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authoridb2009-04-11 10:18:20 +0000
committeridb2009-04-11 10:18:20 +0000
commit988737b182a59bc0bca72b3c302ab68dd9c5ccfb (patch)
tree481d5527ab3a81dbc0c5df1cea6b27bae52a583b
parent* BulletDotNETPlugin supports Axis lock (LLSetStatus) from the script engine ... (diff)
downloadopensim-SC-988737b182a59bc0bca72b3c302ab68dd9c5ccfb.zip
opensim-SC-988737b182a59bc0bca72b3c302ab68dd9c5ccfb.tar.gz
opensim-SC-988737b182a59bc0bca72b3c302ab68dd9c5ccfb.tar.bz2
opensim-SC-988737b182a59bc0bca72b3c302ab68dd9c5ccfb.tar.xz
Correct Opensim.ini.example to reflect the default settings for clouds.
Fixes Mantis #3421 Change the agent/avatar events subscriptions to just OnNewClient. The data only needs to be sent once and keeping track of log ins/movements is not required. This will also send cloud data to child agents so that they can see clouds above neighbouring regions not just regions that they have visited.
-rw-r--r--OpenSim/Region/CoreModules/World/Cloud/CloudModule.cs51
-rw-r--r--bin/OpenSim.ini.example4
2 files changed, 4 insertions, 51 deletions
diff --git a/OpenSim/Region/CoreModules/World/Cloud/CloudModule.cs b/OpenSim/Region/CoreModules/World/Cloud/CloudModule.cs
index b9c716f..ca25a23 100644
--- a/OpenSim/Region/CoreModules/World/Cloud/CloudModule.cs
+++ b/OpenSim/Region/CoreModules/World/Cloud/CloudModule.cs
@@ -48,8 +48,6 @@ namespace OpenSim.Region.CoreModules
48 private float m_cloudDensity = 1.0F; 48 private float m_cloudDensity = 1.0F;
49 private float[] cloudCover = new float[16 * 16]; 49 private float[] cloudCover = new float[16 * 16];
50 50
51 private Dictionary<UUID, ulong> m_rootAgents = new Dictionary<UUID, ulong>();
52
53 public void Initialise(Scene scene, IConfigSource config) 51 public void Initialise(Scene scene, IConfigSource config)
54 { 52 {
55 IConfig cloudConfig = config.Configs["Cloud"]; 53 IConfig cloudConfig = config.Configs["Cloud"];
@@ -66,9 +64,7 @@ namespace OpenSim.Region.CoreModules
66 64
67 m_scene = scene; 65 m_scene = scene;
68 66
69 scene.EventManager.OnMakeChildAgent += MakeChildAgent; 67 scene.EventManager.OnNewClient += CloudsToClient;
70 scene.EventManager.OnAvatarEnteringNewParcel += AvatarEnteringParcel;
71 scene.EventManager.OnClientClosed += ClientLoggedOut;
72 scene.RegisterModuleInterface<ICloudModule>(this); 68 scene.RegisterModuleInterface<ICloudModule>(this);
73 scene.EventManager.OnFrame += CloudUpdate; 69 scene.EventManager.OnFrame += CloudUpdate;
74 70
@@ -90,9 +86,7 @@ namespace OpenSim.Region.CoreModules
90 { 86 {
91 m_ready = false; 87 m_ready = false;
92 // Remove our hooks 88 // Remove our hooks
93 m_scene.EventManager.OnMakeChildAgent -= MakeChildAgent; 89 m_scene.EventManager.OnNewClient -= CloudsToClient;
94 m_scene.EventManager.OnAvatarEnteringNewParcel -= AvatarEnteringParcel;
95 m_scene.EventManager.OnClientClosed -= ClientLoggedOut;
96 m_scene.EventManager.OnFrame -= CloudUpdate; 90 m_scene.EventManager.OnFrame -= CloudUpdate;
97 } 91 }
98 } 92 }
@@ -215,46 +209,5 @@ namespace OpenSim.Region.CoreModules
215 } 209 }
216 } 210 }
217 } 211 }
218
219 private void ClientLoggedOut(UUID AgentId)
220 {
221 lock (m_rootAgents)
222 {
223 if (m_rootAgents.ContainsKey(AgentId))
224 {
225 m_rootAgents.Remove(AgentId);
226 }
227 }
228 }
229
230 private void AvatarEnteringParcel(ScenePresence avatar, int localLandID, UUID regionID)
231 {
232 lock (m_rootAgents)
233 {
234 if (m_rootAgents.ContainsKey(avatar.UUID))
235 {
236 m_rootAgents[avatar.UUID] = avatar.RegionHandle;
237 }
238 else
239 {
240 m_rootAgents.Add(avatar.UUID, avatar.RegionHandle);
241 CloudsToClient(avatar.ControllingClient);
242 }
243 }
244 }
245
246 private void MakeChildAgent(ScenePresence avatar)
247 {
248 lock (m_rootAgents)
249 {
250 if (m_rootAgents.ContainsKey(avatar.UUID))
251 {
252 if (m_rootAgents[avatar.UUID] == avatar.RegionHandle)
253 {
254 m_rootAgents.Remove(avatar.UUID);
255 }
256 }
257 }
258 }
259 } 212 }
260} 213}
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 2826462..ee2cfd6 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -752,9 +752,9 @@
752[Cloud] 752[Cloud]
753 ; Enable this to generate classic particle clouds above the sim. 753 ; Enable this to generate classic particle clouds above the sim.
754 ; default is disabled - turn it on here 754 ; default is disabled - turn it on here
755 enabled = true 755 enabled = false
756 756
757 ; Density of cloud cover 0.0 to 1.0 757 ; Density of cloud cover 0.0 to 1.0 Defult 0.5
758 density = 0.5 758 density = 0.5
759 759
760 ; update interval for the cloud cover data returned by llCloud(). 760 ; update interval for the cloud cover data returned by llCloud().