mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 09:16:28 +08:00
* Refactor: Separate out RemoveScenePresence and add into InnerScene to match existing AddScenePresence
This commit is contained in:
@@ -520,6 +520,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
Entities[client.AgentId] = newAvatar;
|
||||
}
|
||||
}
|
||||
|
||||
lock (ScenePresences)
|
||||
{
|
||||
if (ScenePresences.ContainsKey(client.AgentId))
|
||||
@@ -535,7 +536,11 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
return newAvatar;
|
||||
}
|
||||
|
||||
public void AddScenePresence(ScenePresence presence)
|
||||
/// <summary>
|
||||
/// Add a presence to the scene
|
||||
/// </summary>
|
||||
/// <param name="presence"></param>
|
||||
internal void AddScenePresence(ScenePresence presence)
|
||||
{
|
||||
bool child = presence.IsChildAgent;
|
||||
|
||||
@@ -563,6 +568,36 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
ScenePresences[presence.UUID] = presence;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove a presence from the scene
|
||||
/// </summary>
|
||||
internal void RemoveScenePresence(LLUUID agentID)
|
||||
{
|
||||
lock (Entities)
|
||||
{
|
||||
if (Entities.Remove(agentID))
|
||||
{
|
||||
//m_log.InfoFormat("[SCENE] Removed scene presence {0} from entities list", agentID);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene Entities list", agentID);
|
||||
}
|
||||
}
|
||||
|
||||
lock (ScenePresences)
|
||||
{
|
||||
if (ScenePresences.Remove(agentID))
|
||||
{
|
||||
//m_log.InfoFormat("[SCENE] Removed scene presence {0}", agentID);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SwapRootChildAgent(bool direction_RC_CR_T_F)
|
||||
{
|
||||
|
||||
@@ -558,18 +558,19 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
m_scripts_enabled = !ScriptEngine;
|
||||
m_log.Info("[TOTEDD]: Here is the method to trigger disabling of the scripting engine");
|
||||
}
|
||||
|
||||
if (m_physics_enabled != !PhysicsEngine)
|
||||
{
|
||||
m_physics_enabled = !PhysicsEngine;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int GetInaccurateNeighborCount()
|
||||
{
|
||||
lock (m_neighbours)
|
||||
return m_neighbours.Count;
|
||||
}
|
||||
|
||||
// This is the method that shuts down the scene.
|
||||
public override void Close()
|
||||
{
|
||||
@@ -1910,29 +1911,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
agentTransactions.RemoveAgentAssetTransactions(agentID);
|
||||
}
|
||||
|
||||
lock (m_scenePresences)
|
||||
{
|
||||
if (m_scenePresences.Remove(agentID))
|
||||
{
|
||||
//m_log.InfoFormat("[SCENE] Removed scene presence {0}", agentID);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID);
|
||||
}
|
||||
}
|
||||
|
||||
lock (Entities)
|
||||
{
|
||||
if (Entities.Remove(agentID))
|
||||
{
|
||||
//m_log.InfoFormat("[SCENE] Removed scene presence {0} from entities list", agentID);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene Entities list", agentID);
|
||||
}
|
||||
}
|
||||
m_innerScene.RemoveScenePresence(agentID);
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user