HumanoidProfileEditor defers preview updates to FrameUpdate.
Fixes most of the perf problems with it.
This commit is contained in:
@@ -21,6 +21,7 @@ using Robust.Shared.Map;
|
|||||||
using Robust.Shared.Maths;
|
using Robust.Shared.Maths;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Client.Preferences.UI
|
namespace Content.Client.Preferences.UI
|
||||||
@@ -60,6 +61,7 @@ namespace Content.Client.Preferences.UI
|
|||||||
private readonly SpriteView _previewSpriteSide;
|
private readonly SpriteView _previewSpriteSide;
|
||||||
|
|
||||||
private bool _isDirty;
|
private bool _isDirty;
|
||||||
|
private bool _needUpdatePreview;
|
||||||
public int CharacterSlot;
|
public int CharacterSlot;
|
||||||
public HumanoidCharacterProfile? Profile;
|
public HumanoidCharacterProfile? Profile;
|
||||||
|
|
||||||
@@ -724,7 +726,7 @@ namespace Content.Client.Preferences.UI
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
_isDirty = value;
|
_isDirty = value;
|
||||||
UpdatePreview();
|
_needUpdatePreview = true;
|
||||||
UpdateSaveButton();
|
UpdateSaveButton();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -843,11 +845,23 @@ namespace Content.Client.Preferences.UI
|
|||||||
UpdateJobPriorities();
|
UpdateJobPriorities();
|
||||||
UpdateAntagPreferences();
|
UpdateAntagPreferences();
|
||||||
|
|
||||||
UpdatePreview();
|
_needUpdatePreview = true;
|
||||||
|
|
||||||
_preferenceUnavailableButton.SelectId((int) Profile.PreferenceUnavailable);
|
_preferenceUnavailableButton.SelectId((int) Profile.PreferenceUnavailable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void FrameUpdate(FrameEventArgs args)
|
||||||
|
{
|
||||||
|
base.FrameUpdate(args);
|
||||||
|
|
||||||
|
if (_needUpdatePreview)
|
||||||
|
{
|
||||||
|
UpdatePreview();
|
||||||
|
|
||||||
|
_needUpdatePreview = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void UpdateJobPriorities()
|
private void UpdateJobPriorities()
|
||||||
{
|
{
|
||||||
foreach (var prioritySelector in _jobPriorities)
|
foreach (var prioritySelector in _jobPriorities)
|
||||||
|
|||||||
Reference in New Issue
Block a user