| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include <wallpaperengine/fs/utils.h>
- #include "CProject.h"
- #include "../fs/utils.h"
- using namespace wp::core;
- CProject::CProject (std::string title, std::string type, CScene *scene) :
- m_title (std::move (title)),
- m_type (std::move (type)),
- m_scene (scene)
- {
- this->m_scene->setProject (this);
- }
- CProject* CProject::fromFile (const irr::io::path& filename)
- {
- json content = json::parse (wp::fs::utils::loadFullFile (filename));
- json::const_iterator title = content.find ("title");
- json::const_iterator type = content.find ("type");
- json::const_iterator file = content.find ("file");
- if (title == content.end ())
- {
- throw std::runtime_error ("Project title missing");
- }
- if (type == content.end ())
- {
- throw std::runtime_error ("Project type missing");
- }
- if (file == content.end ())
- {
- throw std::runtime_error ("Project's main file missing");
- }
- return new CProject (
- *title,
- *type,
- CScene::fromFile ((*file).get <std::string> ().c_str ())
- );
- }
- CScene* CProject::getScene ()
- {
- return this->m_scene;
- }
- std::string CProject::getTitle ()
- {
- return this->m_title;
- }
- std::string CProject::getType ()
- {
- return this->m_type;
- }
|