Add assets loading progress to Editor status bar
This commit is contained in:
@@ -32,6 +32,7 @@ namespace FlaxEditor.Modules
|
||||
private Label _progressLabel;
|
||||
private ProgressBar _progressBar;
|
||||
private List<KeyValuePair<string, DateTime>> _statusMessages;
|
||||
private ContentStats _contentStats;
|
||||
|
||||
private ContextMenuButton _menuFileSaveScenes;
|
||||
private ContextMenuButton _menuFileCloseScenes;
|
||||
@@ -250,6 +251,7 @@ namespace FlaxEditor.Modules
|
||||
{
|
||||
if (StatusBar == null)
|
||||
return;
|
||||
var contentStats = FlaxEngine.Content.Stats;
|
||||
|
||||
Color color;
|
||||
if (Editor.StateMachine.IsPlayMode)
|
||||
@@ -262,11 +264,14 @@ namespace FlaxEditor.Modules
|
||||
text = _statusMessages[0].Key;
|
||||
else if (Editor.StateMachine.CurrentState.Status != null)
|
||||
text = Editor.StateMachine.CurrentState.Status;
|
||||
else if (contentStats.LoadingAssetsCount != 0)
|
||||
text = string.Format("Loading {0}/{1}", contentStats.LoadingAssetsCount, contentStats.AssetsCount);
|
||||
else
|
||||
text = "Ready";
|
||||
|
||||
StatusBar.Text = text;
|
||||
StatusBar.StatusColor = color;
|
||||
_contentStats = contentStats;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -334,6 +339,10 @@ namespace FlaxEditor.Modules
|
||||
_statusMessages.RemoveAt(0);
|
||||
UpdateStatusBar();
|
||||
}
|
||||
else if (FlaxEngine.Content.Stats.LoadingAssetsCount != _contentStats.LoadingAssetsCount)
|
||||
{
|
||||
UpdateStatusBar();
|
||||
}
|
||||
}
|
||||
|
||||
private class CustomWindowBorderControl : Control
|
||||
|
||||
@@ -368,16 +368,17 @@ ContentStats Content::GetStats()
|
||||
ContentStats stats;
|
||||
AssetsLocker.Lock();
|
||||
stats.AssetsCount = Assets.Count();
|
||||
for (auto& e : Assets)
|
||||
int32 loadFailedCount = 0;
|
||||
for (const auto& e : Assets)
|
||||
{
|
||||
if (e.Value->IsLoaded())
|
||||
stats.LoadedAssetsCount++;
|
||||
else if (e.Value->LastLoadFailed())
|
||||
stats.LoadingAssetsCount++;
|
||||
loadFailedCount++;
|
||||
if (e.Value->IsVirtual())
|
||||
stats.VirtualAssetsCount++;
|
||||
}
|
||||
stats.LoadingAssetsCount = stats.AssetsCount - stats.LoadingAssetsCount - stats.LoadedAssetsCount;
|
||||
stats.LoadingAssetsCount = stats.AssetsCount - loadFailedCount - stats.LoadedAssetsCount;
|
||||
AssetsLocker.Unlock();
|
||||
return stats;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user