From 59c8a02a24fb04313ede77ba926da29ed43ec6cd Mon Sep 17 00:00:00 2001 From: "Teravus Ovares (Dan Olivares)" Date: Sun, 30 Aug 2009 00:22:38 -0400 Subject: [PATCH] * When the RegionCombinerModule is off, make borders have an infinite aabb perpendicular to the cardinal --- .../World/Land/RegionCombinerModule.cs | 22 ++++++++++++++++++- OpenSim/Region/Framework/Scenes/Scene.cs | 10 ++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs b/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs index 381d5ec84f..79c9839aa8 100644 --- a/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs @@ -28,7 +28,7 @@ namespace OpenSim.Region.CoreModules.World.Land { IConfig myConfig = source.Configs["Startup"]; enabledYN = myConfig.GetBoolean("CombineContiguousRegions", false); - + //enabledYN = true; } public void Close() @@ -41,6 +41,26 @@ namespace OpenSim.Region.CoreModules.World.Land if (!enabledYN) return; + Border northBorder = new Border(); + northBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, (int)Constants.RegionSize); //<--- + northBorder.CrossDirection = Cardinals.N; + scene.NorthBorders[0] = northBorder; + + Border southBorder = new Border(); + southBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, 0); //---> + southBorder.CrossDirection = Cardinals.S; + scene.SouthBorders[0] = southBorder; + + Border eastBorder = new Border(); + eastBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, (int)Constants.RegionSize); //<--- + eastBorder.CrossDirection = Cardinals.E; + scene.EastBorders[0] = eastBorder; + + Border westBorder = new Border(); + westBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, 0); //---> + westBorder.CrossDirection = Cardinals.W; + scene.WestBorders[0] = westBorder; + RegionConnections regionConnections = new RegionConnections(); regionConnections.ConnectedRegions = new List(); regionConnections.RegionScene = scene; diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 3e573cfafe..e66f1e6d10 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -489,22 +489,22 @@ namespace OpenSim.Region.Framework.Scenes { BordersLocked = true; Border northBorder = new Border(); - northBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, (int)Constants.RegionSize); //<--- + northBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (int)Constants.RegionSize); //<--- northBorder.CrossDirection = Cardinals.N; NorthBorders.Add(northBorder); Border southBorder = new Border(); - southBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, 0); //---> + southBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, 0); //---> southBorder.CrossDirection = Cardinals.S; SouthBorders.Add(southBorder); Border eastBorder = new Border(); - eastBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, (int)Constants.RegionSize); //<--- + eastBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (int)Constants.RegionSize); //<--- eastBorder.CrossDirection = Cardinals.E; EastBorders.Add(eastBorder); Border westBorder = new Border(); - westBorder.BorderLine = new Vector3(0, (int)Constants.RegionSize, 0); //---> + westBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, 0); //---> westBorder.CrossDirection = Cardinals.W; WestBorders.Add(westBorder); BordersLocked = false; @@ -3354,7 +3354,7 @@ namespace OpenSim.Region.Framework.Scenes Utils.LongToUInts(regionHandle, out regionX, out regionY); int shiftx = (int) regionX - (int) m_regInfo.RegionLocX * (int)Constants.RegionSize; - int shifty = (int)regionY - (int)m_regInfo.RegionLocY * (int)Constants.RegionSize; + int shifty = (int) regionY - (int) m_regInfo.RegionLocY * (int)Constants.RegionSize; position.X += shiftx; position.Y += shifty;