Use async DB queries.
This commit is contained in:
@@ -136,7 +136,6 @@ namespace Content.Client.UserInterface
|
||||
_createNewCharacterButton = new Button
|
||||
{
|
||||
Text = "Create new slot...",
|
||||
ToolTip = $"A maximum of {preferencesManager.Settings.MaxCharacterSlots} characters are allowed."
|
||||
};
|
||||
_createNewCharacterButton.OnPressed += args =>
|
||||
{
|
||||
@@ -155,6 +154,8 @@ namespace Content.Client.UserInterface
|
||||
hBox.AddChild(_humanoidProfileEditor);
|
||||
|
||||
UpdateUI();
|
||||
|
||||
preferencesManager.OnServerDataLoaded += UpdateUI;
|
||||
}
|
||||
|
||||
public void Save() => _humanoidProfileEditor.Save();
|
||||
@@ -164,6 +165,15 @@ namespace Content.Client.UserInterface
|
||||
var numberOfFullSlots = 0;
|
||||
var characterButtonsGroup = new ButtonGroup();
|
||||
_charactersVBox.RemoveAllChildren();
|
||||
|
||||
if (!_preferencesManager.ServerDataLoaded)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_createNewCharacterButton.ToolTip =
|
||||
$"A maximum of {_preferencesManager.Settings.MaxCharacterSlots} characters are allowed.";
|
||||
|
||||
var characterIndex = 0;
|
||||
foreach (var character in _preferencesManager.Preferences.Characters)
|
||||
{
|
||||
|
||||
@@ -51,8 +51,7 @@ namespace Content.Client.UserInterface
|
||||
public HumanoidProfileEditor(IClientPreferencesManager preferencesManager, IPrototypeManager prototypeManager)
|
||||
{
|
||||
_random = IoCManager.Resolve<IRobustRandom>();
|
||||
Profile = (HumanoidCharacterProfile) preferencesManager.Preferences.SelectedCharacter;
|
||||
CharacterSlot = preferencesManager.Preferences.SelectedCharacterIndex;
|
||||
|
||||
_preferencesManager = preferencesManager;
|
||||
|
||||
var margin = new MarginContainer
|
||||
@@ -365,11 +364,23 @@ namespace Content.Client.UserInterface
|
||||
|
||||
#endregion Save
|
||||
|
||||
UpdateControls();
|
||||
if (preferencesManager.ServerDataLoaded)
|
||||
{
|
||||
LoadServerData();
|
||||
}
|
||||
|
||||
preferencesManager.OnServerDataLoaded += LoadServerData;
|
||||
|
||||
IsDirty = false;
|
||||
}
|
||||
|
||||
private void LoadServerData()
|
||||
{
|
||||
Profile = (HumanoidCharacterProfile) _preferencesManager.Preferences.SelectedCharacter;
|
||||
CharacterSlot = _preferencesManager.Preferences.SelectedCharacterIndex;
|
||||
UpdateControls();
|
||||
}
|
||||
|
||||
private void SetAge(int newAge)
|
||||
{
|
||||
Profile = Profile?.WithAge(newAge);
|
||||
|
||||
@@ -22,6 +22,8 @@ namespace Content.Client.UserInterface
|
||||
private readonly IClientPreferencesManager _preferencesManager;
|
||||
private IEntity _previewDummy;
|
||||
private readonly Label _summaryLabel;
|
||||
private VBoxContainer _loaded;
|
||||
private Label _unloaded;
|
||||
|
||||
public LobbyCharacterPreviewPanel(IEntityManager entityManager,
|
||||
IClientPreferencesManager preferencesManager)
|
||||
@@ -50,9 +52,13 @@ namespace Content.Client.UserInterface
|
||||
var vBox = new VBoxContainer();
|
||||
|
||||
vBox.AddChild(header);
|
||||
vBox.AddChild(CharacterSetupButton);
|
||||
|
||||
vBox.AddChild(_summaryLabel);
|
||||
_unloaded = new Label {Text = "Your character preferences have not yet loaded, please stand by."};
|
||||
|
||||
_loaded = new VBoxContainer {Visible = false};
|
||||
|
||||
_loaded.AddChild(CharacterSetupButton);
|
||||
_loaded.AddChild(_summaryLabel);
|
||||
|
||||
var hBox = new HBoxContainer();
|
||||
hBox.AddChild(viewSouth);
|
||||
@@ -60,11 +66,15 @@ namespace Content.Client.UserInterface
|
||||
hBox.AddChild(viewWest);
|
||||
hBox.AddChild(viewEast);
|
||||
|
||||
vBox.AddChild(hBox);
|
||||
_loaded.AddChild(hBox);
|
||||
|
||||
vBox.AddChild(_loaded);
|
||||
vBox.AddChild(_unloaded);
|
||||
AddChild(vBox);
|
||||
|
||||
UpdateUI();
|
||||
|
||||
_preferencesManager.OnServerDataLoaded += UpdateUI;
|
||||
}
|
||||
|
||||
public Button CharacterSetupButton { get; }
|
||||
@@ -89,17 +99,27 @@ namespace Content.Client.UserInterface
|
||||
|
||||
public void UpdateUI()
|
||||
{
|
||||
if (!(_preferencesManager.Preferences.SelectedCharacter is HumanoidCharacterProfile selectedCharacter))
|
||||
if (!_preferencesManager.ServerDataLoaded)
|
||||
{
|
||||
_summaryLabel.Text = string.Empty;
|
||||
_loaded.Visible = false;
|
||||
_unloaded.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_summaryLabel.Text = selectedCharacter.Summary;
|
||||
var component = _previewDummy.GetComponent<HumanoidAppearanceComponent>();
|
||||
component.UpdateFromProfile(selectedCharacter);
|
||||
_loaded.Visible = true;
|
||||
_unloaded.Visible = false;
|
||||
if (!(_preferencesManager.Preferences.SelectedCharacter is HumanoidCharacterProfile selectedCharacter))
|
||||
{
|
||||
_summaryLabel.Text = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
_summaryLabel.Text = selectedCharacter.Summary;
|
||||
var component = _previewDummy.GetComponent<HumanoidAppearanceComponent>();
|
||||
component.UpdateFromProfile(selectedCharacter);
|
||||
|
||||
GiveDummyJobClothes(_previewDummy, selectedCharacter);
|
||||
GiveDummyJobClothes(_previewDummy, selectedCharacter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user