diff options
Diffstat (limited to 'OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs')
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs index a127010..70018fd 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs | |||
@@ -37,12 +37,18 @@ namespace OpenSim.Region.Communications.OGS1 | |||
37 | 37 | ||
38 | public delegate bool ExpectArrival(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying); | 38 | public delegate bool ExpectArrival(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying); |
39 | 39 | ||
40 | public delegate bool InformRegionPrimGroup(ulong regionHandle, LLUUID primID, LLVector3 Positon, bool isPhysical); | ||
41 | |||
42 | public delegate bool PrimGroupArrival(ulong regionHandle, LLUUID primID, string objData); | ||
43 | |||
40 | public sealed class InterRegionSingleton | 44 | public sealed class InterRegionSingleton |
41 | { | 45 | { |
42 | private static readonly InterRegionSingleton instance = new InterRegionSingleton(); | 46 | private static readonly InterRegionSingleton instance = new InterRegionSingleton(); |
43 | 47 | ||
44 | public event InformRegionChild OnChildAgent; | 48 | public event InformRegionChild OnChildAgent; |
45 | public event ExpectArrival OnArrival; | 49 | public event ExpectArrival OnArrival; |
50 | public event InformRegionPrimGroup OnPrimGroupNear; | ||
51 | public event PrimGroupArrival OnPrimGroupArrival; | ||
46 | 52 | ||
47 | static InterRegionSingleton() | 53 | static InterRegionSingleton() |
48 | { | 54 | { |
@@ -74,6 +80,22 @@ namespace OpenSim.Region.Communications.OGS1 | |||
74 | } | 80 | } |
75 | return false; | 81 | return false; |
76 | } | 82 | } |
83 | public bool InformRegionPrim(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) | ||
84 | { | ||
85 | if (OnPrimGroupNear != null) | ||
86 | { | ||
87 | return OnPrimGroupNear(regionHandle, primID, position, isPhysical); | ||
88 | } | ||
89 | return false; | ||
90 | } | ||
91 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData) | ||
92 | { | ||
93 | if (OnPrimGroupArrival != null) | ||
94 | { | ||
95 | return OnPrimGroupArrival(regionHandle, primID, objData); | ||
96 | } | ||
97 | return false; | ||
98 | } | ||
77 | } | 99 | } |
78 | 100 | ||
79 | public class OGS1InterRegionRemoting : MarshalByRefObject | 101 | public class OGS1InterRegionRemoting : MarshalByRefObject |
@@ -107,5 +129,31 @@ namespace OpenSim.Region.Communications.OGS1 | |||
107 | return false; | 129 | return false; |
108 | } | 130 | } |
109 | } | 131 | } |
132 | public bool InformRegionPrim(ulong regionHandle, LLUUID SceneObjectGroupID, LLVector3 position, bool isPhysical) | ||
133 | { | ||
134 | try | ||
135 | { | ||
136 | return InterRegionSingleton.Instance.InformRegionPrim(regionHandle, SceneObjectGroupID, position, isPhysical); | ||
137 | } | ||
138 | catch (RemotingException e) | ||
139 | { | ||
140 | Console.WriteLine("Remoting Error: Unable to connect to remote region.\n" + e.ToString()); | ||
141 | return false; | ||
142 | } | ||
143 | |||
144 | } | ||
145 | public bool InformRegionOfPrimCrossing(ulong regionHandle,LLUUID primID, string objData) | ||
146 | { | ||
147 | try | ||
148 | { | ||
149 | return InterRegionSingleton.Instance.ExpectPrimCrossing(regionHandle, primID, objData); | ||
150 | } | ||
151 | catch (RemotingException e) | ||
152 | { | ||
153 | Console.WriteLine("Remoting Error: Unable to connect to remote region.\n" + e.ToString()); | ||
154 | return false; | ||
155 | } | ||
156 | } | ||
157 | |||
110 | } | 158 | } |
111 | } \ No newline at end of file | 159 | } \ No newline at end of file |