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.0.6.5-rc1
parent
2dca78b2bf
commit
988737b182
|
@ -48,8 +48,6 @@ namespace OpenSim.Region.CoreModules
|
||||||
private float m_cloudDensity = 1.0F;
|
private float m_cloudDensity = 1.0F;
|
||||||
private float[] cloudCover = new float[16 * 16];
|
private float[] cloudCover = new float[16 * 16];
|
||||||
|
|
||||||
private Dictionary<UUID, ulong> m_rootAgents = new Dictionary<UUID, ulong>();
|
|
||||||
|
|
||||||
public void Initialise(Scene scene, IConfigSource config)
|
public void Initialise(Scene scene, IConfigSource config)
|
||||||
{
|
{
|
||||||
IConfig cloudConfig = config.Configs["Cloud"];
|
IConfig cloudConfig = config.Configs["Cloud"];
|
||||||
|
@ -66,9 +64,7 @@ namespace OpenSim.Region.CoreModules
|
||||||
|
|
||||||
m_scene = scene;
|
m_scene = scene;
|
||||||
|
|
||||||
scene.EventManager.OnMakeChildAgent += MakeChildAgent;
|
scene.EventManager.OnNewClient += CloudsToClient;
|
||||||
scene.EventManager.OnAvatarEnteringNewParcel += AvatarEnteringParcel;
|
|
||||||
scene.EventManager.OnClientClosed += ClientLoggedOut;
|
|
||||||
scene.RegisterModuleInterface<ICloudModule>(this);
|
scene.RegisterModuleInterface<ICloudModule>(this);
|
||||||
scene.EventManager.OnFrame += CloudUpdate;
|
scene.EventManager.OnFrame += CloudUpdate;
|
||||||
|
|
||||||
|
@ -90,9 +86,7 @@ namespace OpenSim.Region.CoreModules
|
||||||
{
|
{
|
||||||
m_ready = false;
|
m_ready = false;
|
||||||
// Remove our hooks
|
// Remove our hooks
|
||||||
m_scene.EventManager.OnMakeChildAgent -= MakeChildAgent;
|
m_scene.EventManager.OnNewClient -= CloudsToClient;
|
||||||
m_scene.EventManager.OnAvatarEnteringNewParcel -= AvatarEnteringParcel;
|
|
||||||
m_scene.EventManager.OnClientClosed -= ClientLoggedOut;
|
|
||||||
m_scene.EventManager.OnFrame -= CloudUpdate;
|
m_scene.EventManager.OnFrame -= CloudUpdate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -215,46 +209,5 @@ namespace OpenSim.Region.CoreModules
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ClientLoggedOut(UUID AgentId)
|
|
||||||
{
|
|
||||||
lock (m_rootAgents)
|
|
||||||
{
|
|
||||||
if (m_rootAgents.ContainsKey(AgentId))
|
|
||||||
{
|
|
||||||
m_rootAgents.Remove(AgentId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AvatarEnteringParcel(ScenePresence avatar, int localLandID, UUID regionID)
|
|
||||||
{
|
|
||||||
lock (m_rootAgents)
|
|
||||||
{
|
|
||||||
if (m_rootAgents.ContainsKey(avatar.UUID))
|
|
||||||
{
|
|
||||||
m_rootAgents[avatar.UUID] = avatar.RegionHandle;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_rootAgents.Add(avatar.UUID, avatar.RegionHandle);
|
|
||||||
CloudsToClient(avatar.ControllingClient);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MakeChildAgent(ScenePresence avatar)
|
|
||||||
{
|
|
||||||
lock (m_rootAgents)
|
|
||||||
{
|
|
||||||
if (m_rootAgents.ContainsKey(avatar.UUID))
|
|
||||||
{
|
|
||||||
if (m_rootAgents[avatar.UUID] == avatar.RegionHandle)
|
|
||||||
{
|
|
||||||
m_rootAgents.Remove(avatar.UUID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -752,9 +752,9 @@
|
||||||
[Cloud]
|
[Cloud]
|
||||||
; Enable this to generate classic particle clouds above the sim.
|
; Enable this to generate classic particle clouds above the sim.
|
||||||
; default is disabled - turn it on here
|
; default is disabled - turn it on here
|
||||||
enabled = true
|
enabled = false
|
||||||
|
|
||||||
; Density of cloud cover 0.0 to 1.0
|
; Density of cloud cover 0.0 to 1.0 Defult 0.5
|
||||||
density = 0.5
|
density = 0.5
|
||||||
|
|
||||||
; update interval for the cloud cover data returned by llCloud().
|
; update interval for the cloud cover data returned by llCloud().
|
||||||
|
|
Loading…
Reference in New Issue