Exemple #1
0
    public HeadlessServerClient(TcpClient _tcpClient)
    {
        tcpClient = _tcpClient;
        HeadlessServerActor actor = SpawnActor();

        networkStream     = tcpClient.GetStream();
        tcpClient.NoDelay = true;
        ClientConnected(actor.PlayerID, actor.CurrentPos);
        HeadlessServer.Clients.Add(this);
        HeadlessServer.Players.Add(actor);
    }
Exemple #2
0
    /// <summary>
    /// Instantiates a player actor in the scene
    /// </summary>
    HeadlessServerActor SpawnActor()
    {
        HeadlessServerActor actor = new HeadlessServerActor();

        actor.Endpoint            = tcpClient.Client.RemoteEndPoint;
        this.OnNewInputsRecieved += actor.NewInputsRecieved;
        actor.Client              = this;
        HeadlessServer.PlayersConnected++;
        actor.PlayerID = HeadlessServer.PlayersConnected;
        return(actor);
    }
Exemple #3
0
    public static void Disconnect(HeadlessServerClient disconnectedClient)
    {
        HeadlessServerActor disconnectedActor = null;

        foreach (HeadlessServerActor actor in Players)
        {
            if (actor.Client == disconnectedClient)
            {
                disconnectedActor = actor;
                SendDisconnectNotification(disconnectedActor.PlayerID);
            }
        }
        if (disconnectedActor != null)
        {
            Players.Remove(disconnectedActor);
            Clients.Remove(disconnectedClient);
        }
    }