16#include "../ECS_Entity.h"
18#include "../json_helper.h"
20#include "../BlueprintEditor/NodeGraphPanel.h"
21#include "../BlueprintEditor/BTNodeGraphManager.h"
26#include <unordered_map>
27#include <unordered_set>
29#include "../EditorCommon/EditorAutosaveManager.h"
Data-driven behavior tree system for AI decision making.
BTStatus
Behavior tree node execution status.
@ Running
Node is currently executing.
AIMode
AI behavior modes for NPCs.
ComponentTypeID GetComponentTypeID_Static()
Main debug window for behavior tree runtime visualization.
~BehaviorTreeDebugWindow()
void RenderBlackboardSection()
float m_autoRefreshInterval
EditorAutosaveManager m_autosave
void Initialize()
Initialize the debug window.
void RenderNodeGraphDebugPanel()
SDL_Renderer * m_separateRenderer
ImGuiContext * m_separateImGuiContext
void RenderInspectorPanel()
void RenderEntityListPanel()
std::vector< EntityDebugInfo > m_filteredEntities
void DestroySeparateWindow()
void ToggleVisibility()
Toggle window visibility (creates/destroys separate window)
std::deque< ExecutionLogEntry > m_executionLog
void RenderExecutionLog()
void UpdateEntitySorting()
BehaviorTreeDebugWindow()
void UpdateEntityFiltering()
SDL_Window * m_separateWindow
EntityID m_selectedEntity
void ShutdownNodeGraphDebugMode()
void CreateSeparateWindow()
void Shutdown()
Shutdown and cleanup.
const size_t MAX_LOG_ENTRIES
NodeGraphPanel m_nodeGraphPanel
void Render()
Render the debug window (in separate SDL3 window)
void RenderEntityEntry(const EntityDebugInfo &info)
bool m_imnodesInitialized
std::vector< EntityDebugInfo > m_entities
uint32_t m_lastDebugTreeId
void RenderInSeparateWindow()
void AddExecutionEntry(EntityID entity, uint32_t nodeId, const std::string &nodeName, BTStatus status)
Add an execution log entry.
void InitNodeGraphDebugMode()
bool IsVisible() const
Check if window is visible.
void ProcessEvent(SDL_Event *event)
Process SDL events for separate window.
NodeGraphPanel - ImGui/ImNodes panel for node graph editing Provides visual editor for behavior trees...
< Provides AssetID and INVALID_ASSET_ID
Cached debug information for a single entity.
Single entry in the execution log.
float timeAgo
Time since entry (seconds)
EntityID entity
Entity that executed.
BTStatus status
Execution result.
std::string nodeName
Node name.
uint32_t nodeId
Node that was executed.