Support loopback servers for solo play

This commit is contained in:
Paul Chote
2011-05-10 17:29:32 +12:00
parent b1a6eec3d3
commit 33a4f5e29e
6 changed files with 50 additions and 45 deletions

View File

@@ -49,22 +49,21 @@ namespace OpenRA.Server
shutdown = true;
}
public Server(ModData modData, Settings settings, string map)
public Server(IPAddress ip, int port, string serverName, string[] mods, string map, ModData modData)
{
Log.AddChannel("server", "server.log");
listener = new TcpListener(IPAddress.Any, settings.Server.ListenPort);
Name = settings.Server.Name;
listener = new TcpListener(ip, port);
Name = serverName;
randomSeed = (int)DateTime.Now.ToBinary();
ModData = modData;
foreach (var trait in modData.Manifest.ServerTraits)
ServerTraits.Add( modData.ObjectCreator.CreateObject<ServerTrait>(trait) );
lobbyInfo = new Session( settings.Game.Mods );
lobbyInfo = new Session( mods );
lobbyInfo.GlobalSettings.RandomSeed = randomSeed;
lobbyInfo.GlobalSettings.Map = map;
lobbyInfo.GlobalSettings.ServerName = settings.Server.Name;
lobbyInfo.GlobalSettings.ServerName = serverName;
foreach (var t in ServerTraits.WithInterface<INotifyServerStart>())
t.ServerStarted(this);