aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs37
1 files changed, 24 insertions, 13 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs b/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs
index eabdf51..4e03e95 100644
--- a/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs
@@ -14,7 +14,10 @@ namespace OpenSim.Region.CoreModules.World.Land
14 { 14 {
15 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 15 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
16 16
17 public string Name { get { return "RegionCombinerModule"; } } 17 public string Name { get
18 {
19 return "RegionCombinerModule";
20 } }
18 public Type ReplaceableInterface 21 public Type ReplaceableInterface
19 { 22 {
20 get { return null; } 23 get { return null; }
@@ -22,11 +25,15 @@ namespace OpenSim.Region.CoreModules.World.Land
22 25
23 private Dictionary<UUID, RegionConnections> m_regions = new Dictionary<UUID, RegionConnections>(); 26 private Dictionary<UUID, RegionConnections> m_regions = new Dictionary<UUID, RegionConnections>();
24 private bool enabledYN = false; 27 private bool enabledYN = false;
28 private Dictionary<UUID, Scene> m_startingScenes = new Dictionary<UUID, Scene>();
29
25 public void Initialise(IConfigSource source) 30 public void Initialise(IConfigSource source)
26 { 31 {
32
27 IConfig myConfig = source.Configs["Startup"]; 33 IConfig myConfig = source.Configs["Startup"];
28 enabledYN = myConfig.GetBoolean("CombineContiguousRegions", false); 34 enabledYN = myConfig.GetBoolean("CombineContiguousRegions", false);
29 //enabledYN = true; 35 //enabledYN = true;
36
30 } 37 }
31 38
32 public void Close() 39 public void Close()
@@ -36,9 +43,13 @@ namespace OpenSim.Region.CoreModules.World.Land
36 43
37 public void AddRegion(Scene scene) 44 public void AddRegion(Scene scene)
38 { 45 {
46
39 if (!enabledYN) 47 if (!enabledYN)
40 return; 48 return;
41 49
50 lock (m_startingScenes)
51 m_startingScenes.Add(scene.RegionInfo.originRegionID, scene);
52
42 Border northBorder = new Border(); 53 Border northBorder = new Border();
43 northBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, (int)Constants.RegionSize); //<--- 54 northBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, (int)Constants.RegionSize); //<---
44 northBorder.CrossDirection = Cardinals.N; 55 northBorder.CrossDirection = Cardinals.N;
@@ -464,11 +475,13 @@ namespace OpenSim.Region.CoreModules.World.Land
464 } 475 }
465 476
466 } 477 }
478
467 } 479 }
468 480
469 public void RemoveRegion(Scene scene) 481 public void RemoveRegion(Scene scene)
470 { 482 {
471 483
484
472 } 485 }
473 486
474 public void RegionLoaded(Scene scene) 487 public void RegionLoaded(Scene scene)
@@ -478,10 +491,12 @@ namespace OpenSim.Region.CoreModules.World.Land
478 491
479 public void PostInitialise() 492 public void PostInitialise()
480 { 493 {
481 if (!enabledYN) 494
482 return; 495 }
483 496
484 // Create a set of infinite borders around the whole aabb of the combined island. 497 // Create a set of infinite borders around the whole aabb of the combined island.
498 private void MakeLargeRegionBounds()
499 {
485 lock (m_regions) 500 lock (m_regions)
486 { 501 {
487 foreach (RegionConnections rconn in m_regions.Values) 502 foreach (RegionConnections rconn in m_regions.Values)
@@ -499,7 +514,7 @@ namespace OpenSim.Region.CoreModules.World.Land
499 { 514 {
500 Border northBorder = new Border(); 515 Border northBorder = new Border();
501 northBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, 516 northBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue,
502 offset.Y + (int) Constants.RegionSize); //<--- 517 offset.Y); //<---
503 northBorder.CrossDirection = Cardinals.N; 518 northBorder.CrossDirection = Cardinals.N;
504 rconn.RegionScene.NorthBorders.Add(northBorder); 519 rconn.RegionScene.NorthBorders.Add(northBorder);
505 } 520 }
@@ -515,8 +530,8 @@ namespace OpenSim.Region.CoreModules.World.Land
515 lock (rconn.RegionScene.EastBorders) 530 lock (rconn.RegionScene.EastBorders)
516 { 531 {
517 Border eastBorder = new Border(); 532 Border eastBorder = new Border();
518 eastBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, offset.Y + (int)Constants.RegionSize); 533 eastBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, offset.Y);
519 //<--- 534 //<---
520 eastBorder.CrossDirection = Cardinals.E; 535 eastBorder.CrossDirection = Cardinals.E;
521 rconn.RegionScene.EastBorders.Add(eastBorder); 536 rconn.RegionScene.EastBorders.Add(eastBorder);
522 } 537 }
@@ -535,10 +550,6 @@ namespace OpenSim.Region.CoreModules.World.Land
535 } 550 }
536 } 551 }
537 } 552 }
538 public void OnFrame()
539 {
540
541 }
542 553
543 554
544 public RegionData GetRegionFromPosition(Vector3 pPosition) 555 public RegionData GetRegionFromPosition(Vector3 pPosition)