From a180e1b56025c6b7d81d2e587ad90531d29de44c Mon Sep 17 00:00:00 2001 From: rtk0c Date: Sat, 5 Jun 2021 19:44:54 -0700 Subject: Initial work on asset system (does not compile) --- core/src/Model/Workflow/Workflow.hpp | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'core/src/Model/Workflow/Workflow.hpp') diff --git a/core/src/Model/Workflow/Workflow.hpp b/core/src/Model/Workflow/Workflow.hpp index c57ac31..51596e5 100644 --- a/core/src/Model/Workflow/Workflow.hpp +++ b/core/src/Model/Workflow/Workflow.hpp @@ -1,5 +1,6 @@ #pragma once +#include "Model/Assets.hpp" #include "Model/Workflow/Value.hpp" #include "Utils/Vector.hpp" #include "cplt_fwd.hpp" @@ -174,17 +175,12 @@ protected: void OnDetach(); }; -struct WorkflowInfo +class Workflow : public Asset { - std::filesystem::path Path; - std::string Name; - std::string PathStringCache = Path.string(); - - std::unique_ptr LoadFromDisk() const; -}; +public: + using CategoryType = WorkflowAssetCategory; + static constinit const WorkflowAssetCategory Category; -class Workflow -{ private: friend class WorkflowNode; friend class WorkflowEvaluationContext; @@ -279,3 +275,14 @@ private: std::pair AllocWorkflowConnection(); std::pair&, size_t> AllocWorkflowStep(); }; + +class WorkflowAssetCategory : public AssetCategory +{ +public: + virtual void DiscoverFiles(const std::function& callback) const override; + virtual Workflow* CreateEmpty(const SavedAsset& diskForm) const override; + virtual Workflow* Load(const SavedAsset& diskForm) const override; + virtual void SetupDetailsTable(const char* tableId) const override; + virtual void DrawBigIcon(const SavedAsset& asset) const override; + virtual void DrawDetailsTableRow(const SavedAsset& asset) const override; +}; -- cgit v1.2.3-70-g09d2