From 76e4a9e7b14ab062c221c0ff015d2cb8c5385825 Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Fri, 19 Nov 2021 16:03:04 +0100 Subject: [PATCH] Add Index output for array iterator loop --- Source/Editor/Surface/Archetypes/Flow.cs | 3 ++- Source/Engine/Content/Assets/VisualScript.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Editor/Surface/Archetypes/Flow.cs b/Source/Editor/Surface/Archetypes/Flow.cs index 5de3d03b6..c395621a5 100644 --- a/Source/Editor/Surface/Archetypes/Flow.cs +++ b/Source/Editor/Surface/Archetypes/Flow.cs @@ -327,7 +327,8 @@ namespace FlaxEditor.Surface.Archetypes NodeElementArchetype.Factory.Input(2, "Break", false, typeof(void), 2), NodeElementArchetype.Factory.Output(0, "Loop", typeof(void), 3, true), NodeElementArchetype.Factory.Output(1, "Item", typeof(object), 4), - NodeElementArchetype.Factory.Output(2, "Done", typeof(void), 5, true), + NodeElementArchetype.Factory.Output(2, "Index", typeof(int), 5), + NodeElementArchetype.Factory.Output(3, "Done", typeof(void), 6, true), } }, }; diff --git a/Source/Engine/Content/Assets/VisualScript.cpp b/Source/Engine/Content/Assets/VisualScript.cpp index 47b815e66..ebacae017 100644 --- a/Source/Engine/Content/Assets/VisualScript.cpp +++ b/Source/Engine/Content/Assets/VisualScript.cpp @@ -1164,7 +1164,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val if (boxBase->HasConnection()) eatBox(node, boxBase->FirstConnection()); } - boxBase = node->GetBox(5); + boxBase = node->GetBox(6); if (boxBase->HasConnection()) eatBox(node, boxBase->FirstConnection()); break; @@ -1180,6 +1180,11 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val if (iteratorIndex != scope->ReturnedValues.Count() && arrayIndex != scope->ReturnedValues.Count()) value = scope->ReturnedValues[arrayIndex].Value.AsArray()[(int32)scope->ReturnedValues[iteratorIndex].Value]; break; + // Index + case 5: + if (iteratorIndex != scope->ReturnedValues.Count()) + value = (int32)scope->ReturnedValues[iteratorIndex].Value; + break; } break; }