fix lobby preview on species change (#11771)

* fix preview dummy bug

* rerun tests

* rerun tests again

* fix minor visual issue

* rerun tests

* mirror review

* i love map tests randomly failing in prs that don't touch them

* 1 line, i dont know why, it doesn't even matter how hard you try
This commit is contained in:
Rane
2022-10-16 22:44:48 -04:00
committed by GitHub
parent 20063a99a6
commit 0e6b84eac2

View File

@@ -99,7 +99,6 @@ namespace Content.Client.Preferences.UI
private bool _isDirty;
private bool _needUpdatePreview;
private bool _needsDummyRebuild;
public int CharacterSlot;
public HumanoidCharacterProfile? Profile;
private MarkingSet _markingSet = new(); // storing this here feels iffy but a few things need it this high up
@@ -613,7 +612,7 @@ namespace Content.Client.Preferences.UI
return;
Profile = Profile.WithCharacterAppearance(Profile.Appearance.WithMarkings(markings.GetForwardEnumerator().ToList()));
NeedsDummyRebuild = true;
_needUpdatePreview = true;
IsDirty = true;
}
@@ -678,7 +677,6 @@ namespace Content.Client.Preferences.UI
}
IsDirty = true;
NeedsDummyRebuild = true; // TODO: ugh - fix this asap
}
protected override void Dispose(bool disposing)
@@ -739,6 +737,7 @@ namespace Content.Client.Preferences.UI
{
_previewSpriteSide.Sprite = sprite;
}
_needUpdatePreview = true;
}
private void LoadServerData()
@@ -746,7 +745,7 @@ namespace Content.Client.Preferences.UI
Profile = (HumanoidCharacterProfile) _preferencesManager.Preferences!.SelectedCharacter;
CharacterSlot = _preferencesManager.Preferences.SelectedCharacterIndex;
NeedsDummyRebuild = true;
_needUpdatePreview = true;
UpdateControls();
}
@@ -788,8 +787,9 @@ namespace Content.Client.Preferences.UI
OnSkinColorOnValueChanged(); // Species may have special color prefs, make sure to update it.
CMarkings.SetSpecies(newSpecies); // Repopulate the markings tab as well.
UpdateSexControls(); // update sex for new species
NeedsDummyRebuild = true;
RebuildSpriteView(); // they might have different inv so we need a new dummy
IsDirty = true;
_needUpdatePreview = true;
}
private void SetName(string newName)
@@ -817,8 +817,8 @@ namespace Content.Client.Preferences.UI
if (Profile != null)
{
_preferencesManager.UpdateCharacter(Profile, CharacterSlot);
NeedsDummyRebuild = true;
OnProfileChanged?.Invoke(Profile, CharacterSlot);
_needUpdatePreview = true;
}
}
@@ -833,16 +833,6 @@ namespace Content.Client.Preferences.UI
}
}
private bool NeedsDummyRebuild
{
get => _needsDummyRebuild;
set
{
_needsDummyRebuild = value;
_needUpdatePreview = true;
}
}
private void UpdateNameEdit()
{
_nameEdit.Text = Profile?.Name ?? "";
@@ -1042,14 +1032,6 @@ namespace Content.Client.Preferences.UI
if (Profile is null)
return;
/* dear fuck this needs to not happen ever again
if (_needsDummyRebuild)
{
RebuildSpriteView(); // Species change also requires sprite rebuild, so we'll do that now.
_needsDummyRebuild = false;
}
*/
EntitySystem.Get<HumanoidSystem>().LoadProfile(_previewDummy!.Value, Profile);
LobbyCharacterPreviewPanel.GiveDummyJobClothes(_previewDummy!.Value, Profile);
}
@@ -1073,8 +1055,7 @@ namespace Content.Client.Preferences.UI
UpdateAntagPreferences();
UpdateTraitPreferences();
UpdateMarkings();
NeedsDummyRebuild = true;
RebuildSpriteView();
_preferenceUnavailableButton.SelectId((int) Profile.PreferenceUnavailable);
}