* Sim to sim caps for establishing child agents
* Still working out a bug in the libomv event queue, committing what is done for now

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2485 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
John Hurliman
2009-03-16 18:02:48 +00:00
parent 1506846d36
commit e69157a4af
14 changed files with 472 additions and 101 deletions

View File

@@ -59,6 +59,8 @@ namespace Simian
IPAddress address;
IConfig httpConfig;
#region Config Parsing
try
{
// Load the extension list (and ordering) from our config file
@@ -73,6 +75,8 @@ namespace Simian
return false;
}
#endregion Config Parsing
#region HTTP Server
int port = httpConfig.GetInt("ListenPort");
@@ -177,6 +181,11 @@ namespace Simian
for (int i = 0; i < configFiles.Length; i++)
{
// TODO: Support non-SceneManager scenes?
ISceneProvider scene = new SceneManager();
#region Config Parsing
IniConfigSource source = new IniConfigSource(configFiles[i]);
IConfig regionConfig = source.Configs["Region"];
@@ -196,6 +205,8 @@ namespace Simian
continue;
}
#endregion Config Parsing
#region IPEndPoint Assignment
IPEndPoint endpoint;
@@ -241,14 +252,16 @@ namespace Simian
continue;
}
RegionInfo info = new RegionInfo();
info.Handle = Utils.UIntsToLong(256 * regionX, 256 * regionY);
info.HttpServer = HttpUri;
info.IPAndPort = endpoint;
info.Name = name;
info.Online = true;
RegionInfo regionInfo = new RegionInfo();
regionInfo.Handle = Utils.UIntsToLong(256 * regionX, 256 * regionY);
regionInfo.HttpServer = HttpUri;
regionInfo.IPAndPort = endpoint;
regionInfo.Name = name;
regionInfo.Online = true;
// Create a capability for other regions to initiate a client connection to this region
regionInfo.EnableClientCap = Capabilities.CreateCapability(scene.EnableClientCapHandler, false, null);
if (!Grid.TryRegisterGridSpace(info, regionCert, out info.ID))
if (!Grid.TryRegisterGridSpace(regionInfo, regionCert, out regionInfo.ID))
{
Logger.Log("Failed to register grid space for region " + name, Helpers.LogLevel.Error);
continue;
@@ -256,9 +269,7 @@ namespace Simian
#endregion Grid Registration
// TODO: Support non-SceneManager scenes?
ISceneProvider scene = new SceneManager();
scene.Start(this, name, endpoint, info.ID, regionX, regionY, defaultTerrain, staticObjectLimit, physicalObjectLimit);
scene.Start(this, regionInfo, regionCert, defaultTerrain, staticObjectLimit, physicalObjectLimit);
Scenes.Add(scene);
}
}