diff options
Diffstat (limited to 'OpenSim/Services')
-rw-r--r-- | OpenSim/Services/GridService/GridService.cs | 14 | ||||
-rw-r--r-- | OpenSim/Services/Interfaces/IGridService.cs | 25 |
2 files changed, 37 insertions, 2 deletions
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs index e72b7f9..137ce04 100644 --- a/OpenSim/Services/GridService/GridService.cs +++ b/OpenSim/Services/GridService/GridService.cs | |||
@@ -313,8 +313,9 @@ namespace OpenSim.Services.GridService | |||
313 | if (region != null) | 313 | if (region != null) |
314 | { | 314 | { |
315 | // Not really? Maybe? | 315 | // Not really? Maybe? |
316 | List<RegionData> rdatas = m_Database.Get(region.posX - (int)Constants.RegionSize - 1, region.posY - (int)Constants.RegionSize - 1, | 316 | List<RegionData> rdatas = m_Database.Get( |
317 | region.posX + (int)Constants.RegionSize + 1, region.posY + (int)Constants.RegionSize + 1, scopeID); | 317 | region.posX - region.sizeX - 1, region.posY - region.sizeY - 1, |
318 | region.posX + region.sizeX + 1, region.posY + region.sizeY + 1, scopeID); | ||
318 | 319 | ||
319 | foreach (RegionData rdata in rdatas) | 320 | foreach (RegionData rdata in rdatas) |
320 | { | 321 | { |
@@ -347,6 +348,11 @@ namespace OpenSim.Services.GridService | |||
347 | return null; | 348 | return null; |
348 | } | 349 | } |
349 | 350 | ||
351 | // Get a region given its base coordinates. | ||
352 | // NOTE: this is NOT 'get a region by some point in the region'. The coordinate MUST | ||
353 | // be the base coordinate of the region. | ||
354 | // The snapping is technically unnecessary but is harmless because regions are always | ||
355 | // multiples of the legacy region size (256). | ||
350 | public GridRegion GetRegionByPosition(UUID scopeID, int x, int y) | 356 | public GridRegion GetRegionByPosition(UUID scopeID, int x, int y) |
351 | { | 357 | { |
352 | int snapX = (int)(x / Constants.RegionSize) * (int)Constants.RegionSize; | 358 | int snapX = (int)(x / Constants.RegionSize) * (int)Constants.RegionSize; |
@@ -441,6 +447,8 @@ namespace OpenSim.Services.GridService | |||
441 | RegionData rdata = new RegionData(); | 447 | RegionData rdata = new RegionData(); |
442 | rdata.posX = (int)rinfo.RegionLocX; | 448 | rdata.posX = (int)rinfo.RegionLocX; |
443 | rdata.posY = (int)rinfo.RegionLocY; | 449 | rdata.posY = (int)rinfo.RegionLocY; |
450 | rdata.sizeX = rinfo.RegionSizeX; | ||
451 | rdata.sizeY = rinfo.RegionSizeY; | ||
444 | rdata.RegionID = rinfo.RegionID; | 452 | rdata.RegionID = rinfo.RegionID; |
445 | rdata.RegionName = rinfo.RegionName; | 453 | rdata.RegionName = rinfo.RegionName; |
446 | rdata.Data = rinfo.ToKeyValuePairs(); | 454 | rdata.Data = rinfo.ToKeyValuePairs(); |
@@ -454,6 +462,8 @@ namespace OpenSim.Services.GridService | |||
454 | GridRegion rinfo = new GridRegion(rdata.Data); | 462 | GridRegion rinfo = new GridRegion(rdata.Data); |
455 | rinfo.RegionLocX = rdata.posX; | 463 | rinfo.RegionLocX = rdata.posX; |
456 | rinfo.RegionLocY = rdata.posY; | 464 | rinfo.RegionLocY = rdata.posY; |
465 | rinfo.RegionSizeX = rdata.sizeX; | ||
466 | rinfo.RegionSizeY = rdata.sizeY; | ||
457 | rinfo.RegionID = rdata.RegionID; | 467 | rinfo.RegionID = rdata.RegionID; |
458 | rinfo.RegionName = rdata.RegionName; | 468 | rinfo.RegionName = rdata.RegionName; |
459 | rinfo.ScopeID = rdata.ScopeID; | 469 | rinfo.ScopeID = rdata.ScopeID; |
diff --git a/OpenSim/Services/Interfaces/IGridService.cs b/OpenSim/Services/Interfaces/IGridService.cs index 88ac5b3..651bd97 100644 --- a/OpenSim/Services/Interfaces/IGridService.cs +++ b/OpenSim/Services/Interfaces/IGridService.cs | |||
@@ -177,6 +177,7 @@ namespace OpenSim.Services.Interfaces | |||
177 | 177 | ||
178 | /// <summary> | 178 | /// <summary> |
179 | /// The location of this region in meters. | 179 | /// The location of this region in meters. |
180 | /// DANGER DANGER! Note that this name means something different in RegionInfo. | ||
180 | /// </summary> | 181 | /// </summary> |
181 | public int RegionLocX | 182 | public int RegionLocX |
182 | { | 183 | { |
@@ -185,8 +186,12 @@ namespace OpenSim.Services.Interfaces | |||
185 | } | 186 | } |
186 | protected int m_regionLocX; | 187 | protected int m_regionLocX; |
187 | 188 | ||
189 | public int RegionSizeX { get; set; } | ||
190 | public int RegionSizeY { get; set; } | ||
191 | |||
188 | /// <summary> | 192 | /// <summary> |
189 | /// The location of this region in meters. | 193 | /// The location of this region in meters. |
194 | /// DANGER DANGER! Note that this name means something different in RegionInfo. | ||
190 | /// </summary> | 195 | /// </summary> |
191 | public int RegionLocY | 196 | public int RegionLocY |
192 | { | 197 | { |
@@ -218,10 +223,13 @@ namespace OpenSim.Services.Interfaces | |||
218 | m_serverURI = string.Empty; | 223 | m_serverURI = string.Empty; |
219 | } | 224 | } |
220 | 225 | ||
226 | /* | ||
221 | public GridRegion(int regionLocX, int regionLocY, IPEndPoint internalEndPoint, string externalUri) | 227 | public GridRegion(int regionLocX, int regionLocY, IPEndPoint internalEndPoint, string externalUri) |
222 | { | 228 | { |
223 | m_regionLocX = regionLocX; | 229 | m_regionLocX = regionLocX; |
224 | m_regionLocY = regionLocY; | 230 | m_regionLocY = regionLocY; |
231 | RegionSizeX = (int)Constants.RegionSize; | ||
232 | RegionSizeY = (int)Constants.RegionSize; | ||
225 | 233 | ||
226 | m_internalEndPoint = internalEndPoint; | 234 | m_internalEndPoint = internalEndPoint; |
227 | m_externalHostName = externalUri; | 235 | m_externalHostName = externalUri; |
@@ -231,16 +239,21 @@ namespace OpenSim.Services.Interfaces | |||
231 | { | 239 | { |
232 | m_regionLocX = regionLocX; | 240 | m_regionLocX = regionLocX; |
233 | m_regionLocY = regionLocY; | 241 | m_regionLocY = regionLocY; |
242 | RegionSizeX = (int)Constants.RegionSize; | ||
243 | RegionSizeY = (int)Constants.RegionSize; | ||
234 | 244 | ||
235 | m_externalHostName = externalUri; | 245 | m_externalHostName = externalUri; |
236 | 246 | ||
237 | m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)port); | 247 | m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)port); |
238 | } | 248 | } |
249 | */ | ||
239 | 250 | ||
240 | public GridRegion(uint xcell, uint ycell) | 251 | public GridRegion(uint xcell, uint ycell) |
241 | { | 252 | { |
242 | m_regionLocX = (int)(xcell * Constants.RegionSize); | 253 | m_regionLocX = (int)(xcell * Constants.RegionSize); |
243 | m_regionLocY = (int)(ycell * Constants.RegionSize); | 254 | m_regionLocY = (int)(ycell * Constants.RegionSize); |
255 | RegionSizeX = (int)Constants.RegionSize; | ||
256 | RegionSizeY = (int)Constants.RegionSize; | ||
244 | } | 257 | } |
245 | 258 | ||
246 | public GridRegion(RegionInfo ConvertFrom) | 259 | public GridRegion(RegionInfo ConvertFrom) |
@@ -248,6 +261,8 @@ namespace OpenSim.Services.Interfaces | |||
248 | m_regionName = ConvertFrom.RegionName; | 261 | m_regionName = ConvertFrom.RegionName; |
249 | m_regionLocX = (int)(ConvertFrom.RegionLocX * Constants.RegionSize); | 262 | m_regionLocX = (int)(ConvertFrom.RegionLocX * Constants.RegionSize); |
250 | m_regionLocY = (int)(ConvertFrom.RegionLocY * Constants.RegionSize); | 263 | m_regionLocY = (int)(ConvertFrom.RegionLocY * Constants.RegionSize); |
264 | RegionSizeX = (int)ConvertFrom.RegionSizeX; | ||
265 | RegionSizeY = (int)ConvertFrom.RegionSizeY; | ||
251 | m_internalEndPoint = ConvertFrom.InternalEndPoint; | 266 | m_internalEndPoint = ConvertFrom.InternalEndPoint; |
252 | m_externalHostName = ConvertFrom.ExternalHostName; | 267 | m_externalHostName = ConvertFrom.ExternalHostName; |
253 | m_httpPort = ConvertFrom.HttpPort; | 268 | m_httpPort = ConvertFrom.HttpPort; |
@@ -266,6 +281,8 @@ namespace OpenSim.Services.Interfaces | |||
266 | m_regionName = ConvertFrom.RegionName; | 281 | m_regionName = ConvertFrom.RegionName; |
267 | m_regionLocX = ConvertFrom.RegionLocX; | 282 | m_regionLocX = ConvertFrom.RegionLocX; |
268 | m_regionLocY = ConvertFrom.RegionLocY; | 283 | m_regionLocY = ConvertFrom.RegionLocY; |
284 | RegionSizeX = ConvertFrom.RegionSizeX; | ||
285 | RegionSizeY = ConvertFrom.RegionSizeY; | ||
269 | m_internalEndPoint = ConvertFrom.InternalEndPoint; | 286 | m_internalEndPoint = ConvertFrom.InternalEndPoint; |
270 | m_externalHostName = ConvertFrom.ExternalHostName; | 287 | m_externalHostName = ConvertFrom.ExternalHostName; |
271 | m_httpPort = ConvertFrom.HttpPort; | 288 | m_httpPort = ConvertFrom.HttpPort; |
@@ -373,6 +390,8 @@ namespace OpenSim.Services.Interfaces | |||
373 | kvp["uuid"] = RegionID.ToString(); | 390 | kvp["uuid"] = RegionID.ToString(); |
374 | kvp["locX"] = RegionLocX.ToString(); | 391 | kvp["locX"] = RegionLocX.ToString(); |
375 | kvp["locY"] = RegionLocY.ToString(); | 392 | kvp["locY"] = RegionLocY.ToString(); |
393 | kvp["sizeX"] = RegionSizeX.ToString(); | ||
394 | kvp["sizeY"] = RegionSizeY.ToString(); | ||
376 | kvp["regionName"] = RegionName; | 395 | kvp["regionName"] = RegionName; |
377 | kvp["serverIP"] = ExternalHostName; //ExternalEndPoint.Address.ToString(); | 396 | kvp["serverIP"] = ExternalHostName; //ExternalEndPoint.Address.ToString(); |
378 | kvp["serverHttpPort"] = HttpPort.ToString(); | 397 | kvp["serverHttpPort"] = HttpPort.ToString(); |
@@ -399,6 +418,12 @@ namespace OpenSim.Services.Interfaces | |||
399 | if (kvp.ContainsKey("locY")) | 418 | if (kvp.ContainsKey("locY")) |
400 | RegionLocY = Convert.ToInt32((string)kvp["locY"]); | 419 | RegionLocY = Convert.ToInt32((string)kvp["locY"]); |
401 | 420 | ||
421 | if (kvp.ContainsKey("sizeX")) | ||
422 | RegionSizeX = Convert.ToInt32((string)kvp["sizeX"]); | ||
423 | |||
424 | if (kvp.ContainsKey("sizeY")) | ||
425 | RegionSizeY = Convert.ToInt32((string)kvp["sizeY"]); | ||
426 | |||
402 | if (kvp.ContainsKey("regionName")) | 427 | if (kvp.ContainsKey("regionName")) |
403 | RegionName = (string)kvp["regionName"]; | 428 | RegionName = (string)kvp["regionName"]; |
404 | 429 | ||