#pragma once #include #include #include "images/material.h" namespace wp::core::objects { using json = nlohmann::json; class effect { public: effect ( std::string name, std::string description, std::string group, std::string preview ); static effect* fromJSON (json data); std::vector* getDependencies (); std::vector* getMaterials (); protected: void insertDependency (const std::string& dep); void insertMaterial (images::material* material); private: std::string m_name; std::string m_description; std::string m_group; std::string m_preview; std::vector m_dependencies; std::vector m_materials; }; }