From 2c685bff1493451849580cfb6bf44b88322bf0a4 Mon Sep 17 00:00:00 2001 From: diva Date: Mon, 9 Feb 2009 22:27:27 +0000 Subject: Moved prim crossing out of OGS1 and into RESTComms and LocalInterregionComms. This breaks interregion comms with older versions in what concerns prim crossing. In the process of moving the comms, a few things seem to be working better, namely this may address mantis #3011, mantis #1698. Hopefully, this doesn't break anything else. But I'm still seeing weirdnesses with attchments jumping out of place after a cross/TP. The two most notable changes in the crossing process were: * Object gets passed in only one message, not two as done before. * Local object crossings do not get serialized, as done before. --- .../Communications/Local/LocalInterregionComms.cs | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs') diff --git a/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs b/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs index cb60d3f..33ccbf4 100644 --- a/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs +++ b/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs @@ -116,6 +116,10 @@ namespace OpenSim.Region.Environment.Modules.Communications.Local #region IInterregionComms + /** + * Agent-related communications + */ + public bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit) { foreach (Scene s in m_sceneList) @@ -204,6 +208,37 @@ namespace OpenSim.Region.Environment.Modules.Communications.Local return false; } + /** + * Object-related communications + */ + + public bool SendCreateObject(ulong regionHandle, ISceneObject sog) + { + foreach (Scene s in m_sceneList) + { + if (s.RegionInfo.RegionHandle == regionHandle) + { + //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject"); + return s.IncomingCreateObject(sog); + } + } + return false; + } + #endregion /* IInterregionComms */ + + #region Misc + + public UUID GetRegionID(ulong regionhandle) + { + foreach (Scene s in m_sceneList) + { + if (s.RegionInfo.RegionHandle == regionhandle) + return s.RegionInfo.RegionID; + } + // ? weird. should not happen + return m_sceneList[0].RegionInfo.RegionID; + } + #endregion } } -- cgit v1.1