mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 10:46:00 +08:00
Merge of ubitworkvarnew with opensim/master as of 20150905.
This integrates the OpenSim refactoring to make physics, etc into modules. AVN physics hasn't been moved to new location. Does not compile yet. Merge branch 'osmaster' into mbworknew1
This commit is contained in:
@@ -36,17 +36,15 @@ using log4net;
|
||||
using Nini.Config;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Console;
|
||||
using OpenSim.Framework.Servers;
|
||||
using OpenSim.Framework.Servers.HttpServer;
|
||||
using OpenSim.Framework.Monitoring;
|
||||
using OpenSim.Region.ClientStack;
|
||||
using OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts;
|
||||
using OpenSim.Region.Framework;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using OpenSim.Region.Physics.Manager;
|
||||
using OpenSim.Region.PhysicsModules.SharedBase;
|
||||
using OpenSim.Server.Base;
|
||||
using OpenSim.Services.Base;
|
||||
using OpenSim.Services.Interfaces;
|
||||
@@ -121,19 +119,12 @@ namespace OpenSim
|
||||
/// </value>
|
||||
public OpenSimConfigSource ConfigSource { get; private set; }
|
||||
|
||||
public List<IClientNetworkServer> ClientServers
|
||||
{
|
||||
get { return m_clientServers; }
|
||||
}
|
||||
|
||||
protected EnvConfigSource m_EnvConfigSource = new EnvConfigSource();
|
||||
|
||||
public EnvConfigSource envConfigSource
|
||||
{
|
||||
get { return m_EnvConfigSource; }
|
||||
}
|
||||
|
||||
protected List<IClientNetworkServer> m_clientServers = new List<IClientNetworkServer>();
|
||||
|
||||
public uint HttpServerPort
|
||||
{
|
||||
@@ -371,9 +362,9 @@ namespace OpenSim
|
||||
/// <param name="regionInfo"></param>
|
||||
/// <param name="portadd_flag"></param>
|
||||
/// <returns></returns>
|
||||
public List<IClientNetworkServer> CreateRegion(RegionInfo regionInfo, bool portadd_flag, out IScene scene)
|
||||
public void CreateRegion(RegionInfo regionInfo, bool portadd_flag, out IScene scene)
|
||||
{
|
||||
return CreateRegion(regionInfo, portadd_flag, false, out scene);
|
||||
CreateRegion(regionInfo, portadd_flag, false, out scene);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -381,9 +372,9 @@ namespace OpenSim
|
||||
/// </summary>
|
||||
/// <param name="regionInfo"></param>
|
||||
/// <returns></returns>
|
||||
public List<IClientNetworkServer> CreateRegion(RegionInfo regionInfo, out IScene scene)
|
||||
public void CreateRegion(RegionInfo regionInfo, out IScene scene)
|
||||
{
|
||||
return CreateRegion(regionInfo, false, true, out scene);
|
||||
CreateRegion(regionInfo, false, true, out scene);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -393,7 +384,7 @@ namespace OpenSim
|
||||
/// <param name="portadd_flag"></param>
|
||||
/// <param name="do_post_init"></param>
|
||||
/// <returns></returns>
|
||||
public List<IClientNetworkServer> CreateRegion(RegionInfo regionInfo, bool portadd_flag, bool do_post_init, out IScene mscene)
|
||||
public void CreateRegion(RegionInfo regionInfo, bool portadd_flag, bool do_post_init, out IScene mscene)
|
||||
{
|
||||
int port = regionInfo.InternalEndPoint.Port;
|
||||
|
||||
@@ -418,8 +409,7 @@ namespace OpenSim
|
||||
Util.XmlRpcCommand(proxyUrl, "AddPort", port, port + proxyOffset, regionInfo.ExternalHostName);
|
||||
}
|
||||
|
||||
List<IClientNetworkServer> clientServers;
|
||||
Scene scene = SetupScene(regionInfo, proxyOffset, Config, out clientServers);
|
||||
Scene scene = SetupScene(regionInfo, proxyOffset, Config);
|
||||
|
||||
m_log.Info("[MODULES]: Loading Region's modules (old style)");
|
||||
|
||||
@@ -511,14 +501,14 @@ namespace OpenSim
|
||||
|
||||
SceneManager.Add(scene);
|
||||
|
||||
if (m_autoCreateClientStack)
|
||||
{
|
||||
foreach (IClientNetworkServer clientserver in clientServers)
|
||||
{
|
||||
m_clientServers.Add(clientserver);
|
||||
clientserver.Start();
|
||||
}
|
||||
}
|
||||
//if (m_autoCreateClientStack)
|
||||
//{
|
||||
// foreach (IClientNetworkServer clientserver in clientServers)
|
||||
// {
|
||||
// m_clientServers.Add(clientserver);
|
||||
// clientserver.Start();
|
||||
// }
|
||||
//}
|
||||
|
||||
if (scene.SnmpService != null)
|
||||
{
|
||||
@@ -534,7 +524,7 @@ namespace OpenSim
|
||||
scene.SnmpService.LinkUp(scene);
|
||||
}
|
||||
|
||||
return clientServers;
|
||||
//return clientServers;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -673,7 +663,7 @@ namespace OpenSim
|
||||
|
||||
scene.DeleteAllSceneObjects();
|
||||
SceneManager.CloseScene(scene);
|
||||
ShutdownClientServer(scene.RegionInfo);
|
||||
//ShutdownClientServer(scene.RegionInfo);
|
||||
|
||||
if (!cleanup)
|
||||
return;
|
||||
@@ -734,7 +724,7 @@ namespace OpenSim
|
||||
}
|
||||
|
||||
SceneManager.CloseScene(scene);
|
||||
ShutdownClientServer(scene.RegionInfo);
|
||||
//ShutdownClientServer(scene.RegionInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -755,9 +745,9 @@ namespace OpenSim
|
||||
/// <param name="regionInfo"></param>
|
||||
/// <param name="clientServer"> </param>
|
||||
/// <returns></returns>
|
||||
protected Scene SetupScene(RegionInfo regionInfo, out List<IClientNetworkServer> clientServer)
|
||||
protected Scene SetupScene(RegionInfo regionInfo)
|
||||
{
|
||||
return SetupScene(regionInfo, 0, null, out clientServer);
|
||||
return SetupScene(regionInfo, 0, null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -768,55 +758,18 @@ namespace OpenSim
|
||||
/// <param name="configSource"></param>
|
||||
/// <param name="clientServer"> </param>
|
||||
/// <returns></returns>
|
||||
protected Scene SetupScene(
|
||||
RegionInfo regionInfo, int proxyOffset, IConfigSource configSource, out List<IClientNetworkServer> clientServer)
|
||||
protected Scene SetupScene(RegionInfo regionInfo, int proxyOffset, IConfigSource configSource)
|
||||
{
|
||||
List<IClientNetworkServer> clientNetworkServers = null;
|
||||
//List<IClientNetworkServer> clientNetworkServers = null;
|
||||
|
||||
AgentCircuitManager circuitManager = new AgentCircuitManager();
|
||||
IPAddress listenIP = regionInfo.InternalEndPoint.Address;
|
||||
//if (!IPAddress.TryParse(regionInfo.InternalEndPoint, out listenIP))
|
||||
// listenIP = IPAddress.Parse("0.0.0.0");
|
||||
|
||||
uint port = (uint) regionInfo.InternalEndPoint.Port;
|
||||
|
||||
if (m_autoCreateClientStack)
|
||||
{
|
||||
clientNetworkServers = m_clientStackManager.CreateServers(
|
||||
listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, configSource,
|
||||
circuitManager);
|
||||
}
|
||||
else
|
||||
{
|
||||
clientServer = null;
|
||||
}
|
||||
|
||||
regionInfo.InternalEndPoint.Port = (int) port;
|
||||
|
||||
Scene scene = CreateScene(regionInfo, m_simulationDataService, m_estateDataService, circuitManager);
|
||||
|
||||
if (m_autoCreateClientStack)
|
||||
{
|
||||
foreach (IClientNetworkServer clientnetserver in clientNetworkServers)
|
||||
{
|
||||
clientnetserver.AddScene(scene);
|
||||
}
|
||||
}
|
||||
clientServer = clientNetworkServers;
|
||||
scene.LoadWorldMap();
|
||||
|
||||
scene.PhysicsScene.RequestAssetMethod = scene.PhysicsRequestAsset;
|
||||
scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
|
||||
scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight);
|
||||
|
||||
return scene;
|
||||
}
|
||||
|
||||
protected override ClientStackManager CreateClientStackManager()
|
||||
{
|
||||
return new ClientStackManager(m_configSettings.ClientstackDll);
|
||||
}
|
||||
|
||||
protected override Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService,
|
||||
IEstateDataService estateDataService, AgentCircuitManager circuitManager)
|
||||
{
|
||||
@@ -825,42 +778,18 @@ namespace OpenSim
|
||||
SceneCommunicationService sceneGridService = new SceneCommunicationService();
|
||||
|
||||
return new Scene(
|
||||
regionInfo, circuitManager, physicsScene, sceneGridService,
|
||||
regionInfo, circuitManager,
|
||||
simDataService, estateDataService,
|
||||
Config, m_version);
|
||||
}
|
||||
|
||||
protected void ShutdownClientServer(RegionInfo whichRegion)
|
||||
{
|
||||
// Close and remove the clientserver for a region
|
||||
bool foundClientServer = false;
|
||||
int clientServerElement = 0;
|
||||
Location location = new Location(whichRegion.RegionHandle);
|
||||
|
||||
for (int i = 0; i < m_clientServers.Count; i++)
|
||||
{
|
||||
if (m_clientServers[i].HandlesRegion(location))
|
||||
{
|
||||
clientServerElement = i;
|
||||
foundClientServer = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (foundClientServer)
|
||||
{
|
||||
m_clientServers[clientServerElement].Stop();
|
||||
m_clientServers.RemoveAt(clientServerElement);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void HandleRestartRegion(RegionInfo whichRegion)
|
||||
{
|
||||
m_log.InfoFormat(
|
||||
"[OPENSIM]: Got restart signal from SceneManager for region {0} ({1},{2})",
|
||||
whichRegion.RegionName, whichRegion.RegionLocX, whichRegion.RegionLocY);
|
||||
|
||||
ShutdownClientServer(whichRegion);
|
||||
//ShutdownClientServer(whichRegion);
|
||||
IScene scene;
|
||||
CreateRegion(whichRegion, true, out scene);
|
||||
scene.Start();
|
||||
@@ -868,12 +797,6 @@ namespace OpenSim
|
||||
|
||||
# region Setup methods
|
||||
|
||||
protected override PhysicsScene GetPhysicsScene(string osSceneIdentifier, Vector3 regionExtent)
|
||||
{
|
||||
return GetPhysicsScene(
|
||||
m_configSettings.PhysicsEngine, m_configSettings.MeshEngineName, Config, osSceneIdentifier, regionExtent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handler to supply the current status of this sim
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user