diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/Communications/IInterRegionCommunications.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 8 | ||||
-rw-r--r-- | OpenSim/Framework/IRegionCommsListener.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/RegionCommsListener.cs | 4 | ||||
-rw-r--r-- | OpenSim/Framework/RegionInfo.cs | 17 | ||||
-rw-r--r-- | OpenSim/Framework/RegionUpData.cs | 40 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 21 | ||||
-rw-r--r-- | OpenSim/Region/Communications/Local/LocalBackEndServices.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | 32 | ||||
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | 2 |
13 files changed, 155 insertions, 36 deletions
diff --git a/OpenSim/Framework/Communications/IInterRegionCommunications.cs b/OpenSim/Framework/Communications/IInterRegionCommunications.cs index e7e1737..f018dd6 100644 --- a/OpenSim/Framework/Communications/IInterRegionCommunications.cs +++ b/OpenSim/Framework/Communications/IInterRegionCommunications.cs | |||
@@ -35,7 +35,7 @@ namespace OpenSim.Framework.Communications | |||
35 | bool Available { get; } | 35 | bool Available { get; } |
36 | void CheckRegion(string address, uint port); | 36 | void CheckRegion(string address, uint port); |
37 | bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData); | 37 | bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData); |
38 | bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData); | 38 | bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData, int XMLMethod); |
39 | bool RegionUp(SearializableRegionInfo region, ulong regionhandle); | 39 | bool RegionUp(SearializableRegionInfo region, ulong regionhandle); |
40 | bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData); | 40 | bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData); |
41 | 41 | ||
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 518659f..9dd17f9 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -302,6 +302,13 @@ namespace OpenSim.Framework | |||
302 | 302 | ||
303 | public delegate void ObjectDuplicate(uint localID, LLVector3 offset, uint dupeFlags, LLUUID AgentID, LLUUID GroupID); | 303 | public delegate void ObjectDuplicate(uint localID, LLVector3 offset, uint dupeFlags, LLUUID AgentID, LLUUID GroupID); |
304 | 304 | ||
305 | public delegate void ObjectDuplicateOnRay(uint localID, uint dupeFlags, LLUUID AgentID, LLUUID GroupID, | ||
306 | LLUUID RayTargetObj, LLVector3 RayEnd, LLVector3 RayStart, | ||
307 | bool BypassRaycast, bool RayEndIsIntersection, bool CopyCenters, bool CopyRotates); | ||
308 | |||
309 | |||
310 | |||
311 | |||
305 | public delegate void StatusChange(bool status); | 312 | public delegate void StatusChange(bool status); |
306 | 313 | ||
307 | public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status); | 314 | public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status); |
@@ -463,6 +470,7 @@ namespace OpenSim.Framework | |||
463 | event GodKickUser OnGodKickUser; | 470 | event GodKickUser OnGodKickUser; |
464 | 471 | ||
465 | event ObjectDuplicate OnObjectDuplicate; | 472 | event ObjectDuplicate OnObjectDuplicate; |
473 | event ObjectDuplicateOnRay OnObjectDuplicateOnRay; | ||
466 | event UpdateVector OnGrabObject; | 474 | event UpdateVector OnGrabObject; |
467 | event ObjectSelect OnDeGrabObject; | 475 | event ObjectSelect OnDeGrabObject; |
468 | event MoveObject OnGrabUpdate; | 476 | event MoveObject OnGrabUpdate; |
diff --git a/OpenSim/Framework/IRegionCommsListener.cs b/OpenSim/Framework/IRegionCommsListener.cs index c10353b..7726634 100644 --- a/OpenSim/Framework/IRegionCommsListener.cs +++ b/OpenSim/Framework/IRegionCommsListener.cs | |||
@@ -32,7 +32,7 @@ namespace OpenSim.Framework | |||
32 | { | 32 | { |
33 | public delegate void ExpectUserDelegate(ulong regionHandle, AgentCircuitData agent); | 33 | public delegate void ExpectUserDelegate(ulong regionHandle, AgentCircuitData agent); |
34 | 34 | ||
35 | public delegate void ExpectPrimDelegate(ulong regionHandle, LLUUID primID, string objData); | 35 | public delegate bool ExpectPrimDelegate(ulong regionHandle, LLUUID primID, string objData, int XMLMethod); |
36 | 36 | ||
37 | public delegate void UpdateNeighbours(List<RegionInfo> neighbours); | 37 | public delegate void UpdateNeighbours(List<RegionInfo> neighbours); |
38 | 38 | ||
diff --git a/OpenSim/Framework/RegionCommsListener.cs b/OpenSim/Framework/RegionCommsListener.cs index 13d1d28..ee2079b 100644 --- a/OpenSim/Framework/RegionCommsListener.cs +++ b/OpenSim/Framework/RegionCommsListener.cs | |||
@@ -78,12 +78,12 @@ namespace OpenSim.Framework | |||
78 | } | 78 | } |
79 | 79 | ||
80 | 80 | ||
81 | public virtual bool TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData) | 81 | public virtual bool TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData, int XMLMethod) |
82 | { | 82 | { |
83 | handlerExpectPrim = OnExpectPrim; | 83 | handlerExpectPrim = OnExpectPrim; |
84 | if (handlerExpectPrim != null) | 84 | if (handlerExpectPrim != null) |
85 | { | 85 | { |
86 | handlerExpectPrim(regionHandle, primID, objData); | 86 | handlerExpectPrim(regionHandle, primID, objData, XMLMethod); |
87 | return true; | 87 | return true; |
88 | } | 88 | } |
89 | return false; | 89 | return false; |
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index fc6da57..095740d 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -101,6 +101,12 @@ namespace OpenSim.Framework | |||
101 | public bool m_allow_alternate_ports; | 101 | public bool m_allow_alternate_ports; |
102 | 102 | ||
103 | protected string m_serverURI; | 103 | protected string m_serverURI; |
104 | |||
105 | public int getInternalEndPointPort() | ||
106 | { | ||
107 | return m_internalEndPoint.Port; | ||
108 | } | ||
109 | |||
104 | public string ServerURI | 110 | public string ServerURI |
105 | { | 111 | { |
106 | get | 112 | get |
@@ -279,6 +285,17 @@ namespace OpenSim.Framework | |||
279 | RegionID = LLUUID.Zero; | 285 | RegionID = LLUUID.Zero; |
280 | ServerURI = ConvertFrom.ServerURI; | 286 | ServerURI = ConvertFrom.ServerURI; |
281 | } | 287 | } |
288 | public int getInternalEndPointPort() | ||
289 | { | ||
290 | return m_internalEndPoint.Port; | ||
291 | } | ||
292 | public void SetEndPoint(string ipaddr, int port) | ||
293 | { | ||
294 | IPAddress tmpIP = IPAddress.Parse(ipaddr); | ||
295 | IPEndPoint tmpEPE= new IPEndPoint(tmpIP, port); | ||
296 | m_internalEndPoint = tmpEPE; | ||
297 | |||
298 | } | ||
282 | 299 | ||
283 | //not in use, should swap to nini though. | 300 | //not in use, should swap to nini though. |
284 | public void LoadFromNiniSource(IConfigSource source) | 301 | public void LoadFromNiniSource(IConfigSource source) |
diff --git a/OpenSim/Framework/RegionUpData.cs b/OpenSim/Framework/RegionUpData.cs new file mode 100644 index 0000000..dbb805f --- /dev/null +++ b/OpenSim/Framework/RegionUpData.cs | |||
@@ -0,0 +1,40 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | using System.Text; | ||
4 | |||
5 | namespace OpenSim.Framework | ||
6 | { | ||
7 | [Serializable] | ||
8 | public class RegionUpData | ||
9 | { | ||
10 | private uint m_X = 0; | ||
11 | private uint m_Y = 0; | ||
12 | private string m_ipaddr = ""; | ||
13 | private int m_port = 0; | ||
14 | public RegionUpData(uint X, uint Y, string ipaddr, int port) | ||
15 | { | ||
16 | m_X = X; | ||
17 | m_Y = Y; | ||
18 | m_ipaddr = ipaddr; | ||
19 | m_port = port; | ||
20 | } | ||
21 | |||
22 | public uint X | ||
23 | { | ||
24 | get { return m_X; } | ||
25 | } | ||
26 | public uint Y | ||
27 | { | ||
28 | get { return m_Y; } | ||
29 | } | ||
30 | public string IPADDR | ||
31 | { | ||
32 | get { return m_ipaddr; } | ||
33 | } | ||
34 | public int PORT | ||
35 | { | ||
36 | get { return m_port; } | ||
37 | } | ||
38 | |||
39 | } | ||
40 | } | ||
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index a8762e4..10d052e 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -158,6 +158,7 @@ namespace OpenSim.Region.ClientStack | |||
158 | private UpdateShape handlerUpdatePrimShape = null; //null; | 158 | private UpdateShape handlerUpdatePrimShape = null; //null; |
159 | private ObjectExtraParams handlerUpdateExtraParams = null; //OnUpdateExtraParams; | 159 | private ObjectExtraParams handlerUpdateExtraParams = null; //OnUpdateExtraParams; |
160 | private ObjectDuplicate handlerObjectDuplicate = null; | 160 | private ObjectDuplicate handlerObjectDuplicate = null; |
161 | private ObjectDuplicateOnRay handlerObjectDuplicateOnRay = null; | ||
161 | private ObjectSelect handlerObjectSelect = null; | 162 | private ObjectSelect handlerObjectSelect = null; |
162 | private ObjectDeselect handlerObjectDeselect = null; | 163 | private ObjectDeselect handlerObjectDeselect = null; |
163 | private UpdatePrimFlags handlerUpdatePrimFlags = null; //OnUpdatePrimFlags; | 164 | private UpdatePrimFlags handlerUpdatePrimFlags = null; //OnUpdatePrimFlags; |
@@ -675,6 +676,7 @@ namespace OpenSim.Region.ClientStack | |||
675 | public event UpdateVector OnGrabObject; | 676 | public event UpdateVector OnGrabObject; |
676 | public event ObjectSelect OnDeGrabObject; | 677 | public event ObjectSelect OnDeGrabObject; |
677 | public event ObjectDuplicate OnObjectDuplicate; | 678 | public event ObjectDuplicate OnObjectDuplicate; |
679 | public event ObjectDuplicateOnRay OnObjectDuplicateOnRay; | ||
678 | public event MoveObject OnGrabUpdate; | 680 | public event MoveObject OnGrabUpdate; |
679 | public event AddNewPrim OnAddPrim; | 681 | public event AddNewPrim OnAddPrim; |
680 | public event RequestGodlikePowers OnRequestGodlikePowers; | 682 | public event RequestGodlikePowers OnRequestGodlikePowers; |
@@ -3590,7 +3592,26 @@ namespace OpenSim.Region.ClientStack | |||
3590 | // That means multiple object perms may be updated in a single packet. | 3592 | // That means multiple object perms may be updated in a single packet. |
3591 | 3593 | ||
3592 | break; | 3594 | break; |
3595 | case PacketType.ObjectDuplicateOnRay: | ||
3596 | ObjectDuplicateOnRayPacket dupeOnRay = (ObjectDuplicateOnRayPacket)Pack; | ||
3593 | 3597 | ||
3598 | handlerObjectDuplicateOnRay = null; | ||
3599 | |||
3600 | |||
3601 | for (int i = 0; i < dupeOnRay.ObjectData.Length; i++) | ||
3602 | { | ||
3603 | handlerObjectDuplicateOnRay = OnObjectDuplicateOnRay; | ||
3604 | if (handlerObjectDuplicateOnRay != null) | ||
3605 | { | ||
3606 | handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, | ||
3607 | dupeOnRay.AgentData.AgentID, dupeOnRay.AgentData.GroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, | ||
3608 | dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, | ||
3609 | dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); | ||
3610 | } | ||
3611 | } | ||
3612 | |||
3613 | break; | ||
3614 | break; | ||
3594 | case PacketType.RequestObjectPropertiesFamily: | 3615 | case PacketType.RequestObjectPropertiesFamily: |
3595 | //This powers the little tooltip that appears when you move your mouse over an object | 3616 | //This powers the little tooltip that appears when you move your mouse over an object |
3596 | RequestObjectPropertiesFamilyPacket packToolTip = (RequestObjectPropertiesFamilyPacket)Pack; | 3617 | RequestObjectPropertiesFamilyPacket packToolTip = (RequestObjectPropertiesFamilyPacket)Pack; |
diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs index de891a2..f5a5e83 100644 --- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs +++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs | |||
@@ -225,6 +225,12 @@ namespace OpenSim.Region.Communications.Local | |||
225 | public virtual bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) | 225 | public virtual bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) |
226 | { | 226 | { |
227 | RegionInfo region = new RegionInfo(sregion); | 227 | RegionInfo region = new RegionInfo(sregion); |
228 | |||
229 | //region.RegionLocX = sregion.X; | ||
230 | //region.RegionLocY = sregion.Y; | ||
231 | //region.SetEndPoint(sregion.IPADDR, sregion.PORT); | ||
232 | |||
233 | //sregion); | ||
228 | if (m_regionListeners.ContainsKey(regionhandle)) | 234 | if (m_regionListeners.ContainsKey(regionhandle)) |
229 | { | 235 | { |
230 | return m_regionListeners[regionhandle].TriggerRegionUp(region); | 236 | return m_regionListeners[regionhandle].TriggerRegionUp(region); |
@@ -316,11 +322,11 @@ namespace OpenSim.Region.Communications.Local | |||
316 | return false; | 322 | return false; |
317 | } | 323 | } |
318 | 324 | ||
319 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData) | 325 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData, int XMLMethod) |
320 | { | 326 | { |
321 | if (m_regionListeners.ContainsKey(regionHandle)) | 327 | if (m_regionListeners.ContainsKey(regionHandle)) |
322 | { | 328 | { |
323 | m_regionListeners[regionHandle].TriggerExpectPrim(regionHandle, primID, objData); | 329 | m_regionListeners[regionHandle].TriggerExpectPrim(regionHandle, primID, objData, XMLMethod); |
324 | return true; | 330 | return true; |
325 | } | 331 | } |
326 | return false; | 332 | return false; |
@@ -408,11 +414,11 @@ namespace OpenSim.Region.Communications.Local | |||
408 | } | 414 | } |
409 | } | 415 | } |
410 | 416 | ||
411 | public void TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData) | 417 | public void TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData, int XMLMethod) |
412 | { | 418 | { |
413 | if (m_regionListeners.ContainsKey(regionHandle)) | 419 | if (m_regionListeners.ContainsKey(regionHandle)) |
414 | { | 420 | { |
415 | m_regionListeners[regionHandle].TriggerExpectPrim(regionHandle, primID, objData); | 421 | m_regionListeners[regionHandle].TriggerExpectPrim(regionHandle, primID, objData, XMLMethod); |
416 | } | 422 | } |
417 | } | 423 | } |
418 | 424 | ||
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index d19752c..22bb0f0 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -857,6 +857,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
857 | // The region asking the grid services about itself.. | 857 | // The region asking the grid services about itself.. |
858 | // And, surprisingly, the reason is.. it doesn't know | 858 | // And, surprisingly, the reason is.. it doesn't know |
859 | // it's own remoting port! How special. | 859 | // it's own remoting port! How special. |
860 | RegionUpData regiondata = new RegionUpData(region.RegionLocX, region.RegionLocY, region.ExternalHostName, region.InternalEndPoint.Port); | ||
861 | |||
860 | region = new SearializableRegionInfo(RequestNeighbourInfo(region.RegionHandle)); | 862 | region = new SearializableRegionInfo(RequestNeighbourInfo(region.RegionHandle)); |
861 | region.RemotingAddress = region.ExternalHostName; | 863 | region.RemotingAddress = region.ExternalHostName; |
862 | region.RemotingPort = NetworkServersInfo.RemotingListenerPort; | 864 | region.RemotingPort = NetworkServersInfo.RemotingListenerPort; |
@@ -885,7 +887,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
885 | 887 | ||
886 | if (remObject != null) | 888 | if (remObject != null) |
887 | { | 889 | { |
888 | retValue = remObject.RegionUp(region, regionhandle); | 890 | retValue = remObject.RegionUp(regiondata, regionhandle); |
889 | } | 891 | } |
890 | else | 892 | else |
891 | { | 893 | { |
@@ -962,7 +964,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
962 | /// <param name="regionHandle"></param> | 964 | /// <param name="regionHandle"></param> |
963 | /// <param name="agentData"></param> | 965 | /// <param name="agentData"></param> |
964 | /// <returns></returns> | 966 | /// <returns></returns> |
965 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData) | 967 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData, int XMLMethod) |
966 | { | 968 | { |
967 | int failures = 0; | 969 | int failures = 0; |
968 | lock (m_deadRegionCache) | 970 | lock (m_deadRegionCache) |
@@ -977,7 +979,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
977 | RegionInfo regInfo = null; | 979 | RegionInfo regInfo = null; |
978 | try | 980 | try |
979 | { | 981 | { |
980 | if (m_localBackend.InformRegionOfPrimCrossing(regionHandle, primID, objData)) | 982 | if (m_localBackend.InformRegionOfPrimCrossing(regionHandle, primID, objData, XMLMethod)) |
981 | { | 983 | { |
982 | return true; | 984 | return true; |
983 | } | 985 | } |
@@ -996,7 +998,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
996 | 998 | ||
997 | if (remObject != null) | 999 | if (remObject != null) |
998 | { | 1000 | { |
999 | retValue = remObject.InformRegionOfPrimCrossing(regionHandle, primID.UUID, objData); | 1001 | retValue = remObject.InformRegionOfPrimCrossing(regionHandle, primID.UUID, objData, XMLMethod); |
1000 | } | 1002 | } |
1001 | else | 1003 | else |
1002 | { | 1004 | { |
@@ -1325,23 +1327,29 @@ namespace OpenSim.Region.Communications.OGS1 | |||
1325 | } | 1327 | } |
1326 | } | 1328 | } |
1327 | 1329 | ||
1328 | public bool TriggerRegionUp(SearializableRegionInfo regionData, ulong regionhandle) | 1330 | public bool TriggerRegionUp(RegionUpData regionData, ulong regionhandle) |
1329 | { | 1331 | { |
1330 | m_log.Info("[OGS1 GRID SERVICES]: " + | 1332 | m_log.Info("[OGS1 GRID SERVICES]: " + |
1331 | gdebugRegionName + "Incoming OGS1 RegionUpReport: " + "(" + regionData.RegionLocX + | 1333 | gdebugRegionName + "Incoming OGS1 RegionUpReport: " + "(" + regionData.X + |
1332 | "," + regionData.RegionLocY + "). Giving this region a fresh set of 'dead' tries"); | 1334 | "," + regionData.Y + "). Giving this region a fresh set of 'dead' tries"); |
1335 | RegionInfo nRegionInfo = new RegionInfo(); | ||
1336 | nRegionInfo.SetEndPoint("127.0.0.1", regionData.PORT); | ||
1337 | nRegionInfo.ExternalHostName = regionData.IPADDR; | ||
1338 | nRegionInfo.RegionLocX = regionData.X; | ||
1339 | nRegionInfo.RegionLocY = regionData.Y; | ||
1333 | 1340 | ||
1341 | |||
1334 | try | 1342 | try |
1335 | { | 1343 | { |
1336 | lock (m_deadRegionCache) | 1344 | lock (m_deadRegionCache) |
1337 | { | 1345 | { |
1338 | if (m_deadRegionCache.ContainsKey(regionData.RegionHandle)) | 1346 | if (m_deadRegionCache.ContainsKey(nRegionInfo.RegionHandle)) |
1339 | { | 1347 | { |
1340 | m_deadRegionCache.Remove(regionData.RegionHandle); | 1348 | m_deadRegionCache.Remove(nRegionInfo.RegionHandle); |
1341 | } | 1349 | } |
1342 | } | 1350 | } |
1343 | 1351 | ||
1344 | return m_localBackend.TriggerRegionUp(new RegionInfo(regionData), regionhandle); | 1352 | return m_localBackend.TriggerRegionUp(nRegionInfo, regionhandle); |
1345 | } | 1353 | } |
1346 | 1354 | ||
1347 | catch (RemotingException e) | 1355 | catch (RemotingException e) |
@@ -1372,12 +1380,12 @@ namespace OpenSim.Region.Communications.OGS1 | |||
1372 | /// <param name="regionHandle"></param> | 1380 | /// <param name="regionHandle"></param> |
1373 | /// <param name="agentData"></param> | 1381 | /// <param name="agentData"></param> |
1374 | /// <returns></returns> | 1382 | /// <returns></returns> |
1375 | public bool IncomingPrim(ulong regionHandle, LLUUID primID, string objData) | 1383 | public bool IncomingPrim(ulong regionHandle, LLUUID primID, string objData, int XMLMethod) |
1376 | { | 1384 | { |
1377 | // Is this necessary? | 1385 | // Is this necessary? |
1378 | try | 1386 | try |
1379 | { | 1387 | { |
1380 | m_localBackend.TriggerExpectPrim(regionHandle, primID, objData); | 1388 | m_localBackend.TriggerExpectPrim(regionHandle, primID, objData, XMLMethod); |
1381 | return true; | 1389 | return true; |
1382 | //m_localBackend. | 1390 | //m_localBackend. |
1383 | } | 1391 | } |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs index c282464..2e106d7 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs | |||
@@ -38,9 +38,9 @@ namespace OpenSim.Region.Communications.OGS1 | |||
38 | 38 | ||
39 | public delegate bool InformRegionPrimGroup(ulong regionHandle, LLUUID primID, LLVector3 Positon, bool isPhysical); | 39 | public delegate bool InformRegionPrimGroup(ulong regionHandle, LLUUID primID, LLVector3 Positon, bool isPhysical); |
40 | 40 | ||
41 | public delegate bool PrimGroupArrival(ulong regionHandle, LLUUID primID, string objData); | 41 | public delegate bool PrimGroupArrival(ulong regionHandle, LLUUID primID, string objData, int XMLMethod); |
42 | 42 | ||
43 | public delegate bool RegionUp(SearializableRegionInfo region, ulong regionhandle); | 43 | public delegate bool RegionUp(RegionUpData region, ulong regionhandle); |
44 | 44 | ||
45 | public delegate bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate childUpdate); | 45 | public delegate bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate childUpdate); |
46 | 46 | ||
@@ -90,7 +90,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
90 | return false; | 90 | return false; |
91 | } | 91 | } |
92 | 92 | ||
93 | public bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) | 93 | public bool RegionUp(RegionUpData sregion, ulong regionhandle) |
94 | { | 94 | { |
95 | handlerRegionUp = OnRegionUp; | 95 | handlerRegionUp = OnRegionUp; |
96 | if (handlerRegionUp != null) | 96 | if (handlerRegionUp != null) |
@@ -130,12 +130,12 @@ namespace OpenSim.Region.Communications.OGS1 | |||
130 | return false; | 130 | return false; |
131 | } | 131 | } |
132 | 132 | ||
133 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData) | 133 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData, int XMLMethod) |
134 | { | 134 | { |
135 | handlerPrimGroupArrival = OnPrimGroupArrival; | 135 | handlerPrimGroupArrival = OnPrimGroupArrival; |
136 | if (handlerPrimGroupArrival != null) | 136 | if (handlerPrimGroupArrival != null) |
137 | { | 137 | { |
138 | return handlerPrimGroupArrival(regionHandle, primID, objData); | 138 | return handlerPrimGroupArrival(regionHandle, primID, objData, XMLMethod); |
139 | } | 139 | } |
140 | return false; | 140 | return false; |
141 | } | 141 | } |
@@ -173,7 +173,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
173 | } | 173 | } |
174 | } | 174 | } |
175 | 175 | ||
176 | public bool RegionUp(SearializableRegionInfo region, ulong regionhandle) | 176 | public bool RegionUp(RegionUpData region, ulong regionhandle) |
177 | { | 177 | { |
178 | try | 178 | try |
179 | { | 179 | { |
@@ -232,11 +232,11 @@ namespace OpenSim.Region.Communications.OGS1 | |||
232 | } | 232 | } |
233 | } | 233 | } |
234 | 234 | ||
235 | public bool InformRegionOfPrimCrossing(ulong regionHandle, Guid primID, string objData) | 235 | public bool InformRegionOfPrimCrossing(ulong regionHandle, Guid primID, string objData, int XMLMethod) |
236 | { | 236 | { |
237 | try | 237 | try |
238 | { | 238 | { |
239 | return InterRegionSingleton.Instance.ExpectPrimCrossing(regionHandle, new LLUUID(primID), objData); | 239 | return InterRegionSingleton.Instance.ExpectPrimCrossing(regionHandle, new LLUUID(primID), objData, XMLMethod); |
240 | } | 240 | } |
241 | catch (RemotingException e) | 241 | catch (RemotingException e) |
242 | { | 242 | { |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index c07f718..819815b 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -1242,6 +1242,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1242 | m_log.Warn("Prim crossing: " + grp.UUID.ToString()); | 1242 | m_log.Warn("Prim crossing: " + grp.UUID.ToString()); |
1243 | int thisx = (int)RegionInfo.RegionLocX; | 1243 | int thisx = (int)RegionInfo.RegionLocX; |
1244 | int thisy = (int)RegionInfo.RegionLocY; | 1244 | int thisy = (int)RegionInfo.RegionLocY; |
1245 | |||
1246 | int primcrossingXMLmethod = 0; | ||
1247 | |||
1245 | ulong newRegionHandle = 0; | 1248 | ulong newRegionHandle = 0; |
1246 | LLVector3 pos = position; | 1249 | LLVector3 pos = position; |
1247 | 1250 | ||
@@ -1279,7 +1282,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1279 | if (newRegionHandle != 0) | 1282 | if (newRegionHandle != 0) |
1280 | { | 1283 | { |
1281 | bool successYN = false; | 1284 | bool successYN = false; |
1282 | successYN = m_sceneGridService.PrimCrossToNeighboringRegion(newRegionHandle, grp.UUID, m_sceneXmlLoader.SavePrimGroupToXML2String(grp)); | 1285 | successYN = m_sceneGridService.PrimCrossToNeighboringRegion(newRegionHandle, grp.UUID, m_sceneXmlLoader.SavePrimGroupToXML2String(grp), primcrossingXMLmethod); |
1283 | if (successYN) | 1286 | if (successYN) |
1284 | { | 1287 | { |
1285 | // We remove the object here | 1288 | // We remove the object here |
@@ -1306,10 +1309,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
1306 | } | 1309 | } |
1307 | } | 1310 | } |
1308 | 1311 | ||
1309 | public void IncomingInterRegionPrimGroup(ulong regionHandle, LLUUID primID, string objXMLData) | 1312 | public bool IncomingInterRegionPrimGroup(ulong regionHandle, LLUUID primID, string objXMLData, int XMLMethod) |
1310 | { | 1313 | { |
1311 | m_log.Warn("{[INTERREGION]: A new prim arrived from a neighbor"); | 1314 | m_log.Warn("{[INTERREGION]: A new prim arrived from a neighbor"); |
1312 | m_sceneXmlLoader.LoadGroupFromXml2String(objXMLData); | 1315 | if (XMLMethod == 0) |
1316 | { | ||
1317 | m_sceneXmlLoader.LoadGroupFromXml2String(objXMLData); | ||
1318 | return true; | ||
1319 | } | ||
1320 | else | ||
1321 | { | ||
1322 | return false; | ||
1323 | } | ||
1313 | 1324 | ||
1314 | } | 1325 | } |
1315 | 1326 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 7653bf4..db2327e 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -168,12 +168,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
168 | } | 168 | } |
169 | } | 169 | } |
170 | 170 | ||
171 | protected void IncomingPrimCrossing(ulong regionHandle, LLUUID primID, String objXMLData) | 171 | protected bool IncomingPrimCrossing(ulong regionHandle, LLUUID primID, String objXMLData, int XMLMethod) |
172 | { | 172 | { |
173 | handlerExpectPrim = OnExpectPrim; | 173 | handlerExpectPrim = OnExpectPrim; |
174 | if (handlerExpectPrim != null) | 174 | if (handlerExpectPrim != null) |
175 | { | 175 | { |
176 | handlerExpectPrim(regionHandle, primID, objXMLData); | 176 | return handlerExpectPrim(regionHandle, primID, objXMLData, XMLMethod); |
177 | } | ||
178 | else | ||
179 | { | ||
180 | return false; | ||
177 | } | 181 | } |
178 | 182 | ||
179 | } | 183 | } |
@@ -342,8 +346,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
342 | private void InformNeighboursThatRegionIsUpAsync(RegionInfo region, ulong regionhandle) | 346 | private void InformNeighboursThatRegionIsUpAsync(RegionInfo region, ulong regionhandle) |
343 | { | 347 | { |
344 | m_log.Info("[INTERGRID]: Starting to inform neighbors that I'm here"); | 348 | m_log.Info("[INTERGRID]: Starting to inform neighbors that I'm here"); |
349 | //RegionUpData regiondata = new RegionUpData(region.RegionLocX, region.RegionLocY, region.ExternalHostName, region.InternalEndPoint.Port); | ||
350 | |||
345 | bool regionAccepted = | 351 | bool regionAccepted = |
346 | m_commsProvider.InterRegion.RegionUp((new SearializableRegionInfo(region)), regionhandle); | 352 | m_commsProvider.InterRegion.RegionUp(new SearializableRegionInfo(region), regionhandle); |
347 | 353 | ||
348 | if (regionAccepted) | 354 | if (regionAccepted) |
349 | { | 355 | { |
@@ -605,9 +611,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
605 | return m_commsProvider.InterRegion.ExpectAvatarCrossing(regionhandle, agentID, position, isFlying); | 611 | return m_commsProvider.InterRegion.ExpectAvatarCrossing(regionhandle, agentID, position, isFlying); |
606 | } | 612 | } |
607 | 613 | ||
608 | public bool PrimCrossToNeighboringRegion(ulong regionhandle, LLUUID primID, string objData) | 614 | public bool PrimCrossToNeighboringRegion(ulong regionhandle, LLUUID primID, string objData, int XMLMethod) |
609 | { | 615 | { |
610 | return m_commsProvider.InterRegion.InformRegionOfPrimCrossing(regionhandle, primID, objData); | 616 | return m_commsProvider.InterRegion.InformRegionOfPrimCrossing(regionhandle, primID, objData, XMLMethod); |
611 | } | 617 | } |
612 | 618 | ||
613 | 619 | ||
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 705f27e..39d05eb 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -148,6 +148,8 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
148 | public event RegionInfoRequest OnRegionInfoRequest; | 148 | public event RegionInfoRequest OnRegionInfoRequest; |
149 | public event EstateCovenantRequest OnEstateCovenantRequest; | 149 | public event EstateCovenantRequest OnEstateCovenantRequest; |
150 | 150 | ||
151 | public event ObjectDuplicateOnRay OnObjectDuplicateOnRay; | ||
152 | |||
151 | public event FriendActionDelegate OnApproveFriendRequest; | 153 | public event FriendActionDelegate OnApproveFriendRequest; |
152 | public event FriendActionDelegate OnDenyFriendRequest; | 154 | public event FriendActionDelegate OnDenyFriendRequest; |
153 | public event FriendshipTermination OnTerminateFriendship; | 155 | public event FriendshipTermination OnTerminateFriendship; |