diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/RegionApplicationBase.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 6 |
3 files changed, 13 insertions, 10 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index f663c77..e8cf7cc 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -767,7 +767,6 @@ namespace OpenSim | |||
767 | clientServer = clientNetworkServers; | 767 | clientServer = clientNetworkServers; |
768 | scene.LoadWorldMap(); | 768 | scene.LoadWorldMap(); |
769 | 769 | ||
770 | scene.PhysicsScene = GetPhysicsScene(scene.RegionInfo.RegionName); | ||
771 | scene.PhysicsScene.RequestAssetMethod = scene.PhysicsRequestAsset; | 770 | scene.PhysicsScene.RequestAssetMethod = scene.PhysicsRequestAsset; |
772 | scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); | 771 | scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); |
773 | scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight); | 772 | scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight); |
@@ -783,10 +782,12 @@ namespace OpenSim | |||
783 | protected override Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService, | 782 | protected override Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService, |
784 | IEstateDataService estateDataService, AgentCircuitManager circuitManager) | 783 | IEstateDataService estateDataService, AgentCircuitManager circuitManager) |
785 | { | 784 | { |
785 | Vector3 regionExtent = new Vector3(regionInfo.RegionSizeX, regionInfo.RegionSizeY, regionInfo.RegionSizeZ); | ||
786 | PhysicsScene physicsScene = GetPhysicsScene(regionInfo.RegionName, regionExtent); | ||
786 | SceneCommunicationService sceneGridService = new SceneCommunicationService(); | 787 | SceneCommunicationService sceneGridService = new SceneCommunicationService(); |
787 | 788 | ||
788 | return new Scene( | 789 | return new Scene( |
789 | regionInfo, circuitManager, sceneGridService, | 790 | regionInfo, circuitManager, physicsScene, sceneGridService, |
790 | simDataService, estateDataService, | 791 | simDataService, estateDataService, |
791 | Config, m_version); | 792 | Config, m_version); |
792 | } | 793 | } |
@@ -829,10 +830,10 @@ namespace OpenSim | |||
829 | 830 | ||
830 | # region Setup methods | 831 | # region Setup methods |
831 | 832 | ||
832 | protected override PhysicsScene GetPhysicsScene(string osSceneIdentifier) | 833 | protected override PhysicsScene GetPhysicsScene(string osSceneIdentifier, Vector3 regionExtent) |
833 | { | 834 | { |
834 | return GetPhysicsScene( | 835 | return GetPhysicsScene( |
835 | m_configSettings.PhysicsEngine, m_configSettings.MeshEngineName, Config, osSceneIdentifier); | 836 | m_configSettings.PhysicsEngine, m_configSettings.MeshEngineName, Config, osSceneIdentifier, regionExtent); |
836 | } | 837 | } |
837 | 838 | ||
838 | /// <summary> | 839 | /// <summary> |
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index 287c278..982646e 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs | |||
@@ -69,7 +69,7 @@ namespace OpenSim.Region.ClientStack | |||
69 | /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages. | 69 | /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages. |
70 | /// </param> | 70 | /// </param> |
71 | /// <returns></returns> | 71 | /// <returns></returns> |
72 | protected abstract PhysicsScene GetPhysicsScene(string osSceneIdentifier); | 72 | protected abstract PhysicsScene GetPhysicsScene(string osSceneIdentifier, Vector3 regionExtent); |
73 | 73 | ||
74 | protected abstract ClientStackManager CreateClientStackManager(); | 74 | protected abstract ClientStackManager CreateClientStackManager(); |
75 | protected abstract Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService, IEstateDataService estateDataService, AgentCircuitManager circuitManager); | 75 | protected abstract Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService, IEstateDataService estateDataService, AgentCircuitManager circuitManager); |
@@ -135,13 +135,13 @@ namespace OpenSim.Region.ClientStack | |||
135 | /// </param> | 135 | /// </param> |
136 | /// <returns></returns> | 136 | /// <returns></returns> |
137 | protected PhysicsScene GetPhysicsScene( | 137 | protected PhysicsScene GetPhysicsScene( |
138 | string engine, string meshEngine, IConfigSource config, string osSceneIdentifier) | 138 | string engine, string meshEngine, IConfigSource config, string osSceneIdentifier, Vector3 regionExtent) |
139 | { | 139 | { |
140 | PhysicsPluginManager physicsPluginManager; | 140 | PhysicsPluginManager physicsPluginManager; |
141 | physicsPluginManager = new PhysicsPluginManager(); | 141 | physicsPluginManager = new PhysicsPluginManager(); |
142 | physicsPluginManager.LoadPluginsFromAssemblies("Physics"); | 142 | physicsPluginManager.LoadPluginsFromAssemblies("Physics"); |
143 | 143 | ||
144 | return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config, osSceneIdentifier); | 144 | return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config, osSceneIdentifier, regionExtent); |
145 | } | 145 | } |
146 | } | 146 | } |
147 | } | 147 | } |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 46c9048..fa5d021 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -760,7 +760,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
760 | 760 | ||
761 | #region Constructors | 761 | #region Constructors |
762 | 762 | ||
763 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, | 763 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, PhysicsScene physicsScene, |
764 | SceneCommunicationService sceneGridService, | 764 | SceneCommunicationService sceneGridService, |
765 | ISimulationDataService simDataService, IEstateDataService estateDataService, | 765 | ISimulationDataService simDataService, IEstateDataService estateDataService, |
766 | IConfigSource config, string simulatorVersion) | 766 | IConfigSource config, string simulatorVersion) |
@@ -840,6 +840,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
840 | new EventManager.LandObjectRemoved(simDataService.RemoveLandObject); | 840 | new EventManager.LandObjectRemoved(simDataService.RemoveLandObject); |
841 | 841 | ||
842 | m_sceneGraph = new SceneGraph(this); | 842 | m_sceneGraph = new SceneGraph(this); |
843 | m_sceneGraph.PhysicsScene = physicsScene; | ||
843 | 844 | ||
844 | // If the scene graph has an Unrecoverable error, restart this sim. | 845 | // If the scene graph has an Unrecoverable error, restart this sim. |
845 | // Currently the only thing that causes it to happen is two kinds of specific | 846 | // Currently the only thing that causes it to happen is two kinds of specific |
@@ -1075,7 +1076,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1075 | { | 1076 | { |
1076 | PhysicalPrims = true; | 1077 | PhysicalPrims = true; |
1077 | CollidablePrims = true; | 1078 | CollidablePrims = true; |
1078 | PhysicsEnabled = true; | 1079 | // this is done above acording to config |
1080 | // PhysicsEnabled = true; | ||
1079 | 1081 | ||
1080 | PeriodicBackup = true; | 1082 | PeriodicBackup = true; |
1081 | UseBackup = true; | 1083 | UseBackup = true; |