Parcourir la source

Added editor message box for error situations with load/save particle data or rebuild navigation data menu commands. Refresh attribute inspector after loading particle data.

Lasse Öörni il y a 11 ans
Parent
commit
5c7ba363fd
2 fichiers modifiés avec 18 ajouts et 0 suppressions
  1. 14 0
      Bin/Data/Scripts/Editor/EditorScene.as
  2. 4 0
      Bin/Data/Scripts/Editor/EditorUI.as

+ 14 - 0
Bin/Data/Scripts/Editor/EditorScene.as

@@ -906,6 +906,12 @@ bool SceneRebuildNavigation()
     ui.cursor.shape = CS_BUSY;
 
     Array<Component@>@ navMeshes = editorScene.GetComponents("NavigationMesh", true);
+    if (navMeshes.empty)
+    {
+        MessageBox("No NavigationMesh components in the scene, nothing to rebuild.");
+        return false;
+    }
+
     bool success = true;
     for (uint i = 0; i < navMeshes.length; ++i)
     {
@@ -926,12 +932,20 @@ bool LoadParticleData(const String&in fileName)
     if (!xmlFile.Load(File(fileName, FILE_READ)))
         return false;
 
+    bool needRefresh = false;
+
     for (uint i = 0; i < editComponents.length; ++i)
     {
         ParticleEmitter@ emitter = cast<ParticleEmitter>(editComponents[i]);
         if (emitter !is null)
+        {
             emitter.Load(xmlFile);
+            needRefresh = true;
+        }
     }
+    
+    if (needRefresh)
+        UpdateAttributeInspector();
 
     return true;
 }

+ 4 - 0
Bin/Data/Scripts/Editor/EditorUI.as

@@ -556,6 +556,8 @@ bool PickFile()
             CreateFileSelector("Load particle data", "Load", "Cancel", uiParticlePath, uiParticleFilters, uiParticleFilter);
             SubscribeToEvent(uiFileSelector, "FileSelected", "HandleLoadParticleData");
         }
+        else
+            MessageBox("Need to have a selected ParticleEmitter component to load particle data.");
     }
     else if (action == "Save particle data")
     {
@@ -564,6 +566,8 @@ bool PickFile()
             CreateFileSelector("Save particle data", "Save", "Cancel", uiParticlePath, uiParticleFilters, uiParticleFilter);
             SubscribeToEvent(uiFileSelector, "FileSelected", "HandleSaveParticleData");
         }
+        else
+            MessageBox("Need to have a selected ParticleEmitter component to save particle data.");
     }
     // UI-element
     else if (action == "Open UI-layout...")