15#include "../../Source/third_party/nlohmann/json.hpp"
24 class BlueprintEditorGUI;
54 std::vector<std::shared_ptr<AssetNode>>
children;
75 void Update(
float deltaTime);
87 void NewBlueprint(
const std::string& name,
const std::string& description =
"");
115 std::vector<AssetMetadata>
GetAssetsByType(
const std::string& type)
const;
155 bool SaveCurrentAsTemplate(
const std::string& name,
const std::string& description,
const std::string& category);
199 std::shared_ptr<AssetNode>
ScanDirectory(
const std::string& path);
235 std::map<std::string, std::unique_ptr<class BlueprintEditorPlugin>>
m_Plugins;
ComponentTypeID GetComponentTypeID_Static()
BlueprintEditorPlugin - Base interface for blueprint type plugins Each plugin handles a specific blue...
BlueprintEditor Singleton Backend Manages all business logic, state, and data for the Blueprint Edito...
bool HasSelectedEntity() const
std::vector< AssetMetadata > SearchAssets(const std::string &query) const
const std::string & GetCurrentFilepath() const
size_t GetRuntimeEntityCount() const
BlueprintEditor(const BlueprintEditor &)=delete
void RegisterPlugin(std::unique_ptr< class BlueprintEditorPlugin > plugin)
bool m_ShowMigrationDialog
std::shared_ptr< AssetNode > GetAssetTree() const
std::string GetSelectedAssetPath() const
void SetActive(bool active)
void ParseEntityBlueprint(const json &j, AssetMetadata &metadata)
void MigrateAllBlueprints()
std::vector< std::string > ScanBlueprintFiles(const std::string &directory)
static BlueprintEditor & Instance()
const std::vector< uint64_t > & GetRuntimeEntities() const
bool HasSelectedAsset() const
std::map< std::string, std::unique_ptr< class BlueprintEditorPlugin > > m_Plugins
bool LoadBlueprint(const std::string &filepath)
void SetShowMigrationDialog(bool show)
std::string DetectAssetType(const std::string &filepath)
std::shared_ptr< AssetNode > ScanDirectory(const std::string &path)
std::vector< AssetMetadata > GetAssetsByType(const std::string &type) const
std::vector< uint64_t > m_RuntimeEntities
void NewBlueprint(const std::string &name, const std::string &description="")
void NotifyEntityDestroyed(uint64_t entityId)
std::string GetNextRedoDescription() const
bool HasBlueprint() const
void SetAssetRootPath(const std::string &path)
class CommandStack * m_CommandStack
std::string GetLastError() const
std::string GetLastCommandDescription() const
std::string m_CurrentFilepath
Blueprint::EntityBlueprint & GetCurrentBlueprintMutable()
const Blueprint::EntityBlueprint & GetCurrentBlueprint() const
void NotifyEntityCreated(uint64_t entityId)
void ParseHFSM(const json &j, AssetMetadata &metadata)
bool DeleteTemplate(const std::string &templateId)
AssetMetadata GetAssetMetadata(const std::string &filepath)
std::vector< std::string > m_BlueprintsToMigrate
bool IsAssetValid(const std::string &filepath) const
void SelectAsset(const std::string &assetPath)
void SetSelectedEntity(uint64_t entityId)
bool ShowMigrationDialog() const
uint64_t GetSelectedEntity() const
std::string m_AssetRootPath
class CommandStack * GetCommandStack()
bool SaveBlueprintAs(const std::string &filepath)
class BlueprintEditorPlugin * GetPlugin(const std::string &type)
void OpenGraphInEditor(const std::string &assetPath)
void InitializeStandaloneEditor()
bool ApplyTemplate(const std::string &templateId)
std::shared_ptr< AssetNode > m_AssetTreeRoot
void ParseAssetMetadata(const std::string &filepath, AssetMetadata &metadata)
bool SaveCurrentAsTemplate(const std::string &name, const std::string &description, const std::string &category)
class BlueprintEditorPlugin * DetectPlugin(const json &blueprint)
bool HasUnsavedChanges() const
std::vector< AssetMetadata > GetAllAssets() const
void CollectAllAssets(const std::shared_ptr< AssetNode > &node, std::vector< AssetMetadata > &assets) const
void ParseBehaviorTree(const json &j, AssetMetadata &metadata)
std::string m_SelectedAssetPath
std::string GetAssetRootPath() const
static BlueprintEditor & Get()
void InitializeRuntimeEditor()
BlueprintEditor & operator=(const BlueprintEditor &)=delete
uint64_t m_SelectedEntity
Blueprint::EntityBlueprint m_CurrentBlueprint
void Update(float deltaTime)
CommandStack - Manages undo/redo command history Maintains two stacks for undo and redo operations.
AssetNode(const std::string &n, const std::string &path, bool isDir)
std::vector< std::shared_ptr< AssetNode > > children