diff options
Diffstat (limited to 'GridManager.cs')
-rw-r--r-- | GridManager.cs | 226 |
1 files changed, 113 insertions, 113 deletions
diff --git a/GridManager.cs b/GridManager.cs index c6b7c49..c52bd51 100644 --- a/GridManager.cs +++ b/GridManager.cs | |||
@@ -44,21 +44,21 @@ namespace OpenSim | |||
44 | /// </summary> | 44 | /// </summary> |
45 | public class GridManager | 45 | public class GridManager |
46 | { | 46 | { |
47 | private Server server; | 47 | private Server _server; |
48 | private System.Text.Encoding enc = System.Text.Encoding.ASCII; | 48 | private System.Text.Encoding _enc = System.Text.Encoding.ASCII; |
49 | private AgentManager AgentManager; | 49 | private AgentManager _agentManager; |
50 | private Dictionary<ulong,RegionInfo> Grid; | 50 | public Dictionary<ulong,RegionInfo> Grid; |
51 | 51 | ||
52 | /// <summary> | 52 | /// <summary> |
53 | /// | 53 | /// |
54 | /// </summary> | 54 | /// </summary> |
55 | /// <param name="serve"></param> | 55 | /// <param name="serve"></param> |
56 | /// <param name="agentManager"></param> | 56 | /// <param name="agentManager"></param> |
57 | public GridManager(Server serve, AgentManager agentManager) | 57 | public GridManager(Server server, AgentManager agentManager) |
58 | { | 58 | { |
59 | Grid=new Dictionary<ulong, RegionInfo>(); | 59 | Grid = new Dictionary<ulong, RegionInfo>(); |
60 | server=serve; | 60 | _server = server; |
61 | AgentManager=agentManager; | 61 | _agentManager = agentManager; |
62 | LoadGrid(); | 62 | LoadGrid(); |
63 | } | 63 | } |
64 | 64 | ||
@@ -66,20 +66,20 @@ namespace OpenSim | |||
66 | /// | 66 | /// |
67 | /// </summary> | 67 | /// </summary> |
68 | /// <param name="UserInfo"></param> | 68 | /// <param name="UserInfo"></param> |
69 | public void RequestMapLayer(User_Agent_info UserInfo) | 69 | public void RequestMapLayer(UserAgentInfo userInfo) |
70 | { | 70 | { |
71 | //send a layer covering the 800,800 - 1200,1200 area | 71 | //send a layer covering the 800,800 - 1200,1200 area |
72 | MapLayerReplyPacket MapReply=new MapLayerReplyPacket(); | 72 | MapLayerReplyPacket MapReply = new MapLayerReplyPacket(); |
73 | MapReply.AgentData.AgentID=UserInfo.AgentID; | 73 | MapReply.AgentData.AgentID = userInfo.AgentID; |
74 | MapReply.AgentData.Flags=0; | 74 | MapReply.AgentData.Flags = 0; |
75 | MapReply.LayerData=new MapLayerReplyPacket.LayerDataBlock[1]; | 75 | MapReply.LayerData = new MapLayerReplyPacket.LayerDataBlock[1]; |
76 | MapReply.LayerData[0]=new MapLayerReplyPacket.LayerDataBlock(); | 76 | MapReply.LayerData[0] = new MapLayerReplyPacket.LayerDataBlock(); |
77 | MapReply.LayerData[0].Bottom=800; | 77 | MapReply.LayerData[0].Bottom = 800; |
78 | MapReply.LayerData[0].Left=800; | 78 | MapReply.LayerData[0].Left = 800; |
79 | MapReply.LayerData[0].Top=1200; | 79 | MapReply.LayerData[0].Top = 1200; |
80 | MapReply.LayerData[0].Right=1200; | 80 | MapReply.LayerData[0].Right = 1200; |
81 | MapReply.LayerData[0].ImageID=new LLUUID("00000000-0000-0000-7007-000000000006"); | 81 | MapReply.LayerData[0].ImageID = new LLUUID("00000000-0000-0000-7007-000000000006"); |
82 | server.SendPacket(MapReply,true,UserInfo); | 82 | _server.SendPacket(MapReply, true, userInfo); |
83 | } | 83 | } |
84 | 84 | ||
85 | /// <summary> | 85 | /// <summary> |
@@ -90,28 +90,28 @@ namespace OpenSim | |||
90 | /// <param name="MinY"></param> | 90 | /// <param name="MinY"></param> |
91 | /// <param name="MaxX"></param> | 91 | /// <param name="MaxX"></param> |
92 | /// <param name="MaxY"></param> | 92 | /// <param name="MaxY"></param> |
93 | public void RequestMapBlock(User_Agent_info UserInfo, int MinX, int MinY,int MaxX,int MaxY) | 93 | public void RequestMapBlock(UserAgentInfo userInfo, int minX, int minY,int maxX,int maxY) |
94 | { | 94 | { |
95 | foreach (KeyValuePair<ulong,RegionInfo> RegionPair in this.Grid) | 95 | foreach (KeyValuePair<ulong, RegionInfo> RegionPair in this.Grid) |
96 | { | 96 | { |
97 | //check Region is inside the requested area | 97 | //check Region is inside the requested area |
98 | RegionInfo Region=RegionPair.Value; | 98 | RegionInfo Region = RegionPair.Value; |
99 | if(((Region.X>MinX) && (Region.X<MaxX)) && ((Region.Y>MinY) && (Region.Y<MaxY))) | 99 | if(((Region.X > minX) && (Region.X < maxX)) && ((Region.Y > minY) && (Region.Y < maxY))) |
100 | { | 100 | { |
101 | MapBlockReplyPacket MapReply=new MapBlockReplyPacket(); | 101 | MapBlockReplyPacket MapReply = new MapBlockReplyPacket(); |
102 | MapReply.AgentData.AgentID=UserInfo.AgentID; | 102 | MapReply.AgentData.AgentID = userInfo.AgentID; |
103 | MapReply.AgentData.Flags=0; | 103 | MapReply.AgentData.Flags = 0; |
104 | MapReply.Data=new MapBlockReplyPacket.DataBlock[1]; | 104 | MapReply.Data = new MapBlockReplyPacket.DataBlock[1]; |
105 | MapReply.Data[0]=new MapBlockReplyPacket.DataBlock(); | 105 | MapReply.Data[0] = new MapBlockReplyPacket.DataBlock(); |
106 | MapReply.Data[0].MapImageID=Region.ImageID; | 106 | MapReply.Data[0].MapImageID = Region.ImageID; |
107 | MapReply.Data[0].X=Region.X; | 107 | MapReply.Data[0].X = Region.X; |
108 | MapReply.Data[0].Y=Region.Y; | 108 | MapReply.Data[0].Y = Region.Y; |
109 | MapReply.Data[0].WaterHeight=Region.WaterHeight; | 109 | MapReply.Data[0].WaterHeight = Region.WaterHeight; |
110 | MapReply.Data[0].Name=enc.GetBytes( Region.Name); | 110 | MapReply.Data[0].Name = _enc.GetBytes( Region.Name); |
111 | MapReply.Data[0].RegionFlags=72458694; | 111 | MapReply.Data[0].RegionFlags = 72458694; |
112 | MapReply.Data[0].Access=13; | 112 | MapReply.Data[0].Access = 13; |
113 | MapReply.Data[0].Agents=1; | 113 | MapReply.Data[0].Agents = 1; |
114 | server.SendPacket(MapReply,true,UserInfo); | 114 | _server.SendPacket(MapReply, true, userInfo); |
115 | } | 115 | } |
116 | } | 116 | } |
117 | 117 | ||
@@ -122,35 +122,35 @@ namespace OpenSim | |||
122 | /// </summary> | 122 | /// </summary> |
123 | /// <param name="UserInfo"></param> | 123 | /// <param name="UserInfo"></param> |
124 | /// <param name="Request"></param> | 124 | /// <param name="Request"></param> |
125 | public void RequestTeleport(User_Agent_info UserInfo, TeleportLocationRequestPacket Request) | 125 | public void RequestTeleport(UserAgentInfo userInfo, TeleportLocationRequestPacket request) |
126 | { | 126 | { |
127 | if(Grid.ContainsKey(Request.Info.RegionHandle)) | 127 | if(Grid.ContainsKey(request.Info.RegionHandle)) |
128 | { | 128 | { |
129 | RegionInfo Region=Grid[Request.Info.RegionHandle]; | 129 | RegionInfo Region = Grid[request.Info.RegionHandle]; |
130 | libsecondlife.Packets.TeleportStartPacket TeleportStart=new TeleportStartPacket(); | 130 | libsecondlife.Packets.TeleportStartPacket TeleportStart = new TeleportStartPacket(); |
131 | TeleportStart.Info.TeleportFlags=16; | 131 | TeleportStart.Info.TeleportFlags = 16; |
132 | server.SendPacket(TeleportStart,true,UserInfo); | 132 | _server.SendPacket(TeleportStart, true, userInfo); |
133 | 133 | ||
134 | libsecondlife.Packets.TeleportFinishPacket Teleport=new TeleportFinishPacket(); | 134 | libsecondlife.Packets.TeleportFinishPacket Teleport = new TeleportFinishPacket(); |
135 | Teleport.Info.AgentID=UserInfo.AgentID; | 135 | Teleport.Info.AgentID = userInfo.AgentID; |
136 | Teleport.Info.RegionHandle=Request.Info.RegionHandle; | 136 | Teleport.Info.RegionHandle = request.Info.RegionHandle; |
137 | Teleport.Info.SimAccess=13; | 137 | Teleport.Info.SimAccess = 13; |
138 | Teleport.Info.SeedCapability=new byte[0]; | 138 | Teleport.Info.SeedCapability = new byte[0]; |
139 | 139 | ||
140 | System.Net.IPAddress oIP=System.Net.IPAddress.Parse(Region.IPAddress.Address); | 140 | System.Net.IPAddress oIP = System.Net.IPAddress.Parse(Region.IPAddress.Address); |
141 | byte[] byteIP=oIP.GetAddressBytes(); | 141 | byte[] byteIP = oIP.GetAddressBytes(); |
142 | uint ip=(uint)byteIP[3]<<24; | 142 | uint ip=(uint)byteIP[3]<<24; |
143 | ip+=(uint)byteIP[2]<<16; | 143 | ip+=(uint)byteIP[2]<<16; |
144 | ip+=(uint)byteIP[1]<<8; | 144 | ip+=(uint)byteIP[1]<<8; |
145 | ip+=(uint)byteIP[0]; | 145 | ip+=(uint)byteIP[0]; |
146 | 146 | ||
147 | Teleport.Info.SimIP=ip; | 147 | Teleport.Info.SimIP = ip; |
148 | Teleport.Info.SimPort=Region.IPAddress.Port; | 148 | Teleport.Info.SimPort = Region.IPAddress.Port; |
149 | Teleport.Info.LocationID=4; | 149 | Teleport.Info.LocationID = 4; |
150 | Teleport.Info.TeleportFlags= 1 << 4;; | 150 | Teleport.Info.TeleportFlags = 1 << 4;; |
151 | server.SendPacket(Teleport,true,UserInfo); | 151 | _server.SendPacket(Teleport, true, userInfo); |
152 | 152 | ||
153 | this.AgentManager.RemoveAgent(UserInfo); | 153 | this._agentManager.RemoveAgent(userInfo); |
154 | } | 154 | } |
155 | 155 | ||
156 | } | 156 | } |
@@ -162,13 +162,13 @@ namespace OpenSim | |||
162 | { | 162 | { |
163 | //should connect to a space server to see what grids there are | 163 | //should connect to a space server to see what grids there are |
164 | //but for now we read static xml files | 164 | //but for now we read static xml files |
165 | ulong CurrentHandle=0; | 165 | ulong CurrentHandle = 0; |
166 | bool Login=true; | 166 | bool Login = true; |
167 | 167 | ||
168 | XmlDocument doc = new XmlDocument(); | 168 | XmlDocument doc = new XmlDocument(); |
169 | 169 | ||
170 | try { | 170 | try { |
171 | doc.Load(Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"Grid.ini" )); | 171 | doc.Load(Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Grid.ini" )); |
172 | } | 172 | } |
173 | catch ( Exception e) | 173 | catch ( Exception e) |
174 | { | 174 | { |
@@ -189,102 +189,102 @@ namespace OpenSim | |||
189 | if (nodes.HasChildNodes) { | 189 | if (nodes.HasChildNodes) { |
190 | foreach( XmlNode xmlnc in nodes.ChildNodes) | 190 | foreach( XmlNode xmlnc in nodes.ChildNodes) |
191 | { | 191 | { |
192 | if(xmlnc.Name=="Region") | 192 | if(xmlnc.Name == "Region") |
193 | { | 193 | { |
194 | string xmlAttri; | 194 | string xmlAttri; |
195 | RegionInfo Region=new RegionInfo(); | 195 | RegionInfo Region = new RegionInfo(); |
196 | if(xmlnc.Attributes["Name"]!=null) | 196 | if(xmlnc.Attributes["Name"] != null) |
197 | { | 197 | { |
198 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("Name")).Value; | 198 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("Name")).Value; |
199 | Region.Name=xmlAttri+" \0"; | 199 | Region.Name = xmlAttri+" \0"; |
200 | } | 200 | } |
201 | if(xmlnc.Attributes["ImageID"]!=null) | 201 | if(xmlnc.Attributes["ImageID"] != null) |
202 | { | 202 | { |
203 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("ImageID")).Value; | 203 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("ImageID")).Value; |
204 | Region.ImageID=new LLUUID(xmlAttri); | 204 | Region.ImageID = new LLUUID(xmlAttri); |
205 | } | 205 | } |
206 | if(xmlnc.Attributes["IP_Address"]!=null) | 206 | if(xmlnc.Attributes["IP_Address"] != null) |
207 | { | 207 | { |
208 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("IP_Address")).Value; | 208 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("IP_Address")).Value; |
209 | Region.IPAddress.Address=xmlAttri; | 209 | Region.IPAddress.Address = xmlAttri; |
210 | } | 210 | } |
211 | if(xmlnc.Attributes["IP_Port"]!=null) | 211 | if(xmlnc.Attributes["IP_Port"] != null) |
212 | { | 212 | { |
213 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("IP_Port")).Value; | 213 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("IP_Port")).Value; |
214 | Region.IPAddress.Port=Convert.ToUInt16(xmlAttri); | 214 | Region.IPAddress.Port = Convert.ToUInt16(xmlAttri); |
215 | } | 215 | } |
216 | if(xmlnc.Attributes["Location_X"]!=null) | 216 | if(xmlnc.Attributes["Location_X"] != null) |
217 | { | 217 | { |
218 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("Location_X")).Value; | 218 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("Location_X")).Value; |
219 | Region.X=Convert.ToUInt16(xmlAttri); | 219 | Region.X = Convert.ToUInt16(xmlAttri); |
220 | } | 220 | } |
221 | if(xmlnc.Attributes["Location_Y"]!=null) | 221 | if(xmlnc.Attributes["Location_Y"] != null) |
222 | { | 222 | { |
223 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("Location_Y")).Value; | 223 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("Location_Y")).Value; |
224 | Region.Y=Convert.ToUInt16(xmlAttri); | 224 | Region.Y = Convert.ToUInt16(xmlAttri); |
225 | } | 225 | } |
226 | 226 | ||
227 | this.Grid.Add(Region.Handle,Region); | 227 | this.Grid.Add(Region.Handle, Region); |
228 | 228 | ||
229 | } | 229 | } |
230 | if(xmlnc.Name=="CurrentRegion") | 230 | if(xmlnc.Name == "CurrentRegion") |
231 | { | 231 | { |
232 | 232 | ||
233 | string xmlAttri; | 233 | string xmlAttri; |
234 | uint Rx=0,Ry=0; | 234 | uint Rx = 0, Ry = 0; |
235 | if(xmlnc.Attributes["RegionHandle"]!=null) | 235 | if(xmlnc.Attributes["RegionHandle"] != null) |
236 | { | 236 | { |
237 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("RegionHandle")).Value; | 237 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("RegionHandle")).Value; |
238 | CurrentHandle=Convert.ToUInt64(xmlAttri); | 238 | CurrentHandle = Convert.ToUInt64(xmlAttri); |
239 | 239 | ||
240 | } | 240 | } |
241 | else | 241 | else |
242 | { | 242 | { |
243 | if(xmlnc.Attributes["Region_X"]!=null) | 243 | if(xmlnc.Attributes["Region_X"] != null) |
244 | { | 244 | { |
245 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("Region_X")).Value; | 245 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("Region_X")).Value; |
246 | Rx=Convert.ToUInt32(xmlAttri); | 246 | Rx = Convert.ToUInt32(xmlAttri); |
247 | } | 247 | } |
248 | if(xmlnc.Attributes["Region_Y"]!=null) | 248 | if(xmlnc.Attributes["Region_Y"] != null) |
249 | { | 249 | { |
250 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("Region_Y")).Value; | 250 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("Region_Y")).Value; |
251 | Ry=Convert.ToUInt32(xmlAttri); | 251 | Ry = Convert.ToUInt32(xmlAttri); |
252 | } | 252 | } |
253 | } | 253 | } |
254 | if(xmlnc.Attributes["LoginServer"]!=null) | 254 | if(xmlnc.Attributes["LoginServer"] != null) |
255 | { | 255 | { |
256 | xmlAttri=((XmlAttribute)xmlnc.Attributes.GetNamedItem("LoginServer")).Value; | 256 | xmlAttri = ((XmlAttribute)xmlnc.Attributes.GetNamedItem("LoginServer")).Value; |
257 | Login=Convert.ToBoolean(xmlAttri); | 257 | Login = Convert.ToBoolean(xmlAttri); |
258 | 258 | ||
259 | } | 259 | } |
260 | if(CurrentHandle==0) | 260 | if(CurrentHandle == 0) |
261 | { | 261 | { |
262 | //no RegionHandle set | 262 | //no RegionHandle set |
263 | //so check for Region X and Y | 263 | //so check for Region X and Y |
264 | if((Rx >0) && (Ry>0)) | 264 | if((Rx > 0) && (Ry > 0)) |
265 | { | 265 | { |
266 | CurrentHandle=Helpers.UIntsToLong((Rx*256),(Ry*256)); | 266 | CurrentHandle = Helpers.UIntsToLong((Rx*256), (Ry*256)); |
267 | } | 267 | } |
268 | else | 268 | else |
269 | { | 269 | { |
270 | //seems to be no Region location set | 270 | //seems to be no Region location set |
271 | // so set default | 271 | // so set default |
272 | CurrentHandle=1096213093147648; | 272 | CurrentHandle = 1096213093147648; |
273 | } | 273 | } |
274 | } | 274 | } |
275 | } | 275 | } |
276 | } | 276 | } |
277 | 277 | ||
278 | //finished loading grid, now set Globals to current region | 278 | //finished loading grid, now set Globals to current region |
279 | if(CurrentHandle!=0) | 279 | if(CurrentHandle != 0) |
280 | { | 280 | { |
281 | if(Grid.ContainsKey(CurrentHandle)) | 281 | if(Grid.ContainsKey(CurrentHandle)) |
282 | { | 282 | { |
283 | RegionInfo Region=Grid[CurrentHandle]; | 283 | RegionInfo Region = Grid[CurrentHandle]; |
284 | Globals.Instance.RegionHandle=Region.Handle; | 284 | Globals.Instance.RegionHandle = Region.Handle; |
285 | Globals.Instance.RegionName=Region.Name; | 285 | Globals.Instance.RegionName = Region.Name; |
286 | Globals.Instance.IpPort=Region.IPAddress.Port; | 286 | Globals.Instance.IpPort = Region.IPAddress.Port; |
287 | Globals.Instance.LoginSever=Login; | 287 | Globals.Instance.LoginSever = Login; |
288 | } | 288 | } |
289 | } | 289 | } |
290 | 290 | ||
@@ -317,8 +317,8 @@ namespace OpenSim | |||
317 | } | 317 | } |
318 | set | 318 | set |
319 | { | 319 | { |
320 | x=value; | 320 | x = value; |
321 | Handle=Helpers.UIntsToLong((((uint)x)*256),(((uint)y)*256)); | 321 | Handle = Helpers.UIntsToLong((((uint)x)*256), (((uint)y)*256)); |
322 | } | 322 | } |
323 | } | 323 | } |
324 | public ushort Y | 324 | public ushort Y |
@@ -329,33 +329,33 @@ namespace OpenSim | |||
329 | } | 329 | } |
330 | set | 330 | set |
331 | { | 331 | { |
332 | y=value; | 332 | y = value; |
333 | Handle=Helpers.UIntsToLong((((uint)x)*256),(((uint)y)*256)); | 333 | Handle = Helpers.UIntsToLong((((uint)x)*256), (((uint)y)*256)); |
334 | } | 334 | } |
335 | } | 335 | } |
336 | public ulong Handle | 336 | public ulong Handle |
337 | { | 337 | { |
338 | get | 338 | get |
339 | { | 339 | { |
340 | if(handle>0) | 340 | if(handle > 0) |
341 | { | 341 | { |
342 | return(handle); | 342 | return(handle); |
343 | } | 343 | } |
344 | else | 344 | else |
345 | { | 345 | { |
346 | return(Helpers.UIntsToLong((((uint)x)*256),(((uint)y)*256))); | 346 | return(Helpers.UIntsToLong((((uint)x)*256), (((uint)y)*256))); |
347 | } | 347 | } |
348 | } | 348 | } |
349 | set | 349 | set |
350 | { | 350 | { |
351 | handle=value; | 351 | handle = value; |
352 | } | 352 | } |
353 | 353 | ||
354 | } | 354 | } |
355 | 355 | ||
356 | public RegionInfo() | 356 | public RegionInfo() |
357 | { | 357 | { |
358 | this.IPAddress=new RegionIP(); | 358 | this.IPAddress = new RegionIP(); |
359 | } | 359 | } |
360 | } | 360 | } |
361 | public class RegionIP | 361 | public class RegionIP |