Skip to content

Commit

Permalink
Update for new DI
Browse files Browse the repository at this point in the history
  • Loading branch information
devo1929 committed Nov 17, 2022
1 parent f244279 commit cde2a74
Show file tree
Hide file tree
Showing 12 changed files with 68 additions and 66 deletions.
21 changes: 19 additions & 2 deletions DXMainClient/DXGUI/GameClass.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@
using ClientGUI;
using DTAClient.Domain.Multiplayer;
using DTAClient.Domain.Multiplayer.CnCNet;
using DTAClient.Domain.Multiplayer.CnCNet.QuickMatch.Services;
using DTAClient.Domain.Multiplayer.CnCNet.Services;
using DTAClient.DXGUI.Multiplayer;
using DTAClient.DXGUI.Multiplayer.CnCNet;
using DTAClient.DXGUI.Multiplayer.GameLobby;
using DTAClient.DXGUI.Multiplayer.QuickMatch;
using DTAClient.Online;
using DTAConfig;
using DTAConfig.Settings;
Expand Down Expand Up @@ -197,7 +200,11 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager)
.AddSingleton<TunnelHandler>()
.AddSingleton<DiscordHandler>()
.AddSingleton<PrivateMessageHandler>()
.AddSingleton<MapLoader>();
.AddSingleton<MapLoader>()
.AddSingleton<ApiService>()
.AddSingleton<QmService>()
.AddSingleton<QmSettingsService>()
.AddSingleton<QmUserSettingsService>();

// singleton xna controls - same instance on each request
services
Expand All @@ -216,7 +223,13 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager)
.AddSingletonXnaControl<MapPreviewBox>()
.AddSingletonXnaControl<GameLaunchButton>()
.AddSingletonXnaControl<ChatListBox>()
.AddSingletonXnaControl<PlayerExtraOptionsPanel>();
.AddSingletonXnaControl<PlayerExtraOptionsPanel>()
.AddSingletonXnaControl<QuickMatchWindow>()
.AddSingletonXnaControl<QuickMatchLobbyPanel>()
.AddSingletonXnaControl<QuickMatchLoginPanel>()
.AddSingletonXnaControl<QuickMatchMapList>()
.AddSingletonXnaControl<QuickMatchStatusOverlay>()
.AddSingletonXnaControl<QuickMatchLobbyFooterPanel>();

// transient xna controls - new instance on each request
services
Expand All @@ -235,8 +248,12 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager)
.AddTransientXnaControl<XNAMultiColumnListBox>()
.AddTransientXnaControl<XNAPanel>()
.AddTransientXnaControl<XNAProgressBar>()
.AddTransientXnaControl<XNAClientProgressBar>()
.AddTransientXnaControl<XNASuggestionTextBox>()
.AddTransientXnaControl<XNATextBox>()
.AddTransientXnaControl<XNAPasswordBox>()
.AddTransientXnaControl<XNAScrollBar>()
.AddTransientXnaControl<XNAScrollablePanel>()
.AddTransientXnaControl<XNATrackbar>()
.AddTransientXnaControl<XNAChatTextBox>()
.AddTransientXnaControl<GameLobbyCheckBox>()
Expand Down
18 changes: 17 additions & 1 deletion DXMainClient/DXGUI/Generic/MainMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
using System.Linq;
using System.Threading;
using ClientUpdater;
using DTAClient.DXGUI.Multiplayer.QuickMatch;

namespace DTAClient.DXGUI.Generic
{
Expand Down Expand Up @@ -49,7 +50,8 @@ public MainMenu(
CnCNetGameLobby cnCNetGameLobby,
PrivateMessagingPanel privateMessagingPanel,
PrivateMessagingWindow privateMessagingWindow,
GameInProgressWindow gameInProgressWindow
GameInProgressWindow gameInProgressWindow,
QuickMatchWindow quickMatchWindow
) : base(windowManager)
{
this.lanLobby = lanLobby;
Expand All @@ -64,6 +66,7 @@ GameInProgressWindow gameInProgressWindow
this.privateMessagingPanel = privateMessagingPanel;
this.privateMessagingWindow = privateMessagingWindow;
this.gameInProgressWindow = gameInProgressWindow;
this.quickMatchWindow = quickMatchWindow;
this.cncnetLobby.UpdateCheck += CncnetLobby_UpdateCheck;
isMediaPlayerAvailable = IsMediaPlayerAvailable();
}
Expand Down Expand Up @@ -92,6 +95,7 @@ GameInProgressWindow gameInProgressWindow
private readonly PrivateMessagingPanel privateMessagingPanel;
private readonly PrivateMessagingWindow privateMessagingWindow;
private readonly GameInProgressWindow gameInProgressWindow;
private readonly QuickMatchWindow quickMatchWindow;

private XNAMessageBox firstRunMessageBox;

Expand Down Expand Up @@ -133,6 +137,7 @@ private bool UpdateInProgress
private XNAClientButton btnStatistics;
private XNAClientButton btnCredits;
private XNAClientButton btnExtras;
private XNAClientButton btnQuickmatch;

/// <summary>
/// Initializes the main menu's controls.
Expand Down Expand Up @@ -176,6 +181,11 @@ public override void Initialize()
btnCnCNet.HoverSoundEffect = new EnhancedSoundEffect("MainMenu/button.wav");
btnCnCNet.LeftClick += BtnCnCNet_LeftClick;

btnQuickmatch = new XNAClientButton(WindowManager);
btnQuickmatch.Name = nameof(btnQuickmatch);
btnQuickmatch.LeftClick += BtnQuickmatch_LeftClick;
btnQuickmatch.Disable();

btnLan = new XNAClientButton(WindowManager);
btnLan.Name = nameof(btnLan);
btnLan.IdleTexture = AssetLoader.LoadTexture("MainMenu/lan.png");
Expand Down Expand Up @@ -247,6 +257,7 @@ public override void Initialize()
AddChild(btnLoadGame);
AddChild(btnSkirmish);
AddChild(btnCnCNet);
AddChild(btnQuickmatch);
AddChild(btnLan);
AddChild(btnOptions);
AddChild(btnMapEditor);
Expand Down Expand Up @@ -553,12 +564,14 @@ public void PostInit()
DarkeningPanel.AddAndInitializeWithControl(WindowManager, cnCNetGameLobby);
DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetLobby);
DarkeningPanel.AddAndInitializeWithControl(WindowManager, lanLobby);
DarkeningPanel.AddAndInitializeWithControl(WindowManager, quickMatchWindow);
optionsWindow.SetTopBar(topBar);
DarkeningPanel.AddAndInitializeWithControl(WindowManager, optionsWindow);
WindowManager.AddAndInitializeControl(privateMessagingPanel);
privateMessagingPanel.AddChild(privateMessagingWindow);
topBar.SetTertiarySwitch(privateMessagingWindow);
topBar.SetOptionsWindow(optionsWindow);
topBar.SetQuickMatchWindow(quickMatchWindow);
WindowManager.AddAndInitializeControl(gameInProgressWindow);

skirmishLobby.Disable();
Expand All @@ -568,6 +581,7 @@ public void PostInit()
lanLobby.Disable();
privateMessagingWindow.Disable();
optionsWindow.Disable();
quickMatchWindow.Disable();

WindowManager.AddAndInitializeControl(topBar);
topBar.AddPrimarySwitchable(this);
Expand Down Expand Up @@ -849,6 +863,8 @@ private void BtnLan_LeftClick(object sender, EventArgs e)

private void BtnCnCNet_LeftClick(object sender, EventArgs e) => topBar.SwitchToSecondary();

private void BtnQuickmatch_LeftClick(object sender, EventArgs e) => quickMatchWindow.Enable();

private void BtnSkirmish_LeftClick(object sender, EventArgs e)
{
skirmishLobby.Open();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,14 @@ public class QuickMatchLobbyPanel : INItializableWindow
private readonly EnhancedSoundEffect matchFoundSoundEffect;
private readonly QmSettings qmSettings;

public QuickMatchLobbyPanel(WindowManager windowManager) : base(windowManager)
public QuickMatchLobbyPanel(WindowManager windowManager, MapLoader mapLoader, QmService qmService, QmSettingsService qmSettingsService) : base(windowManager)
{
qmService = QmService.GetInstance();
qmService.QmEvent += HandleQmEvent;
this.qmService = qmService;
this.qmService.QmEvent += HandleQmEvent;

mapLoader = MapLoader.GetInstance();
this.mapLoader = mapLoader;

qmSettings = QmSettingsService.GetInstance().GetSettings();
qmSettings = qmSettingsService.GetSettings();
matchFoundSoundEffect = new EnhancedSoundEffect(qmSettings.MatchFoundSoundFile);

IniNameOverride = nameof(QuickMatchLobbyPanel);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ public class QuickMatchLoginPanel : INItializableWindow

public event EventHandler LoginEvent;

public QuickMatchLoginPanel(WindowManager windowManager) : base(windowManager)
public QuickMatchLoginPanel(WindowManager windowManager, QmService qmService) : base(windowManager)
{
qmService = QmService.GetInstance();
qmService.QmEvent += HandleQmEvent;
this.qmService = qmService;
this.qmService.QmEvent += HandleQmEvent;
IniNameOverride = nameof(QuickMatchLoginPanel);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ public class QuickMatchMapList : INItializableWindow

public int MapsWidth => lblMaps?.Width ?? 0;

public QuickMatchMapList(WindowManager windowManager) : base(windowManager)
public QuickMatchMapList(WindowManager windowManager, QmService qmService) : base(windowManager)
{
qmService = QmService.GetInstance();
this.qmService = qmService;
}

public override void Initialize()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,11 @@ public class QuickMatchStatusOverlay : INItializableWindow
private readonly QmService qmService;
private readonly QmSettings qmSettings;

public QuickMatchStatusOverlay(WindowManager windowManager) : base(windowManager)
public QuickMatchStatusOverlay(WindowManager windowManager, QmService qmService, QmSettingsService qmSettingsService) : base(windowManager)
{
qmService = QmService.GetInstance();
qmService.QmEvent += HandleQmEvent;
qmSettings = QmSettingsService.GetInstance().GetSettings();
this.qmService = qmService;
this.qmService.QmEvent += HandleQmEvent;
qmSettings = qmSettingsService.GetSettings();

matchupFoundConfirmTimer = new QmMatchFoundTimer();
matchupFoundConfirmTimer.SetElapsedAction(ReduceMatchupFoundConfirmTimeLeft);
Expand Down
8 changes: 4 additions & 4 deletions DXMainClient/DXGUI/Multiplayer/QuickMatch/QuickMatchWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ public class QuickMatchWindow : INItializableWindow

private XNAPanel headerGameLogo;

public QuickMatchWindow(WindowManager windowManager) : base(windowManager)
public QuickMatchWindow(WindowManager windowManager, QmService qmService, QmSettingsService qmSettingsService) : base(windowManager)
{
qmService = QmService.GetInstance();
qmService.QmEvent += HandleQmEvent;
qmSettingsService = QmSettingsService.GetInstance();
this.qmService = qmService;
this.qmService.QmEvent += HandleQmEvent;
this.qmSettingsService = qmSettingsService;
}

public override void Initialize()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,26 @@ public class QmService : IDisposable
{
public const string QmVersion = "2.0";

private readonly QmUserSettingsService userSettingsService;
private readonly QmUserSettingsService qmUserSettingsService;
private readonly ApiService apiService;
private readonly QmSettingsService settingsService;
private readonly QmSettingsService qmSettingsService;

private readonly QmUserSettings qmUserSettings;
private readonly QmSettings qmSettings;
private readonly QmData qmData;

private static QmService _instance;
private readonly Timer retryRequestmatchTimer;
private QmUserAccount userAccount;
private IEnumerable<int> mapSides;

private QmService()
public QmService(QmSettingsService qmSettingsService, QmUserSettingsService qmUserSettingsService, ApiService apiService)
{
userSettingsService = QmUserSettingsService.GetInstance();
apiService = ApiService.GetInstance();
settingsService = QmSettingsService.GetInstance();
this.qmUserSettingsService = qmUserSettingsService;
this.apiService = apiService;
this.qmSettingsService = qmSettingsService;

qmUserSettings = userSettingsService.GetSettings();
qmSettings = settingsService.GetSettings();
qmUserSettings = this.qmUserSettingsService.GetSettings();
qmSettings = this.qmSettingsService.GetSettings();
qmData = new QmData();

retryRequestmatchTimer = new Timer();
Expand All @@ -57,8 +56,6 @@ private QmService()

public event EventHandler<QmEvent> QmEvent;

public static QmService GetInstance() => _instance ??= new QmService();

public IEnumerable<QmUserAccount> GetUserAccounts() => qmData?.UserAccounts;

public QmLadder GetLadderForId(int ladderId) => qmData.Ladders.FirstOrDefault(l => l.Id == ladderId);
Expand Down Expand Up @@ -128,14 +125,14 @@ public void SetUserAccount(QmUserAccount userAccount)
string laddAbbr = userAccount?.Ladder?.Abbreviation;
this.userAccount = userAccount;
qmUserSettings.Ladder = laddAbbr;
userSettingsService.SaveSettings();
qmUserSettingsService.SaveSettings();
QmEvent?.Invoke(this, new QmUserAccountSelectedEvent(userAccount));
}

public void SetMasterSide(QmSide side)
{
qmUserSettings.SideId = side?.LocalId ?? -1;
userSettingsService.SaveSettings();
qmUserSettingsService.SaveSettings();
QmEvent?.Invoke(this, new QmMasterSideSelected(side));
}

Expand Down Expand Up @@ -374,8 +371,8 @@ private static void DecodeToken(string token)

private void ClearAuthData()
{
userSettingsService.ClearAuthData();
userSettingsService.SaveSettings();
qmUserSettingsService.ClearAuthData();
qmUserSettingsService.SaveSettings();
apiService.SetToken(null);
}

Expand Down Expand Up @@ -421,7 +418,7 @@ private bool FinishLogin(QmResponse<QmAuthData> response, string email = null)

qmUserSettings.AuthData = response.Data;
qmUserSettings.Email = email ?? qmUserSettings.Email;
userSettingsService.SaveSettings();
qmUserSettingsService.SaveSettings();

apiService.SetToken(response.Data.Token);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ namespace DTAClient.Domain.Multiplayer.CnCNet.QuickMatch.Services;
public class QmSettingsService
{
private static readonly string SettingsFile = ClientConfiguration.Instance.QuickMatchIniPath;
private static QmSettingsService _instance;

private const string BasicSectionKey = "Basic";
private const string SoundsSectionKey = "Sounds";
Expand All @@ -22,12 +21,6 @@ public class QmSettingsService

private QmSettings qmSettings;

private QmSettingsService()
{
}

public static QmSettingsService GetInstance() => _instance ??= new QmSettingsService();

public QmSettings GetSettings() => qmSettings ??= LoadSettings();

private static QmSettings LoadSettings()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,6 @@ public class QmUserSettingsService
{
private QmUserSettings qmUserSettings;

private static QmUserSettingsService instance;

private QmUserSettingsService()
{
}

public static QmUserSettingsService GetInstance() => instance ??= new QmUserSettingsService();

public QmUserSettings GetSettings() => qmUserSettings ??= QmUserSettings.Load();

public void SaveSettings() => qmUserSettings.Save();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,15 @@ namespace DTAClient.Domain.Multiplayer.CnCNet.Services;

public class ApiService : IDisposable
{
private static bool useMockService = false;
private static ApiService instance;
public readonly ApiSettings ApiSettings;
private QmHttpClient _httpClient;
private string token;

protected ApiService()
public ApiService()
{
ApiSettings = ApiSettingsService.GetInstance().GetSettings();
}

public static ApiService GetInstance() => instance ??= useMockService ? new MockApiService() : new ApiService();

public void SetToken(string token)
{
this.token = token;
Expand Down
9 changes: 0 additions & 9 deletions DXMainClient/Domain/Multiplayer/MapLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Linq;
using System.Threading.Tasks;
using ClientCore;
Expand All @@ -21,8 +20,6 @@ public class MapLoader
private const string GameModeAliasesSection = "GameModeAliases";
private const int CurrentCustomMapCacheVersion = 1;

private static MapLoader Instance;

/// <summary>
/// List of game modes.
/// </summary>
Expand All @@ -48,12 +45,6 @@ public class MapLoader
/// </summary>
private string[] AllowedGameModes = ClientConfiguration.Instance.AllowedCustomGameModes.Split(',');

private MapLoader()
{
}

public static MapLoader GetInstance() => Instance ?? (Instance = new MapLoader());

/// <summary>
/// Loads multiplayer map info asynchonously.
/// </summary>
Expand Down

0 comments on commit cde2a74

Please sign in to comment.