public ViewModelMenuServers() { #if !GAME if (IsDesignTime) { // design-time data this.allServersLists = new ViewModelServersList[0]; this.SelectedServer = new ViewModelServerInfoListEntry(); return; } #endif Instance?.Dispose(); Instance = this; this.serverViewModelsProvider = ServerViewModelsProvider.Instance; var serversProvider = Client.MasterServer.ServersProvider; this.PublicServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => info.IsOfficial), this.OnSelectedServerChanged) { IsActive = true }; this.CommunityServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => !info.IsOfficial && !info.IsModded), this.OnSelectedServerChanged); this.ModdedServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => !info.IsOfficial && info.IsModded), this.OnSelectedServerChanged); this.CustomServers = new ViewModelServersList( new MultiplayerMenuServersController(serversProvider.Custom, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.FavoriteServers = new ViewModelServersList( new MultiplayerMenuServersController(serversProvider.Favorite, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.HistoryServers = new ViewModelServersList( new MultiplayerMenuServersController(serversProvider.History, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.allServersLists = new[] { this.PublicServers, this.CommunityServers, this.ModdedServers, this.CustomServers, this.FavoriteServers, this.HistoryServers }; RequestPublicServersList(); }
public ViewModelMenuServers() { #if !GAME if (IsDesignTime) { // design-time data this.allServersLists = new ViewModelServersList[0]; this.SelectedServer = new ViewModelServerInfoListEntry(); return; } #endif Instance?.Dispose(); Instance = this; this.serverViewModelsProvider = ServerViewModelsProvider.Instance; // ensure the localhost is always present in the custom servers list (for local server) this.serversProvider.Custom.SetFirstOrAdd(new ServerAddress("localhost")); this.CustomServers = new ViewModelServersList( new MultiplayerMenuServersController(this.serversProvider.Custom, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.FavoriteServers = new ViewModelServersList( new MultiplayerMenuServersController(this.serversProvider.Favorite, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.FeaturedServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => info.IsOfficial || info.IsFeatured) { DefaultSortType = ServersListSortType.Ping }, this.OnSelectedServerChanged); this.FeaturedServers.IsActive = true; this.CommunityServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => !info.IsOfficial && !info.IsFeatured && !info.IsModded) { DefaultSortType = ServersListSortType.Ping }, this.OnSelectedServerChanged); this.ModdedServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => !info.IsOfficial && !info.IsFeatured && info.IsModded) { DefaultSortType = ServersListSortType.Ping }, this.OnSelectedServerChanged); this.HistoryServers = new ViewModelServersList( new MultiplayerMenuServersController(this.serversProvider.History, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.allServersLists = new[] { this.FeaturedServers, this.CommunityServers, this.ModdedServers, this.CustomServers, this.FavoriteServers, this.HistoryServers }; RequestPublicServersList(); this.serversProvider.ServerPingUpdated += this.ServerPingUpdatedHandled; this.serversProvider.ServerInfoReceived += this.ServerInfoReceivedHandler; Api.Client.MasterServer.ConnectionStateChanged += MasterServerConnectionStateChangedHandler; }
public ViewModelMenuServers() { #if !GAME if (IsDesignTime) { // design-time data this.allServersLists = new ViewModelServersList[0]; this.SelectedServer = new ViewModelServerInfoListEntry(); return; } #endif Instance?.Dispose(); Instance = this; this.serverViewModelsProvider = ServerViewModelsProvider.Instance; this.FeaturedServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => info.IsOfficial || (info.IsFeatured && !info.IsModded)) { DefaultSortType = ServersListSortType.Featured }, this.OnSelectedServerChanged); this.FeaturedServers.IsActive = true; this.CommunityServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => !info.IsOfficial && !info.IsFeatured && !info.IsModded) { DefaultSortType = ServersListSortType.OnlinePlayersCount }, this.OnSelectedServerChanged); this.ModdedServers = new ViewModelServersList( new MultiplayerMenuServersPublicController( this.serverViewModelsProvider, specialCondition: info => !info.IsOfficial && info.IsModded) { DefaultSortType = ServersListSortType.OnlinePlayersCount }, this.OnSelectedServerChanged); this.CustomServers = new ViewModelServersList( new MultiplayerMenuServersController(this.serversProvider.Custom, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.FavoriteServers = new ViewModelServersList( new MultiplayerMenuServersController(this.serversProvider.Favorite, this.serverViewModelsProvider) { DefaultSortType = ServersListSortType.OnlinePlayersCount }, this.OnSelectedServerChanged); this.HistoryServers = new ViewModelServersList( new MultiplayerMenuServersController(this.serversProvider.History, this.serverViewModelsProvider), this.OnSelectedServerChanged); this.allServersLists = new[] { this.FeaturedServers, this.CommunityServers, this.ModdedServers, this.CustomServers, this.FavoriteServers, this.HistoryServers }; RequestPublicServersList(); this.serversProvider.ServerPingUpdated += this.ServerPingUpdatedHandled; this.serversProvider.ServerInfoReceived += this.ServerInfoReceivedHandler; }