/******************************************************************************
*	File		-	project.h
*	Author		-	Joey Pollack
*	Date		-	2021/11/09 (y/m/d)
*	Mod Date	-	2021/11/09 (y/m/d)
*	Description	-	Manage data for a game project
******************************************************************************/

#ifndef PROJECT_H_
#define PROJECT_H_

#include <utils/opRes.h>

#include <string>
#include <vector>
#include <filesystem>

namespace lunarium
{
    class Scene;
    class Project
    {
    public:
        Project();

        /// location should NOT include the project file
        OpRes GenerateProject(std::string name, std::filesystem::path location);

        /// location should be the full path including the project file
        OpRes LoadProject(std::filesystem::path location);
        void UnloadCurrentProject();

        bool IsLoaded() const;
        const std::string& GetName() const;
        std::filesystem::path GetRootDirectory() const;

    private:
        bool mIsLoaded;
        std::string mName;
        std::filesystem::path mLocation;

        std::vector<Scene*> mScenes;
    };
}

#endif  // PROJECT_H_