public override void RemoveAvatar(PhysicsActor actor)
{
// MainConsole.Instance.DebugFormat("{0}: RemoveAvatar", LogHeader);
if (!m_initialized)
{
return;
}
BSCharacter bsactor = actor as BSCharacter;
if (bsactor != null)
{
try
{
lock (PhysObjects)
PhysObjects.Remove(bsactor.LocalID);
// Remove kludge someday
lock (m_avatars)
m_avatars.Remove(bsactor);
}
catch (Exception e)
{
MainConsole.Instance.WarnFormat("{0}: Attempt to remove avatar that is not in physics scene: {1}",
LogHeader, e);
}
bsactor.Destroy();
// bsactor.dispose();
}
else
{
MainConsole.Instance.ErrorFormat(
"{0}: Requested to remove avatar that is not a BSCharacter. ID={1}, type={2}",
LogHeader, actor.LocalID, actor.GetType().Name);
}
}