From e7132086a566d9149238308b8464a1e86eb0324b Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 29 Dec 2024 23:01:25 +0100 Subject: [PATCH] Add displaying asset failed text if it occurs --- Source/Editor/Surface/VisjectSurfaceWindow.cs | 10 +----- Source/Editor/Utilities/Utils.cs | 10 ++++++ .../Viewport/Previews/AnimationPreview.cs | 2 +- .../Editor/Windows/Assets/AnimationWindow.cs | 5 +-- Source/Editor/Windows/Assets/ModelWindow.cs | 22 +++---------- .../Windows/Assets/SkeletonMaskWindow.cs | 5 +-- .../Windows/Assets/SkinnedModelWindow.cs | 32 ++++--------------- Source/Editor/Windows/Assets/TextureWindow.cs | 5 +-- 8 files changed, 27 insertions(+), 64 deletions(-) diff --git a/Source/Editor/Surface/VisjectSurfaceWindow.cs b/Source/Editor/Surface/VisjectSurfaceWindow.cs index 6d7633b73..67320cd81 100644 --- a/Source/Editor/Surface/VisjectSurfaceWindow.cs +++ b/Source/Editor/Surface/VisjectSurfaceWindow.cs @@ -586,16 +586,8 @@ namespace FlaxEditor.Surface layout.Label("No parameters"); return; } - if (asset.LastLoadFailed) - { - layout.Label("Failed to load asset"); + if (Utilities.Utils.OnAssetProperties(layout, asset)) return; - } - if (!asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); - return; - } var parameters = window.VisjectSurface.Parameters; CustomEditors.Editors.GenericEditor.OnGroupsBegin(); for (int i = 0; i < parameters.Count; i++) diff --git a/Source/Editor/Utilities/Utils.cs b/Source/Editor/Utilities/Utils.cs index c4ff4acf2..6ae10171f 100644 --- a/Source/Editor/Utilities/Utils.cs +++ b/Source/Editor/Utilities/Utils.cs @@ -1496,5 +1496,15 @@ namespace FlaxEditor.Utilities } return path; } + + internal static bool OnAssetProperties(CustomEditors.LayoutElementsContainer layout, Asset asset) + { + if (asset == null || !asset.IsLoaded) + { + layout.Label(asset != null && asset.LastLoadFailed ? "Failed to load" : "Loading...", TextAlignment.Center); + return true; + } + return false; + } } } diff --git a/Source/Editor/Viewport/Previews/AnimationPreview.cs b/Source/Editor/Viewport/Previews/AnimationPreview.cs index eca430376..cfceec1a1 100644 --- a/Source/Editor/Viewport/Previews/AnimationPreview.cs +++ b/Source/Editor/Viewport/Previews/AnimationPreview.cs @@ -100,7 +100,7 @@ namespace FlaxEditor.Viewport.Previews } else if (!skinnedModel.IsLoaded) { - Render2D.DrawText(style.FontLarge, "Loading...", new Rectangle(Float2.Zero, Size), style.ForegroundDisabled, TextAlignment.Center, TextAlignment.Center); + Render2D.DrawText(style.FontLarge, skinnedModel.LastLoadFailed ? "Failed to load" : "Loading...", new Rectangle(Float2.Zero, Size), style.ForegroundDisabled, TextAlignment.Center, TextAlignment.Center); } } diff --git a/Source/Editor/Windows/Assets/AnimationWindow.cs b/Source/Editor/Windows/Assets/AnimationWindow.cs index d0e6a3fe9..734b44af7 100644 --- a/Source/Editor/Windows/Assets/AnimationWindow.cs +++ b/Source/Editor/Windows/Assets/AnimationWindow.cs @@ -178,11 +178,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (PropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } // General properties { diff --git a/Source/Editor/Windows/Assets/ModelWindow.cs b/Source/Editor/Windows/Assets/ModelWindow.cs index c3e285973..55446dc0a 100644 --- a/Source/Editor/Windows/Assets/ModelWindow.cs +++ b/Source/Editor/Windows/Assets/ModelWindow.cs @@ -51,7 +51,7 @@ namespace FlaxEditor.Windows.Assets var asset = _window.Asset; if (asset == null || !asset.IsLoaded) { - Render2D.DrawText(style.FontLarge, "Loading...", new Rectangle(Float2.Zero, Size), style.ForegroundDisabled, TextAlignment.Center, TextAlignment.Center); + Render2D.DrawText(style.FontLarge, asset != null && asset.LastLoadFailed ? "Failed to load" : "Loading...", new Rectangle(Float2.Zero, Size), style.ForegroundDisabled, TextAlignment.Center, TextAlignment.Center); } } } @@ -159,11 +159,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (MeshesPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } proxy._materialSlotComboBoxes.Clear(); proxy._isolateCheckBoxes.Clear(); proxy._highlightCheckBoxes.Clear(); @@ -433,11 +430,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (MaterialsPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } base.Initialize(layout); } @@ -495,11 +489,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (UVsPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } base.Initialize(layout); @@ -744,11 +735,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (ImportPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } // Import Settings { diff --git a/Source/Editor/Windows/Assets/SkeletonMaskWindow.cs b/Source/Editor/Windows/Assets/SkeletonMaskWindow.cs index ff2446439..666ae57a1 100644 --- a/Source/Editor/Windows/Assets/SkeletonMaskWindow.cs +++ b/Source/Editor/Windows/Assets/SkeletonMaskWindow.cs @@ -80,11 +80,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (PropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } base.Initialize(layout); diff --git a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs index 67697eb67..f2ea2ac87 100644 --- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs +++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs @@ -50,7 +50,7 @@ namespace FlaxEditor.Windows.Assets var asset = _window.Asset; if (asset == null || !asset.IsLoaded) { - Render2D.DrawText(style.FontLarge, "Loading...", new Rectangle(Float2.Zero, Size), style.ForegroundDisabled, TextAlignment.Center, TextAlignment.Center); + Render2D.DrawText(style.FontLarge, asset != null && asset.LastLoadFailed ? "Failed to load" : "Loading...", new Rectangle(Float2.Zero, Size), style.ForegroundDisabled, TextAlignment.Center, TextAlignment.Center); } } } @@ -175,11 +175,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (MeshesPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } proxy._materialSlotComboBoxes.Clear(); proxy._isolateCheckBoxes.Clear(); proxy._highlightCheckBoxes.Clear(); @@ -287,11 +284,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (SkeletonPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } var lods = proxy.Asset.LODs; var loadedLODs = proxy.Asset.LoadedLODs; var nodes = proxy.Asset.Nodes; @@ -500,11 +494,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (MaterialsPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } base.Initialize(layout); } @@ -561,11 +552,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (UVsPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } base.Initialize(layout); @@ -799,11 +787,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (RetargetPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } if (proxy.Setups == null) { proxy.Setups = new Dictionary(); @@ -1074,11 +1059,8 @@ namespace FlaxEditor.Windows.Assets public override void Initialize(LayoutElementsContainer layout) { var proxy = (ImportPropertiesProxy)Values[0]; - if (proxy.Asset == null || !proxy.Asset.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, proxy.Asset)) return; - } // Import Settings { diff --git a/Source/Editor/Windows/Assets/TextureWindow.cs b/Source/Editor/Windows/Assets/TextureWindow.cs index 68f138978..8f673783a 100644 --- a/Source/Editor/Windows/Assets/TextureWindow.cs +++ b/Source/Editor/Windows/Assets/TextureWindow.cs @@ -57,11 +57,8 @@ namespace FlaxEditor.Windows.Assets { var window = ((TexturePropertiesProxy)Values[0])._window; var texture = window?.Asset; - if (texture == null || !texture.IsLoaded) - { - layout.Label("Loading...", TextAlignment.Center); + if (Utilities.Utils.OnAssetProperties(layout, texture)) return; - } // Texture info var general = layout.Group("General");