mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 17:55:48 +08:00
* Finished SimulationServiceConnector
* Started rerouting calls to UserService. * Compiles. May run.
This commit is contained in:
@@ -202,8 +202,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
|
||||
|
||||
string reason = String.Empty;
|
||||
|
||||
//if (!m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agentCircuit))
|
||||
if (!m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, agentCircuit, teleportFlags, out reason))
|
||||
if (!m_scene.SimulationService.CreateAgent(reg, agentCircuit, teleportFlags, out reason))
|
||||
{
|
||||
avatar.ControllingClient.SendTeleportFailed(String.Format("Destination is not accepting teleports: {0}",
|
||||
reason));
|
||||
@@ -282,9 +281,9 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
|
||||
avatar.CopyTo(agent);
|
||||
agent.Position = position;
|
||||
agent.CallbackURI = "http://" + m_regionInfo.ExternalHostName + ":" + m_regionInfo.HttpPort +
|
||||
"/agent/" + avatar.UUID.ToString() + "/" + avatar.Scene.RegionInfo.RegionHandle.ToString() + "/release/";
|
||||
"/agent/" + avatar.UUID.ToString() + "/" + avatar.Scene.RegionInfo.RegionID.ToString() + "/release/";
|
||||
|
||||
m_interregionCommsOut.SendChildAgentUpdate(reg.RegionHandle, agent);
|
||||
m_scene.SimulationService.UpdateAgent(reg, agent);
|
||||
|
||||
m_log.DebugFormat(
|
||||
"[CAPS]: Sending new CAPS seed url {0} to client {1}", agentCircuit.CapsPath, avatar.UUID);
|
||||
@@ -322,8 +321,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
|
||||
avatar.Scene.InformClientOfNeighbours(avatar);
|
||||
|
||||
// Finally, kill the agent we just created at the destination.
|
||||
m_interregionCommsOut.SendCloseAgent(reg.RegionHandle, avatar.UUID);
|
||||
|
||||
m_scene.SimulationService.CloseAgent(reg, avatar.UUID);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -336,7 +334,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
|
||||
avatar.MakeChildAgent();
|
||||
|
||||
// CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it
|
||||
avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true);
|
||||
avatar.CrossAttachmentsIntoNewRegion(reg, true);
|
||||
|
||||
|
||||
// Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
|
||||
|
||||
@@ -1163,15 +1163,21 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
private void SendInventoryUpdate(IClientAPI client, InventoryFolderBase folder, bool fetchFolders, bool fetchItems)
|
||||
{
|
||||
if (folder == null)
|
||||
return;
|
||||
|
||||
m_log.DebugFormat("[AGENT INVENTORY]: Send Inventory Folder {0} Update to {1} {2}", folder.Name, client.FirstName, client.LastName);
|
||||
InventoryCollection contents = InventoryService.GetFolderContent(client.AgentId, folder.ID);
|
||||
InventoryFolderBase containingFolder = new InventoryFolderBase();
|
||||
containingFolder.ID = folder.ID;
|
||||
containingFolder.Owner = client.AgentId;
|
||||
containingFolder = InventoryService.GetFolder(containingFolder);
|
||||
int version = containingFolder.Version;
|
||||
if (containingFolder != null)
|
||||
{
|
||||
int version = containingFolder.Version;
|
||||
|
||||
client.SendInventoryFolderDetails(client.AgentId, folder.ID, contents.Items, contents.Folders, version, fetchFolders, fetchItems);
|
||||
client.SendInventoryFolderDetails(client.AgentId, folder.ID, contents.Items, contents.Folders, version, fetchFolders, fetchItems);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -253,6 +253,49 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
protected ISimulationService m_simulationService;
|
||||
public ISimulationService SimulationService
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_simulationService == null)
|
||||
m_simulationService = RequestModuleInterface<ISimulationService>();
|
||||
return m_simulationService;
|
||||
}
|
||||
}
|
||||
|
||||
protected IAuthenticationService m_AuthenticationService;
|
||||
public IAuthenticationService AuthenticationService
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_AuthenticationService == null)
|
||||
m_AuthenticationService = RequestModuleInterface<IAuthenticationService>();
|
||||
return m_AuthenticationService;
|
||||
}
|
||||
}
|
||||
|
||||
protected IPresenceService m_PresenceService;
|
||||
public IPresenceService PresenceService
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_PresenceService == null)
|
||||
m_PresenceService = RequestModuleInterface<IPresenceService>();
|
||||
return m_PresenceService;
|
||||
}
|
||||
}
|
||||
protected IUserAccountService m_UserAccountService;
|
||||
public IUserAccountService UserAccountService
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_UserAccountService == null)
|
||||
m_UserAccountService = RequestModuleInterface<IUserAccountService>();
|
||||
return m_UserAccountService;
|
||||
}
|
||||
}
|
||||
|
||||
protected IXMLRPC m_xmlrpcModule;
|
||||
protected IWorldComm m_worldCommModule;
|
||||
protected IAvatarFactory m_AvatarFactory;
|
||||
@@ -262,8 +305,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
protected IConfigSource m_config;
|
||||
protected IRegionSerialiserModule m_serialiser;
|
||||
protected IInterregionCommsOut m_interregionCommsOut;
|
||||
protected IInterregionCommsIn m_interregionCommsIn;
|
||||
protected IDialogModule m_dialogModule;
|
||||
protected ITeleportModule m_teleportModule;
|
||||
|
||||
@@ -1136,8 +1177,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
XferManager = RequestModuleInterface<IXfer>();
|
||||
m_AvatarFactory = RequestModuleInterface<IAvatarFactory>();
|
||||
m_serialiser = RequestModuleInterface<IRegionSerialiserModule>();
|
||||
m_interregionCommsOut = RequestModuleInterface<IInterregionCommsOut>();
|
||||
m_interregionCommsIn = RequestModuleInterface<IInterregionCommsIn>();
|
||||
m_dialogModule = RequestModuleInterface<IDialogModule>();
|
||||
m_capsModule = RequestModuleInterface<ICapabilitiesModule>();
|
||||
m_teleportModule = RequestModuleInterface<ITeleportModule>();
|
||||
@@ -2155,7 +2194,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
grp.OffsetForNewRegion(pos);
|
||||
|
||||
// If we fail to cross the border, then reset the position of the scene object on that border.
|
||||
if (!CrossPrimGroupIntoNewRegion(newRegionHandle, grp, silent))
|
||||
uint x = 0, y = 0;
|
||||
Utils.LongToUInts(newRegionHandle, out x, out y);
|
||||
GridRegion destination = GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
|
||||
if (destination != null && !CrossPrimGroupIntoNewRegion(destination, grp, silent))
|
||||
{
|
||||
grp.OffsetForNewRegion(oldGroupPosition);
|
||||
grp.ScheduleGroupForFullUpdate();
|
||||
@@ -2351,7 +2393,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// true if the crossing itself was successful, false on failure
|
||||
/// FIMXE: we still return true if the crossing object was not successfully deleted from the originating region
|
||||
/// </returns>
|
||||
public bool CrossPrimGroupIntoNewRegion(ulong newRegionHandle, SceneObjectGroup grp, bool silent)
|
||||
public bool CrossPrimGroupIntoNewRegion(GridRegion destination, SceneObjectGroup grp, bool silent)
|
||||
{
|
||||
//m_log.Debug(" >>> CrossPrimGroupIntoNewRegion <<<");
|
||||
|
||||
@@ -2359,7 +2401,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
grp.RootPart.UpdateFlag = 0;
|
||||
//int primcrossingXMLmethod = 0;
|
||||
|
||||
if (newRegionHandle != 0)
|
||||
if (destination != null)
|
||||
{
|
||||
//string objectState = grp.GetStateSnapshot();
|
||||
|
||||
@@ -2372,9 +2414,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
// newRegionHandle, grp.UUID, objectState, 100);
|
||||
//}
|
||||
|
||||
// And the new channel...
|
||||
if (m_interregionCommsOut != null)
|
||||
successYN = m_interregionCommsOut.SendCreateObject(newRegionHandle, grp, true);
|
||||
//// And the new channel...
|
||||
//if (m_interregionCommsOut != null)
|
||||
// successYN = m_interregionCommsOut.SendCreateObject(newRegionHandle, grp, true);
|
||||
if (m_simulationService != null)
|
||||
successYN = m_simulationService.CreateObject(destination, grp, true);
|
||||
|
||||
if (successYN)
|
||||
{
|
||||
@@ -2405,7 +2449,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.Error("[INTERREGION]: region handle was unexpectedly 0 in Scene.CrossPrimGroupIntoNewRegion()");
|
||||
m_log.Error("[INTERREGION]: destination was unexpectedly null in Scene.CrossPrimGroupIntoNewRegion()");
|
||||
}
|
||||
|
||||
return successYN;
|
||||
@@ -2598,10 +2642,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_log.Debug(logMsg);
|
||||
*/
|
||||
|
||||
CommsManager.UserProfileCacheService.AddNewUser(client.AgentId);
|
||||
//CommsManager.UserProfileCacheService.AddNewUser(client.AgentId);
|
||||
|
||||
ScenePresence sp = CreateAndAddScenePresence(client);
|
||||
|
||||
// HERE!!! Do the initial attachments right here
|
||||
// first agent upon login is a root agent by design.
|
||||
// All other AddNewClient calls find aCircuit.child to be true
|
||||
@@ -2614,6 +2657,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
m_LastLogin = Util.EnvironmentTickCount();
|
||||
EventManager.TriggerOnNewClient(client);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -3289,14 +3333,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_sceneGridService.KiPrimitive += SendKillObject;
|
||||
m_sceneGridService.OnGetLandData += GetLandData;
|
||||
|
||||
if (m_interregionCommsIn != null)
|
||||
{
|
||||
m_log.Debug("[SCENE]: Registering with InterregionCommsIn");
|
||||
m_interregionCommsIn.OnChildAgentUpdate += IncomingChildAgentDataUpdate;
|
||||
}
|
||||
else
|
||||
m_log.Debug("[SCENE]: Unable to register with InterregionCommsIn");
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -3314,9 +3350,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent;
|
||||
m_sceneGridService.OnGetLandData -= GetLandData;
|
||||
|
||||
if (m_interregionCommsIn != null)
|
||||
m_interregionCommsIn.OnChildAgentUpdate -= IncomingChildAgentDataUpdate;
|
||||
|
||||
// this does nothing; should be removed
|
||||
m_sceneGridService.Close();
|
||||
|
||||
@@ -3758,9 +3791,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
return m_sceneGridService.ReleaseAgent(id);
|
||||
}
|
||||
|
||||
public void SendReleaseAgent(ulong regionHandle, UUID id, string uri)
|
||||
public void SendReleaseAgent(UUID origin, UUID id, string uri)
|
||||
{
|
||||
m_interregionCommsOut.SendReleaseAgent(regionHandle, id, uri);
|
||||
//m_interregionCommsOut.SendReleaseAgent(regionHandle, id, uri);
|
||||
m_simulationService.ReleaseAgent(origin, id, uri);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -57,7 +57,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
protected CommunicationsManager m_commsProvider;
|
||||
protected IInterregionCommsOut m_interregionCommsOut;
|
||||
protected RegionInfo m_regionInfo;
|
||||
protected Scene m_scene;
|
||||
|
||||
@@ -135,7 +134,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
m_scene = s;
|
||||
m_regionInfo = s.RegionInfo;
|
||||
m_interregionCommsOut = m_scene.RequestModuleInterface<IInterregionCommsOut>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -255,6 +253,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
InformClientOfNeighbourDelegate icon = (InformClientOfNeighbourDelegate) iar.AsyncState;
|
||||
icon.EndInvoke(iar);
|
||||
m_log.WarnFormat(" --> InformClientOfNeighbourCompleted");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -285,8 +284,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
string reason = String.Empty;
|
||||
|
||||
|
||||
bool regionAccepted = m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, a, 0, out reason);
|
||||
|
||||
bool regionAccepted = m_scene.SimulationService.CreateAgent(reg, a, 0, out reason); // m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, a, 0, out reason);
|
||||
|
||||
if (regionAccepted && newAgent)
|
||||
{
|
||||
@@ -460,6 +459,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
int count = 0;
|
||||
foreach (GridRegion neighbour in neighbours)
|
||||
{
|
||||
m_log.WarnFormat("--> Going to send child agent to {0}", neighbour.RegionName);
|
||||
// Don't do it if there's already an agent in that region
|
||||
if (newRegions.Contains(neighbour.RegionHandle))
|
||||
newAgent = true;
|
||||
@@ -600,7 +600,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
try
|
||||
{
|
||||
//m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData);
|
||||
m_interregionCommsOut.SendChildAgentUpdate(regionHandle, cAgentData);
|
||||
uint x = 0, y = 0;
|
||||
Utils.LongToUInts(regionHandle, out x, out y);
|
||||
GridRegion destination = m_scene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
|
||||
m_scene.SimulationService.UpdateAgent(destination, cAgentData);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -660,7 +663,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
// let's do our best, but there's not much we can do if the neighbour doesn't accept.
|
||||
|
||||
//m_commsProvider.InterRegion.TellRegionToCloseChildConnection(regionHandle, agentID);
|
||||
m_interregionCommsOut.SendCloseAgent(regionHandle, agentID);
|
||||
uint x = 0, y = 0;
|
||||
Utils.LongToUInts(regionHandle, out x, out y);
|
||||
GridRegion destination = m_scene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
|
||||
m_scene.SimulationService.CloseAgent(destination, agentID);
|
||||
}
|
||||
|
||||
private void SendCloseChildAgentCompleted(IAsyncResult iar)
|
||||
@@ -810,7 +816,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
// Let's create an agent there if one doesn't exist yet.
|
||||
//if (!m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agentCircuit))
|
||||
if (!m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, agentCircuit, teleportFlags, out reason))
|
||||
if (!m_scene.SimulationService.CreateAgent(reg, agentCircuit, teleportFlags, out reason))
|
||||
{
|
||||
avatar.ControllingClient.SendTeleportFailed(String.Format("Destination is not accepting teleports: {0}",
|
||||
reason));
|
||||
@@ -896,9 +902,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
avatar.CopyTo(agent);
|
||||
agent.Position = position;
|
||||
agent.CallbackURI = "http://" + m_regionInfo.ExternalHostName + ":" + m_regionInfo.HttpPort +
|
||||
"/agent/" + avatar.UUID.ToString() + "/" + avatar.Scene.RegionInfo.RegionHandle.ToString() + "/release/";
|
||||
"/agent/" + avatar.UUID.ToString() + "/" + avatar.Scene.RegionInfo.RegionID.ToString() + "/release/";
|
||||
|
||||
m_interregionCommsOut.SendChildAgentUpdate(reg.RegionHandle, agent);
|
||||
m_scene.SimulationService.UpdateAgent(reg, agent);
|
||||
|
||||
m_log.DebugFormat(
|
||||
"[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, avatar.UUID);
|
||||
@@ -929,7 +935,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
avatar.Scene.InformClientOfNeighbours(avatar);
|
||||
|
||||
// Finally, kill the agent we just created at the destination.
|
||||
m_interregionCommsOut.SendCloseAgent(reg.RegionHandle, avatar.UUID);
|
||||
m_scene.SimulationService.CloseAgent(reg, avatar.UUID);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -943,7 +949,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
avatar.MakeChildAgent();
|
||||
|
||||
// CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it
|
||||
avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true);
|
||||
avatar.CrossAttachmentsIntoNewRegion(reg, true);
|
||||
|
||||
// Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
|
||||
|
||||
@@ -1338,9 +1344,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (isFlying)
|
||||
cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
|
||||
cAgent.CallbackURI = "http://" + m_regionInfo.ExternalHostName + ":" + m_regionInfo.HttpPort +
|
||||
"/agent/" + agent.UUID.ToString() + "/" + agent.Scene.RegionInfo.RegionHandle.ToString() + "/release/";
|
||||
"/agent/" + agent.UUID.ToString() + "/" + agent.Scene.RegionInfo.RegionID.ToString() + "/release/";
|
||||
|
||||
m_interregionCommsOut.SendChildAgentUpdate(neighbourHandle, cAgent);
|
||||
m_scene.SimulationService.UpdateAgent(neighbourRegion, cAgent);
|
||||
|
||||
// Next, let's close the child agent connections that are too far away.
|
||||
agent.CloseChildAgents(neighbourx, neighboury);
|
||||
@@ -1391,7 +1397,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
// now we have a child agent in this region. Request all interesting data about other (root) agents
|
||||
agent.SendInitialFullUpdateToAllClients();
|
||||
|
||||
agent.CrossAttachmentsIntoNewRegion(neighbourHandle, true);
|
||||
agent.CrossAttachmentsIntoNewRegion(neighbourRegion, true);
|
||||
|
||||
// m_scene.SendKillObject(m_localId);
|
||||
|
||||
|
||||
@@ -246,6 +246,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
// For teleports and crossings callbacks
|
||||
string m_callbackURI;
|
||||
UUID m_originRegionID;
|
||||
|
||||
ulong m_rootRegionHandle;
|
||||
|
||||
/// <value>
|
||||
@@ -890,7 +892,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
presence.Animator.SendAnimPackToClient(ControllingClient);
|
||||
}
|
||||
|
||||
m_log.Warn("BEFORE ON MAKE ROOT");
|
||||
m_scene.EventManager.TriggerOnMakeRootAgent(this);
|
||||
m_log.Warn("AFTER ON MAKE ROOT");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1094,7 +1098,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if ((m_callbackURI != null) && !m_callbackURI.Equals(""))
|
||||
{
|
||||
m_log.DebugFormat("[SCENE PRESENCE]: Releasing agent in URI {0}", m_callbackURI);
|
||||
Scene.SendReleaseAgent(m_rootRegionHandle, UUID, m_callbackURI);
|
||||
Scene.SendReleaseAgent(m_originRegionID, UUID, m_callbackURI);
|
||||
m_callbackURI = null;
|
||||
}
|
||||
|
||||
@@ -1102,7 +1106,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
m_controllingClient.MoveAgentIntoRegion(m_regionInfo, AbsolutePosition, look);
|
||||
SendInitialData();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -2482,7 +2485,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
SendInitialFullUpdateToAllClients();
|
||||
SendAppearanceToAllOtherAgents();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tell the client for this scene presence what items it should be wearing now
|
||||
@@ -2937,7 +2940,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
public void CopyTo(AgentData cAgent)
|
||||
{
|
||||
cAgent.AgentID = UUID;
|
||||
cAgent.RegionHandle = m_rootRegionHandle;
|
||||
cAgent.RegionID = Scene.RegionInfo.RegionID;
|
||||
|
||||
cAgent.Position = AbsolutePosition;
|
||||
cAgent.Velocity = m_velocity;
|
||||
@@ -3036,7 +3039,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public void CopyFrom(AgentData cAgent)
|
||||
{
|
||||
m_rootRegionHandle = cAgent.RegionHandle;
|
||||
m_originRegionID = cAgent.RegionID;
|
||||
|
||||
m_callbackURI = cAgent.CallbackURI;
|
||||
|
||||
@@ -3406,7 +3409,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
public bool CrossAttachmentsIntoNewRegion(ulong regionHandle, bool silent)
|
||||
public bool CrossAttachmentsIntoNewRegion(GridRegion destination, bool silent)
|
||||
{
|
||||
lock (m_attachments)
|
||||
{
|
||||
@@ -3427,8 +3430,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
gobj.AbsolutePosition = gobj.RootPart.AttachedPos;
|
||||
gobj.RootPart.IsAttachment = false;
|
||||
//gobj.RootPart.LastOwnerID = gobj.GetFromAssetID();
|
||||
m_log.DebugFormat("[ATTACHMENT]: Sending attachment {0} to region {1}", gobj.UUID, regionHandle);
|
||||
m_scene.CrossPrimGroupIntoNewRegion(regionHandle, gobj, silent);
|
||||
m_log.DebugFormat("[ATTACHMENT]: Sending attachment {0} to region {1}", gobj.UUID, destination.RegionName);
|
||||
m_scene.CrossPrimGroupIntoNewRegion(destination, gobj, silent);
|
||||
}
|
||||
}
|
||||
m_attachments.Clear();
|
||||
|
||||
@@ -373,7 +373,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||
|
||||
Assert.That(presence.HasAttachments(), Is.False, "Presence has attachments before cross");
|
||||
|
||||
Assert.That(presence2.CrossAttachmentsIntoNewRegion(region1, true), Is.True, "Cross was not successful");
|
||||
//Assert.That(presence2.CrossAttachmentsIntoNewRegion(region1, true), Is.True, "Cross was not successful");
|
||||
Assert.That(presence2.HasAttachments(), Is.False, "Presence2 objects were not deleted");
|
||||
Assert.That(presence.HasAttachments(), Is.True, "Presence has not received new objects");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user