aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs49
1 files changed, 22 insertions, 27 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 9ea92b0..2d74913 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -74,7 +74,7 @@ namespace OpenSim.Region.Environment.Scenes
74 public bool m_physicalPrim; 74 public bool m_physicalPrim;
75 public bool m_sendTasksToChild; 75 public bool m_sendTasksToChild;
76 private int m_RestartTimerCounter; 76 private int m_RestartTimerCounter;
77 private Timer t_restartTimer = new Timer(15000); // Wait before firing 77 private readonly Timer m_restartTimer = new Timer(15000); // Wait before firing
78 private int m_incrementsof15seconds = 0; 78 private int m_incrementsof15seconds = 0;
79 79
80 protected ModuleLoader m_moduleLoader; 80 protected ModuleLoader m_moduleLoader;
@@ -137,16 +137,10 @@ namespace OpenSim.Region.Environment.Scenes
137 137
138 private readonly EstateManager m_estateManager; 138 private readonly EstateManager m_estateManager;
139 139
140 private PhysicsScene phyScene 140 public PhysicsScene PhysicsScene
141 { 141 {
142 set { m_innerScene.PhyScene = value; } 142 set { m_innerScene.PhysicsScene = value; }
143 get { return (m_innerScene.PhyScene); } 143 get { return (m_innerScene.PhysicsScene); }
144 }
145
146 public PhysicsScene PhysScene
147 {
148 set { m_innerScene.PhyScene = value; }
149 get { return (m_innerScene.PhyScene); }
150 } 144 }
151 145
152 public object SyncRoot 146 public object SyncRoot
@@ -239,7 +233,7 @@ namespace OpenSim.Region.Environment.Scenes
239 // 233 //
240 // Out of memory 234 // Out of memory
241 // Operating system has killed the plugin 235 // Operating system has killed the plugin
242 m_innerScene.UnRecoverableError += restartNOW; 236 m_innerScene.UnRecoverableError += RestartNow;
243 237
244 m_sceneXmlLoader = new SceneXmlLoader(this, m_innerScene, m_regInfo); 238 m_sceneXmlLoader = new SceneXmlLoader(this, m_innerScene, m_regInfo);
245 239
@@ -275,9 +269,10 @@ namespace OpenSim.Region.Environment.Scenes
275 { 269 {
276 // Another region is up. We have to tell all our ScenePresences about it 270 // Another region is up. We have to tell all our ScenePresences about it
277 // This fails to get the desired effect and needs further work. 271 // This fails to get the desired effect and needs further work.
272
278 if (RegionInfo.RegionHandle != otherRegion.RegionHandle) 273 if (RegionInfo.RegionHandle != otherRegion.RegionHandle)
279 { 274 {
280 if (Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1 || Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1) 275 if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1))
281 { 276 {
282 if (!(m_regionRestartNotifyList.Contains(otherRegion))) 277 if (!(m_regionRestartNotifyList.Contains(otherRegion)))
283 { 278 {
@@ -285,7 +280,7 @@ namespace OpenSim.Region.Environment.Scenes
285 280
286 m_restartWaitTimer.Interval= 50000; 281 m_restartWaitTimer.Interval= 50000;
287 m_restartWaitTimer.AutoReset = false; 282 m_restartWaitTimer.AutoReset = false;
288 m_restartWaitTimer.Elapsed += new ElapsedEventHandler(restart_Notify_Wait_Elapsed); 283 m_restartWaitTimer.Elapsed += new ElapsedEventHandler(RestartNotifyWaitElapsed);
289 m_restartWaitTimer.Start(); 284 m_restartWaitTimer.Start();
290 } 285 }
291 } 286 }
@@ -302,25 +297,25 @@ namespace OpenSim.Region.Environment.Scenes
302 { 297 {
303 if (seconds < 15) 298 if (seconds < 15)
304 { 299 {
305 t_restartTimer.Stop(); 300 m_restartTimer.Stop();
306 SendGeneralAlert("Restart Aborted"); 301 SendGeneralAlert("Restart Aborted");
307 } 302 }
308 else 303 else
309 { 304 {
310 t_restartTimer.Interval = 15000; 305 m_restartTimer.Interval = 15000;
311 m_incrementsof15seconds = (int) seconds/15; 306 m_incrementsof15seconds = (int) seconds/15;
312 m_RestartTimerCounter = 0; 307 m_RestartTimerCounter = 0;
313 t_restartTimer.AutoReset = true; 308 m_restartTimer.AutoReset = true;
314 t_restartTimer.Elapsed += new ElapsedEventHandler(restartTimer_Elapsed); 309 m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed);
315 MainLog.Instance.Error("REGION", "Restarting Region in " + (seconds / 60) + " minutes"); 310 MainLog.Instance.Error("REGION", "Restarting Region in " + (seconds / 60) + " minutes");
316 t_restartTimer.Start(); 311 m_restartTimer.Start();
317 SendGeneralAlert(RegionInfo.RegionName + ": Restarting in 2 Minutes"); 312 SendGeneralAlert(RegionInfo.RegionName + ": Restarting in 2 Minutes");
318 } 313 }
319 314
320 315
321 } 316 }
322 317
323 public void restartTimer_Elapsed(object sender, ElapsedEventArgs e) 318 public void RestartTimer_Elapsed(object sender, ElapsedEventArgs e)
324 { 319 {
325 m_RestartTimerCounter++; 320 m_RestartTimerCounter++;
326 if (m_RestartTimerCounter <= m_incrementsof15seconds) 321 if (m_RestartTimerCounter <= m_incrementsof15seconds)
@@ -330,14 +325,14 @@ namespace OpenSim.Region.Environment.Scenes
330 } 325 }
331 else 326 else
332 { 327 {
333 t_restartTimer.Stop(); 328 m_restartTimer.Stop();
334 t_restartTimer.AutoReset = false; 329 m_restartTimer.AutoReset = false;
335 restartNOW(); 330 RestartNow();
336 } 331 }
337 332
338 } 333 }
339 334
340 public void restartNOW() 335 public void RestartNow()
341 { 336 {
342 MainLog.Instance.Error("REGION", "Closing"); 337 MainLog.Instance.Error("REGION", "Closing");
343 Close(); 338 Close();
@@ -345,7 +340,7 @@ namespace OpenSim.Region.Environment.Scenes
345 base.Restart(0); 340 base.Restart(0);
346 } 341 }
347 342
348 public void restart_Notify_Wait_Elapsed(object sender, ElapsedEventArgs e) 343 public void RestartNotifyWaitElapsed(object sender, ElapsedEventArgs e)
349 { 344 {
350 m_restartWaitTimer.Stop(); 345 m_restartWaitTimer.Stop();
351 foreach (RegionInfo region in m_regionRestartNotifyList) 346 foreach (RegionInfo region in m_regionRestartNotifyList)
@@ -551,7 +546,7 @@ namespace OpenSim.Region.Environment.Scenes
551 { 546 {
552 lock (SyncRoot) 547 lock (SyncRoot)
553 { 548 {
554 phyScene.SetTerrain(Terrain.GetHeights1D()); 549 PhysicsScene.SetTerrain(Terrain.GetHeights1D());
555 } 550 }
556 551
557 m_storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(), RegionInfo.RegionID); 552 m_storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(), RegionInfo.RegionID);
@@ -748,7 +743,7 @@ namespace OpenSim.Region.Environment.Scenes
748 SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); 743 SceneObjectPart rootPart = prim.GetChildPart(prim.UUID);
749 bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim); 744 bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim);
750 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) 745 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
751 rootPart.PhysActor = phyScene.AddPrimShape( 746 rootPart.PhysActor = PhysicsScene.AddPrimShape(
752 rootPart.Name, 747 rootPart.Name,
753 rootPart.Shape, 748 rootPart.Shape,
754 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, 749 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
@@ -852,7 +847,7 @@ namespace OpenSim.Region.Environment.Scenes
852 { 847 {
853 848
854 rootPart.PhysActor = 849 rootPart.PhysActor =
855 phyScene.AddPrimShape( 850 PhysicsScene.AddPrimShape(
856 rootPart.Name, 851 rootPart.Name,
857 rootPart.Shape, 852 rootPart.Shape,
858 new PhysicsVector(pos.X, pos.Y, pos.Z), 853 new PhysicsVector(pos.X, pos.Y, pos.Z),