aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-05-19 02:45:17 +0100
committerJustin Clark-Casey (justincc)2012-05-19 02:45:17 +0100
commit2b60a5c5d64f38caf243119105416c1101c6eb6c (patch)
treeac4ba64c4ef8aa37ff534e3ec7be80281130dc19 /OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
parentEnable FetchInventoryDescendents2 and FetchInventory2 caps by default. This ... (diff)
downloadopensim-SC_OLD-2b60a5c5d64f38caf243119105416c1101c6eb6c.zip
opensim-SC_OLD-2b60a5c5d64f38caf243119105416c1101c6eb6c.tar.gz
opensim-SC_OLD-2b60a5c5d64f38caf243119105416c1101c6eb6c.tar.bz2
opensim-SC_OLD-2b60a5c5d64f38caf243119105416c1101c6eb6c.tar.xz
Add is_megaregion flag into oar control file. Not currently read - for future use. Please do not rely on this remaining here.
An adaptation of part of Garmin's patch from http://opensimulator.org/mantis/view.php?id=5975, thanks! Flag only written if the SW corner OAR is saved - this is the only one that captures object data presently (though not land or terrain data). This adds an IRegionCombinerModule interface and the necessary methods on RegionCombinerModule
Diffstat (limited to '')
-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)