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 Connect(string ip, int port) { serverIp = ip; serverPort = port; EventBasedNetListener listener = new EventBasedNetListener(); listener.PeerConnectedEvent += OnPeerConnected; listener.PeerDisconnectedEvent += OnPeerDisconnected; listener.NetworkReceiveEvent += OnNetworkReceive; client = new NetManager(listener) { AutoRecycle = true, }; PacketProcessor = new NetPacketProcessor(); LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor); LiteNetLibUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor); client.Start(); client.Connect(ip, port, "nebula"); SimulatedWorld.Initialize(); LocalPlayer.IsMasterClient = false; LocalPlayer.SetNetworkProvider(this); }
public Server() { server = new NetManager(this) { AutoRecycle = true, }; playerManager = new PlayerManager(); PacketProcessor = new NetPacketProcessor(); LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor); PacketProcessor.SubscribeReusable <Movement, NebulaConnection> (OnPlayerMovement); PacketProcessor.SubscribeReusable <PlayerAnimationUpdate, NebulaConnection> (OnPlayerAnimationUpdate); PacketProcessor.SubscribeReusable <VegeMined, NebulaConnection>(OnVegeMinedUpdate); }
public Client() { EventBasedNetListener listener = new EventBasedNetListener(); listener.PeerConnectedEvent += OnPeerConnected; listener.PeerDisconnectedEvent += OnPeerDisconnected; listener.NetworkReceiveEvent += OnNetworkReceive; client = new NetManager(listener) { AutoRecycle = true, }; PacketProcessor = new NetPacketProcessor(); LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor); PacketProcessor.SubscribeReusable <JoinSessionConfirmed>((_) => { IsSessionJoined = true; }); }