From a19ae042f8ce093833df3d02763064f01d27d2a5 Mon Sep 17 00:00:00 2001 From: Nils Hausfeld Date: Sat, 2 Mar 2024 23:36:05 +0100 Subject: [PATCH 1/2] - Private parameters now get shown in VS CM --- Source/Editor/Surface/ContextMenu/VisjectCM.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Source/Editor/Surface/ContextMenu/VisjectCM.cs b/Source/Editor/Surface/ContextMenu/VisjectCM.cs index 46d760673..96093001c 100644 --- a/Source/Editor/Surface/ContextMenu/VisjectCM.cs +++ b/Source/Editor/Surface/ContextMenu/VisjectCM.cs @@ -583,7 +583,7 @@ namespace FlaxEditor.Surface.ContextMenu // Check if surface has any parameters var parameters = _parametersGetter?.Invoke(); - int count = parameters?.Count(x => x.IsPublic) ?? 0; + int count = parameters?.Count ?? 0; if (count > 0) { // TODO: cache the allocated memory to reduce dynamic allocations @@ -596,8 +596,6 @@ namespace FlaxEditor.Surface.ContextMenu for (int i = 0; i < parameters.Count; i++) { var param = parameters[i]; - if (!param.IsPublic) - continue; var node = (NodeArchetype)_parameterGetNodeArchetype.Clone(); node.Title = "Get " + param.Name; @@ -629,10 +627,6 @@ namespace FlaxEditor.Surface.ContextMenu archetypeIndex = 0; for (int i = 0; i < parameters.Count; i++) { - var param = parameters[i]; - if (!param.IsPublic) - continue; - var item = new VisjectCMItem(group, groupArchetype, archetypes[archetypeIndex++]) { Parent = group From 5fbbf4ae728c7401ec77cf4a4dd81bf558482bb0 Mon Sep 17 00:00:00 2001 From: Nils Hausfeld Date: Sat, 2 Mar 2024 23:42:49 +0100 Subject: [PATCH 2/2] - Refactored UpdateSurfaceParametersGroup -- Removed 2nd for loop by merging both loops --- .../Editor/Surface/ContextMenu/VisjectCM.cs | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/Source/Editor/Surface/ContextMenu/VisjectCM.cs b/Source/Editor/Surface/ContextMenu/VisjectCM.cs index 96093001c..19ddcd294 100644 --- a/Source/Editor/Surface/ContextMenu/VisjectCM.cs +++ b/Source/Editor/Surface/ContextMenu/VisjectCM.cs @@ -592,26 +592,6 @@ namespace FlaxEditor.Surface.ContextMenu var archetypes = new NodeArchetype[count]; int archetypeIndex = 0; - // ReSharper disable once PossibleNullReferenceException - for (int i = 0; i < parameters.Count; i++) - { - var param = parameters[i]; - - var node = (NodeArchetype)_parameterGetNodeArchetype.Clone(); - node.Title = "Get " + param.Name; - node.DefaultValues[0] = param.ID; - archetypes[archetypeIndex++] = node; - - if (_parameterSetNodeArchetype != null) - { - node = (NodeArchetype)_parameterSetNodeArchetype.Clone(); - node.Title = "Set " + param.Name; - node.DefaultValues[0] = param.ID; - node.DefaultValues[1] = TypeUtils.GetDefaultValue(param.Type); - archetypes[archetypeIndex++] = node; - } - } - var groupArchetype = new GroupArchetype { GroupID = 6, @@ -624,22 +604,39 @@ namespace FlaxEditor.Surface.ContextMenu group.ArrowImageOpened = new SpriteBrush(Style.Current.ArrowDown); group.ArrowImageClosed = new SpriteBrush(Style.Current.ArrowRight); group.Close(false); - archetypeIndex = 0; + + // ReSharper disable once PossibleNullReferenceException for (int i = 0; i < parameters.Count; i++) { - var item = new VisjectCMItem(group, groupArchetype, archetypes[archetypeIndex++]) + var param = parameters[i]; + + // Define Getter node and create CM item + var node = (NodeArchetype)_parameterGetNodeArchetype.Clone(); + node.Title = "Get " + param.Name; + node.DefaultValues[0] = param.ID; + archetypes[archetypeIndex++] = node; + + var item = new VisjectCMItem(group, groupArchetype, node) { Parent = group }; + // Define Setter node and create CM item if parameter has a setter if (_parameterSetNodeArchetype != null) { - item = new VisjectCMItem(group, groupArchetype, archetypes[archetypeIndex++]) + node = (NodeArchetype)_parameterSetNodeArchetype.Clone(); + node.Title = "Set " + param.Name; + node.DefaultValues[0] = param.ID; + node.DefaultValues[1] = TypeUtils.GetDefaultValue(param.Type); + archetypes[archetypeIndex++] = node; + + item = new VisjectCMItem(group, groupArchetype, node) { Parent = group }; } } + group.SortChildren(); group.UnlockChildrenRecursive(); group.Parent = _groupsPanel;