CEffect.h 903 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <nlohmann/json.hpp>
  3. #include <irrlicht/irrlicht.h>
  4. #include "Images/CMaterial.h"
  5. namespace wp::core::Objects
  6. {
  7. using json = nlohmann::json;
  8. class CEffect
  9. {
  10. public:
  11. CEffect (
  12. std::string name,
  13. std::string description,
  14. std::string group,
  15. std::string preview
  16. );
  17. static CEffect* fromJSON (json data);
  18. std::vector<std::string>* getDependencies ();
  19. std::vector<Images::CMaterial*>* getMaterials ();
  20. protected:
  21. void insertDependency (const std::string& dep);
  22. void insertMaterial (Images::CMaterial* material);
  23. private:
  24. std::string m_name;
  25. std::string m_description;
  26. std::string m_group;
  27. std::string m_preview;
  28. std::vector<std::string> m_dependencies;
  29. std::vector<Images::CMaterial*> m_materials;
  30. };
  31. }