dont do for children what is for growups ( root agents) ( needs check)

avinationmerge
UbitUmarov 2014-08-09 15:12:02 +01:00
parent 74efe1e393
commit dc7b9c1cc3
1 changed files with 39 additions and 47 deletions

View File

@ -1823,12 +1823,12 @@ namespace OpenSim.Region.Framework.Scenes
Scene.SimulationService.ReleaseAgent(originID, UUID, m_callbackURI); Scene.SimulationService.ReleaseAgent(originID, UUID, m_callbackURI);
m_callbackURI = null; m_callbackURI = null;
} }
// else // else
// { // {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE PRESENCE]: No callback provided on CompleteMovement of {0} {1} to {2}", // "[SCENE PRESENCE]: No callback provided on CompleteMovement of {0} {1} to {2}",
// client.Name, client.AgentId, m_scene.RegionInfo.RegionName); // client.Name, client.AgentId, m_scene.RegionInfo.RegionName);
// } // }
m_previusParcelHide = false; m_previusParcelHide = false;
m_previusParcelUUID = UUID.Zero; m_previusParcelUUID = UUID.Zero;
@ -1838,59 +1838,51 @@ namespace OpenSim.Region.Framework.Scenes
// send initial land overlay and parcel // send initial land overlay and parcel
ILandChannel landch = m_scene.LandChannel; ILandChannel landch = m_scene.LandChannel;
if (landch != null) if (landch != null)
{
landch.sendClientInitialLandInfo(client); landch.sendClientInitialLandInfo(client);
if (!IsChildAgent)
{
newhide = m_currentParcelHide;
m_currentParcelHide = false;
}
}
// send agentData to all clients including us (?) if (!IsChildAgent)
// get appearance
// if in cache sent it to all clients
// send what we have to us, even if not in cache ( bad? )
ValidateAndSendAppearanceAndAgentData();
// attachments
if (isNPC || (TeleportFlags & TeleportFlags.ViaLogin) != 0)
{ {
if (Scene.AttachmentsModule != null) newhide = m_currentParcelHide;
m_currentParcelHide = false;
ValidateAndSendAppearanceAndAgentData();
// attachments
if (isNPC || (TeleportFlags & TeleportFlags.ViaLogin) != 0)
{
if (Scene.AttachmentsModule != null)
// Util.FireAndForget( // Util.FireAndForget(
// o => // o =>
// { // {
Scene.AttachmentsModule.RezAttachments(this); Scene.AttachmentsModule.RezAttachments(this);
// }); // });
} }
else else
{
List<SceneObjectGroup> attachments = GetAttachments();
if (attachments.Count > 0)
{ {
m_log.DebugFormat( List<SceneObjectGroup> attachments = GetAttachments();
"[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name);
// Resume scripts this possible should also be moved down after sending the avatar to viewer ? if (attachments.Count > 0)
foreach (SceneObjectGroup sog in attachments)
{ {
sog.ScheduleGroupForFullUpdate(); m_log.DebugFormat(
sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource()); "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name);
sog.ResumeScripts();
// Resume scripts this possible should also be moved down after sending the avatar to viewer ?
foreach (SceneObjectGroup sog in attachments)
{
sog.ScheduleGroupForFullUpdate();
sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource());
sog.ResumeScripts();
}
} }
} }
}
// m_log.DebugFormat(
// "[SCENE PRESENCE]: Completing movement of {0} into region {1} took {2}ms",
// client.Name, Scene.RegionInfo.RegionName, (DateTime.Now - startTime).Milliseconds);
// Create child agents in neighbouring regions // Create child agents in neighbouring regions
if (openChildAgents && !IsChildAgent) if (openChildAgents)
{ {
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
if (m_agentTransfer != null) if (m_agentTransfer != null)
m_agentTransfer.EnableChildAgents(this); m_agentTransfer.EnableChildAgents(this);
}
} }
// send the rest of the world // send the rest of the world