36#include "../system/system_utils.h"
37#include "../system/system_consts.h"
38#include "../NodeGraphCore/GlobalTemplateBlackboard.h"
40#include "../third_party/imgui/imgui.h"
41#include "../third_party/imnodes/imnodes.h"
42#include "../json_helper.h"
43#include "../TaskSystem/TaskGraphLoader.h"
53#include <unordered_set>
119 return nodeID * 10000 + 0;
142 return nodeID * 10000 + 100 +
pinIndex;
166 return nodeID * 10000 + 200 +
pinIndex;
187 return nodeID * 10000 + 300 +
pinIndex;
228 SYSTEM_LOG <<
"[VSEditor] Double-clicked SubGraph node #" << nodeID
236 SYSTEM_LOG <<
"[VSEditor] Double-clicked SubGraph node #" << nodeID
237 <<
" but no file path is set.\n";
243 SYSTEM_LOG <<
"[VSEditor] Double-click: node #" << nodeID <<
" not found.\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.
Central manager for the multi-graph tab system.
ImNodes-based graph editor for ATS Visual Script graphs (Phase 5).
static TabManager & Get()
Returns the global singleton instance.
std::string OpenFileInTab(const std::string &filePath)
Opens a file in a new tab.
void OnNodeDoubleClicked(int nodeID)
Handles double-click on a node (opens SubGraph, etc).
int ExecOutAttrUID(int nodeID, int pinIndex) const
Maps node ID + pin index -> ImNodes attribute UID for exec-out pins.
int AllocLinkID()
Allocate a unique link ID.
int DataInAttrUID(int nodeID, int pinIndex) const
Maps node ID + data pin index -> ImNodes attribute UID for data-in pins.
std::string GetNodeSubGraphPath(const TaskNodeDefinition &def) const
Extracts SubGraph file path from a node definition.
int m_nextNodeID
Next available node ID.
int AllocNodeID()
Allocate a unique node ID.
int DataOutAttrUID(int nodeID, int pinIndex) const
Maps node ID + data pin index -> ImNodes attribute UID for data-out pins.
int ExecInAttrUID(int nodeID) const
Maps node ID -> ImNodes attribute UID for an exec-in pin.
std::vector< VSEditorNode > m_editorNodes
Editor nodes (mirrors m_template.Nodes + position/selection state)
int m_nextLinkID
Next available ImNodes link ID.
< Provides AssetID and INVALID_ASSET_ID
@ SubGraph
Sub-graph call (SubTask)
Full description of a single node in the task graph.
std::string SubGraphPath
For SubGraph: path to the sub-graph JSON.
TaskNodeType Type
Node role.