Răsfoiți Sursa

Optimize Editor work with temporary objects.

Eugene Kozlov 9 ani în urmă
părinte
comite
7a24d5b2c7
1 a modificat fișierele cu 10 adăugiri și 6 ștergeri
  1. 10 6
      bin/Data/Scripts/Editor/EditorHierarchyWindow.as

+ 10 - 6
bin/Data/Scripts/Editor/EditorHierarchyWindow.as

@@ -1398,8 +1398,8 @@ void HandleNodeRemoved(StringHash eventType, VariantMap& eventData)
         return;
         return;
 
 
     Node@ node = eventData["Node"].GetPtr();
     Node@ node = eventData["Node"].GetPtr();
-    uint index = GetListIndex(node);
-    UpdateHierarchyItem(index, null, null);
+    if (showTemporaryObject || !node.temporary)
+        UpdateHierarchyItem(GetListIndex(node), null, null);
 }
 }
 
 
 void HandleComponentAdded(StringHash eventType, VariantMap& eventData)
 void HandleComponentAdded(StringHash eventType, VariantMap& eventData)
@@ -1410,7 +1410,7 @@ void HandleComponentAdded(StringHash eventType, VariantMap& eventData)
     // Insert the newly added component at last component position but before the first child node position of the parent node
     // Insert the newly added component at last component position but before the first child node position of the parent node
     Node@ node = eventData["Node"].GetPtr();
     Node@ node = eventData["Node"].GetPtr();
     Component@ component = eventData["Component"].GetPtr();
     Component@ component = eventData["Component"].GetPtr();
-    if (showTemporaryObject || !component.temporary)
+    if (showTemporaryObject || (!node.temporary && !component.temporary))
     {
     {
         uint nodeIndex = GetListIndex(node);
         uint nodeIndex = GetListIndex(node);
         if (nodeIndex != NO_ITEM)
         if (nodeIndex != NO_ITEM)
@@ -1426,10 +1426,14 @@ void HandleComponentRemoved(StringHash eventType, VariantMap& eventData)
     if (suppressSceneChanges)
     if (suppressSceneChanges)
         return;
         return;
 
 
+    Node@ node = eventData["Node"].GetPtr();
     Component@ component = eventData["Component"].GetPtr();
     Component@ component = eventData["Component"].GetPtr();
-    uint index = GetComponentListIndex(component);
-    if (index != NO_ITEM)
-        hierarchyList.RemoveItem(index);
+    if (showTemporaryObject || (!node.temporary && !component.temporary))
+    {
+        uint index = GetComponentListIndex(component);
+        if (index != NO_ITEM)
+            hierarchyList.RemoveItem(index);
+    }
 }
 }
 
 
 void HandleNodeNameChanged(StringHash eventType, VariantMap& eventData)
 void HandleNodeNameChanged(StringHash eventType, VariantMap& eventData)