23#include "../system/system_utils.h"
24#include "../system/system_consts.h"
25#include "../NodeGraphCore/GlobalTemplateBlackboard.h"
27#include "../third_party/imgui/imgui.h"
28#include "../third_party/imnodes/imnodes.h"
29#include "../json_helper.h"
30#include "../TaskSystem/TaskGraphLoader.h"
40#include <unordered_set>
125 new ImNodesCanvasEditor(
147 m_getBBPanel = std::unique_ptr<GetBBValuePropertyPanel>(
148 new GetBBValuePropertyPanel());
149 m_setBBPanel = std::unique_ptr<SetBBValuePropertyPanel>(
150 new SetBBValuePropertyPanel());
152 new VariablePropertyPanel());
158 new SubGraphFilePickerModal());
163 new EntityBlackboard(0));
219 <<
"' has no embedded presets\n";
225 SYSTEM_LOG <<
"[VSEditor] Selection effect renderer initialized (Olympe Blue style)\n";
UI-side registry of available atomic tasks with display metadata.
Wrapper around the graph blackboard entries for dropdown editors.
Registry of available condition types for Branch/While node dropdowns.
Runtime debug controller for ATS Visual Scripting (Phase 5).
ComponentTypeID GetComponentTypeID_Static()
Defines MathOpOperand — operand references for MathOp nodes.
Hardcoded lists of math and comparison operators for dropdown editors.
ImNodes-based graph editor for ATS Visual Script graphs (Phase 5).
void LoadFromPresetList(const std::vector< ConditionPreset > &presets)
Loads presets from a vector of ConditionPreset objects (clears existing data first).
void ApplyStyle_OlympeBlue()
Style standard "Olympe Blue" - Cyan vif avec glow modéré
std::vector< TaskNodeDefinition > Nodes
All graph nodes.
std::string Name
Friendly name of this template (e.g. "PatrolBehaviour")
std::vector< ConditionPreset > Presets
Presets are now stored in the graph JSON, not in external files.
std::unique_ptr< DynamicDataPinManager > m_pinManager
Dynamic pin manager shared across all Branch nodes in this panel.
char m_saveAsFilename[256]
Buffer for the user-entered filename (without extension)
std::vector< VSEditorLink > m_editorLinks
Editor links (exec + data)
std::unique_ptr< VariablePropertyPanel > m_variablePanel
Properties-panel sub-widget for the selected Variable node (data pure).
VisualScriptEditorPanel()
VisualScriptEditorPanel Constructor.
TaskGraphTemplate m_template
The template currently being edited.
void Shutdown()
Shutdown the editor panel and release all resources.
std::unique_ptr< MathOpPropertyPanel > m_mathOpPanel
Properties-panel sub-widget for the selected MathOp node.
void Initialize()
Initialize the editor panel with ImNodes context and UI helpers.
std::unique_ptr< EntityBlackboard > m_entityBlackboard
Per-entity blackboard instance (combines local + global variables) Created in Initialize() and manage...
int m_condPanelNodeID
ID of the node currently loaded into m_conditionsPanel (-1 = none).
std::unique_ptr< NodeConditionsPanel > m_conditionsPanel
Properties-panel sub-widget for the selected Branch node.
std::unique_ptr< NodeBranchRenderer > m_branchRenderer
Specialized renderer for Branch nodes (4-section layout with conditions).
std::unique_ptr< SubGraphFilePickerModal > m_subGraphModal
Phase 26 — SubGraph File Picker Modal.
std::unique_ptr< GetBBValuePropertyPanel > m_getBBPanel
Properties-panel sub-widget for the selected GetBBValue node.
std::unique_ptr< SetBBValuePropertyPanel > m_setBBPanel
Properties-panel sub-widget for the selected SetBBValue node.
std::unordered_set< int > m_positionedNodes
Nodes for which ImNodes has been given a position.
SelectionEffectRenderer m_selectionRenderer
Renders glow effect for selected nodes (cyan halo + thickened border).
std::unique_ptr< ImNodesCanvasEditor > m_canvasEditor
Canvas editor adapter for minimap support (Phase 37) Abstracts imnodes minimap rendering through ICan...
int m_minimapPosition
Minimap position (0=TopLeft, 1=TopRight, 2=BottomLeft, 3=BottomRight)
ImNodesEditorContext * m_imnodesContext
float m_minimapSize
Minimap size ratio (0.05-0.5 of canvas)
std::vector< VSEditorNode > m_editorNodes
Editor nodes (mirrors m_template.Nodes + position/selection state)
bool m_minimapVisible
Minimap visibility flag for VisualScript canvas.
int m_selectedNodeID
Currently selected node (for properties panel)
~VisualScriptEditorPanel()
VisualScriptEditorPanel Destructor.
ConditionPresetRegistry m_presetRegistry
Global registry of ConditionPreset objects.
std::unique_ptr< ConditionPresetLibraryPanel > m_libraryPanel
Global condition preset library panel (UI for creating/editing/deleting presets).
< Provides AssetID and INVALID_ASSET_ID