Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Classes | Namespaces
VSGraphExecutor.h File Reference

Exécuteur de graphes ATS Visual Scripting (flowchart). More...

#include <cstdint>
#include <string>
#include "TaskGraphTemplate.h"
#include "TaskGraphTypes.h"
#include "../ECS/Components/TaskRunnerComponent.h"
#include "AtomicTaskContext.h"
#include "LocalBlackboard.h"
#include "ConditionEvaluator.h"
#include "../Runtime/ConditionPresetEvaluator.h"
#include "../Runtime/RuntimeEnvironment.h"
#include "../Editor/ConditionPreset/ConditionPresetRegistry.h"
+ Include dependency graph for VSGraphExecutor.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Olympe::SubGraphCallStack
 Tracks the SubGraph call chain to detect cycles and enforce depth limits. More...
 
class  Olympe::VSGraphExecutor
 Exécute un graphe ATS Visual Scripting pour une entité sur un frame. More...
 

Namespaces

namespace  Olympe
 < Provides AssetID and INVALID_ASSET_ID
 

Detailed Description

Exécuteur de graphes ATS Visual Scripting (flowchart).

Author
Olympe Engine
Date
2026-03-08

VSGraphExecutor implémente la logique d'exécution "par frame" d'un graphe de type VisualScript (schema v4). Il est appelé par TaskSystem::Process() pour chaque entité dont le TaskGraphTemplate a GraphType == "VisualScript".

Modèle d'exécution :

Résolution des Data Pins (Phase 24.1 - Stack-based recursive evaluation): Avant d'exécuter un node, VSGraphExecutor résout toutes ses DataConnections entrantes en utilisant DataPinEvaluator::EvaluateNodeInputPins().

Ce système utilise une évaluation récursive en profondeur d'abord pour évaluer les réseaux de data pins "data pure" (Variable, MathOp, GetBBValue). Les dépendances sont résolues automatiquement avec détection de cycles et limite de profondeur pour éviter les débordements de pile.

Exemple: SetBBValue.In("Value") ← MathOp.Out("Result") ← Variable.Out("mHealth") + Variable.Out("mFoodPortion") L'exécution se fera: évaluer MathOp -> évaluer ses deux Variables -> calculer résultat -> SetBBValue

Phase 24 - Condition Preset Integration (2026-03-17):

C++14 compliant.

Definition in file VSGraphExecutor.h.