aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs')
-rw-r--r--OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs22
1 files changed, 20 insertions, 2 deletions
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
index a142f26..37b3037 100644
--- a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
+++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
@@ -43,9 +43,8 @@ using Mono.Addins;
43[assembly: AddinDependency("OpenSim", "0.5")] 43[assembly: AddinDependency("OpenSim", "0.5")]
44namespace OpenSim.Region.RegionCombinerModule 44namespace OpenSim.Region.RegionCombinerModule
45{ 45{
46
47 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] 46 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
48 public class RegionCombinerModule : ISharedRegionModule 47 public class RegionCombinerModule : ISharedRegionModule, IRegionCombinerModule
49 { 48 {
50 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 49 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
51 50
@@ -59,6 +58,15 @@ namespace OpenSim.Region.RegionCombinerModule
59 get { return null; } 58 get { return null; }
60 } 59 }
61 60
61 public bool IsMegaregion
62 {
63 get
64 {
65 lock (m_startingScenes)
66 return m_startingScenes.Count > 1;
67 }
68 }
69
62 private Dictionary<UUID, RegionConnections> m_regions = new Dictionary<UUID, RegionConnections>(); 70 private Dictionary<UUID, RegionConnections> m_regions = new Dictionary<UUID, RegionConnections>();
63 private bool enabledYN = false; 71 private bool enabledYN = false;
64 private Dictionary<UUID, Scene> m_startingScenes = new Dictionary<UUID, Scene>(); 72 private Dictionary<UUID, Scene> m_startingScenes = new Dictionary<UUID, Scene>();
@@ -69,9 +77,11 @@ namespace OpenSim.Region.RegionCombinerModule
69 enabledYN = myConfig.GetBoolean("CombineContiguousRegions", false); 77 enabledYN = myConfig.GetBoolean("CombineContiguousRegions", false);
70 78
71 if (enabledYN) 79 if (enabledYN)
80 {
72 MainConsole.Instance.Commands.AddCommand( 81 MainConsole.Instance.Commands.AddCommand(
73 "RegionCombinerModule", false, "fix-phantoms", "fix-phantoms", 82 "RegionCombinerModule", false, "fix-phantoms", "fix-phantoms",
74 "Fixes phantom objects after an import to megaregions", FixPhantoms); 83 "Fixes phantom objects after an import to megaregions", FixPhantoms);
84 }
75 } 85 }
76 86
77 public void Close() 87 public void Close()
@@ -80,6 +90,8 @@ namespace OpenSim.Region.RegionCombinerModule
80 90
81 public void AddRegion(Scene scene) 91 public void AddRegion(Scene scene)
82 { 92 {
93 if (enabledYN)
94 scene.RegisterModuleInterface<IRegionCombinerModule>(this);
83 } 95 }
84 96
85 public void RemoveRegion(Scene scene) 97 public void RemoveRegion(Scene scene)
@@ -96,6 +108,12 @@ namespace OpenSim.Region.RegionCombinerModule
96 } 108 }
97 } 109 }
98 110
111 public bool IsRootRegion(UUID sceneId)
112 {
113 lock (m_regions)
114 return m_regions.ContainsKey(sceneId);
115 }
116
99 private void NewPresence(ScenePresence presence) 117 private void NewPresence(ScenePresence presence)
100 { 118 {
101 if (presence.IsChildAgent) 119 if (presence.IsChildAgent)