aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/RegionApplicationBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/RegionApplicationBase.cs')
-rw-r--r--OpenSim/Region/ClientStack/RegionApplicationBase.cs29
1 files changed, 25 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index ce978df..cc3edff 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -71,7 +71,17 @@ namespace OpenSim.Region.ClientStack
71 protected SceneManager m_sceneManager = new SceneManager(); 71 protected SceneManager m_sceneManager = new SceneManager();
72 72
73 protected abstract void Initialize(); 73 protected abstract void Initialize();
74 protected abstract PhysicsScene GetPhysicsScene(); 74
75 /// <summary>
76 /// Get a new physics scene.
77 /// </summary>
78 ///
79 /// <param name="osSceneIdentifier">
80 /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
81 /// </param>
82 /// <returns></returns>
83 protected abstract PhysicsScene GetPhysicsScene(string osSceneIdentifier);
84
75 protected abstract StorageManager CreateStorageManager(); 85 protected abstract StorageManager CreateStorageManager();
76 protected abstract ClientStackManager CreateClientStackManager(); 86 protected abstract ClientStackManager CreateClientStackManager();
77 protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, 87 protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager,
@@ -99,13 +109,24 @@ namespace OpenSim.Region.ClientStack
99 m_httpServer.Start(); 109 m_httpServer.Start();
100 } 110 }
101 111
102 protected PhysicsScene GetPhysicsScene(string engine, string meshEngine, IConfigSource config) 112 /// <summary>
113 /// Get a new physics scene.
114 /// </summary>
115 /// <param name="engine">The name of the physics engine to use</param>
116 /// <param name="meshEngine">The name of the mesh engine to use</param>
117 /// <param name="config">The configuration data to pass to the physics and mesh engines</param>
118 /// <param name="osSceneIdentifier">
119 /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
120 /// </param>
121 /// <returns></returns>
122 protected PhysicsScene GetPhysicsScene(
123 string engine, string meshEngine, IConfigSource config, string osSceneIdentifier)
103 { 124 {
104 PhysicsPluginManager physicsPluginManager; 125 PhysicsPluginManager physicsPluginManager;
105 physicsPluginManager = new PhysicsPluginManager(); 126 physicsPluginManager = new PhysicsPluginManager();
106 physicsPluginManager.LoadPluginsFromAssemblies("Physics"); 127 physicsPluginManager.LoadPluginsFromAssemblies("Physics");
107 128
108 return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config); 129 return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config, osSceneIdentifier);
109 } 130 }
110 131
111 /// <summary> 132 /// <summary>
@@ -153,7 +174,7 @@ namespace OpenSim.Region.ClientStack
153 174
154 scene.LoadWorldMap(); 175 scene.LoadWorldMap();
155 176
156 scene.PhysicsScene = GetPhysicsScene(); 177 scene.PhysicsScene = GetPhysicsScene(scene.RegionInfo.RegionName);
157 scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); 178 scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
158 scene.PhysicsScene.SetWaterLevel((float)regionInfo.RegionSettings.WaterHeight); 179 scene.PhysicsScene.SetWaterLevel((float)regionInfo.RegionSettings.WaterHeight);
159 180