public void StartServer(int port, bool loadSaveFile = false) { PlayerManager = new PlayerManager(); if (loadSaveFile) { SaveManager.LoadServerData(); } SaveManager.SaveOnExit = true; PacketProcessor = new NetPacketProcessor(); StatisticsManager = new StatisticsManager(); #if DEBUG PacketProcessor.SimulateLatency = true; #endif PacketUtils.RegisterAllPacketNestedTypes(PacketProcessor); PacketUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor); socketServer = new WebSocketServer(port); socketServer.AddWebSocketService("/socket", () => new WebSocketService(PlayerManager, PacketProcessor)); socketServer.Start(); SimulatedWorld.Initialize(); LocalPlayer.SetNetworkProvider(this); LocalPlayer.IsMasterClient = true; // TODO: Load saved player info here LocalPlayer.SetPlayerData(new PlayerData(PlayerManager.GetNextAvailablePlayerId(), GameMain.localPlanet?.id ?? -1, new Float3(1.0f, 0.6846404f, 0.243137181f))); }
public void StartServer(int port) { EventBasedNetListener listener = new EventBasedNetListener(); listener.ConnectionRequestEvent += OnConnectionRequest; listener.PeerConnectedEvent += OnPeerConnected; listener.PeerDisconnectedEvent += OnPeerDisconnected; listener.NetworkReceiveEvent += OnNetworkReceive; server = new NetManager(listener) { AutoRecycle = true, #if DEBUG SimulateLatency = true, SimulatePacketLoss = true, SimulationMinLatency = 50, SimulationMaxLatency = 100, #endif }; PlayerManager = new PlayerManager(); PacketProcessor = new NetPacketProcessor(); LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor); LiteNetLibUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor); server.Start(port); SimulatedWorld.Initialize(); LocalPlayer.SetNetworkProvider(this); LocalPlayer.IsMasterClient = true; // TODO: Load saved player info here LocalPlayer.SetPlayerData(new PlayerData(PlayerManager.GetNextAvailablePlayerId(), new Float3(1.0f, 0.6846404f, 0.243137181f))); }
public void StartServer(int port, bool loadSaveFile = false) { PlayerManager = new PlayerManager(); if (loadSaveFile) { SaveManager.LoadServerData(); } PacketProcessor = new NetPacketProcessor(); StatisticsManager = new StatisticsManager(); #if DEBUG PacketProcessor.SimulateLatency = true; #endif PacketUtils.RegisterAllPacketNestedTypes(PacketProcessor); PacketUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor); socketServer = new WebSocketServer(System.Net.IPAddress.IPv6Any, port); DisableNagleAlgorithm(socketServer); socketServer.AddWebSocketService("/socket", () => new WebSocketService(PlayerManager, PacketProcessor)); LocalPlayer.TryLoadGalacticScale2(); socketServer.Start(); SimulatedWorld.Initialize(); LocalPlayer.SetNetworkProvider(this); LocalPlayer.IsMasterClient = true; // TODO: Load saved player info here LocalPlayer.SetPlayerData(new PlayerData( PlayerManager.GetNextAvailablePlayerId(), GameMain.localPlanet?.id ?? -1, new Float3(Config.Options.MechaColorR / 255, Config.Options.MechaColorG / 255, Config.Options.MechaColorB / 255), !string.IsNullOrWhiteSpace(Config.Options.Nickname) ? Config.Options.Nickname : GameMain.data.account.userName)); }