internal ClientController(Client client, LoginClient login, ClientInitInfo cii) { Client = client; users = new Dictionary <int, User>(); rooms = new Dictionary <int, Room>(); _user = new User(cii.User, login.Name, login.Avatar); _room = new RoomController(Client); _users = new ObservableList <User>(cii.LobbyUsers); _rooms = new ObservableList <Room>(cii.Rooms); foreach (var u in cii.LobbyUsers) { users.Add(u.Id, u); } foreach (var r in cii.Rooms) { rooms.Add(r.Id, r); foreach (var u in r.Players) { AddUser(u); } foreach (var u in r.Spectators) { AddUser(u); } } users.Add(_user.Id, _user); _users.Add(_user); }
internal Client(TcpClient network, LoginClient login, ClientInitInfo cii) { Network = network; network.Listener = this; network.Disconnected += () => { Disconnected(); Dispose(); }; Controller = new ClientController(this, login, cii); KeepAlive = new Timer(OnKeepAlive, network, PBOMarks.TIMEOUT, PBOMarks.TIMEOUT); }