diff options
author | Diva Canto | 2010-01-10 15:34:56 -0800 |
---|---|---|
committer | Diva Canto | 2010-01-10 15:34:56 -0800 |
commit | 4dd523b45d1e635c66eb4e556764fabe29dbfc58 (patch) | |
tree | dbd92b59418535e6c2967021124a906a9987088d /OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | |
parent | * Last reference to CommsManager.UserProfileCacheService removed (diff) | |
download | opensim-SC_OLD-4dd523b45d1e635c66eb4e556764fabe29dbfc58.zip opensim-SC_OLD-4dd523b45d1e635c66eb4e556764fabe29dbfc58.tar.gz opensim-SC_OLD-4dd523b45d1e635c66eb4e556764fabe29dbfc58.tar.bz2 opensim-SC_OLD-4dd523b45d1e635c66eb4e556764fabe29dbfc58.tar.xz |
* Changed IPresenceService Logout, so that it takes a position and a lookat
* CommsManager.AvatarService rerouted
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs index 3ca5560..891fc14 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | |||
@@ -42,6 +42,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
43 | 43 | ||
44 | private IPresenceService m_PresenceService; | 44 | private IPresenceService m_PresenceService; |
45 | private Scene m_aScene; | ||
45 | 46 | ||
46 | public PresenceDetector(IPresenceService presenceservice) | 47 | public PresenceDetector(IPresenceService presenceservice) |
47 | { | 48 | { |
@@ -54,6 +55,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
54 | scene.EventManager.OnNewClient += OnNewClient; | 55 | scene.EventManager.OnNewClient += OnNewClient; |
55 | 56 | ||
56 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); | 57 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); |
58 | |||
59 | if (m_aScene == null) | ||
60 | m_aScene = scene; | ||
57 | } | 61 | } |
58 | 62 | ||
59 | public void RemoveRegion(Scene scene) | 63 | public void RemoveRegion(Scene scene) |
@@ -62,6 +66,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
62 | scene.EventManager.OnNewClient -= OnNewClient; | 66 | scene.EventManager.OnNewClient -= OnNewClient; |
63 | 67 | ||
64 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); | 68 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); |
69 | |||
65 | } | 70 | } |
66 | 71 | ||
67 | public void OnMakeRootAgent(ScenePresence sp) | 72 | public void OnMakeRootAgent(ScenePresence sp) |
@@ -78,7 +83,18 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
78 | public void OnLogout(IClientAPI client) | 83 | public void OnLogout(IClientAPI client) |
79 | { | 84 | { |
80 | client.OnLogout -= OnLogout; | 85 | client.OnLogout -= OnLogout; |
81 | m_PresenceService.LogoutAgent(client.SessionId); | 86 | |
87 | ScenePresence sp = null; | ||
88 | Vector3 position = new Vector3(128, 128, 0); | ||
89 | Vector3 lookat = new Vector3(0, 1, 0); | ||
90 | |||
91 | if (m_aScene.TryGetAvatar(client.AgentId, out sp)) | ||
92 | { | ||
93 | position = sp.AbsolutePosition; | ||
94 | lookat = sp.Lookat; | ||
95 | } | ||
96 | m_PresenceService.LogoutAgent(client.SessionId, position, lookat); | ||
97 | |||
82 | } | 98 | } |
83 | } | 99 | } |
84 | } | 100 | } |