Update Prism Python bindings interface
Add GetProjects, GetProjectTemplates, GetGems, GetProject and GetGem. CreateProject and UpdateProject and the engine functions are not implemented yet
This commit is contained in:
@@ -15,9 +15,12 @@
|
||||
#include <AzCore/Interface/Interface.h>
|
||||
#include <AzCore/std/string/string.h>
|
||||
#include <AzCore/std/containers/vector.h>
|
||||
#include <AzCore/Outcome/Outcome.h>
|
||||
|
||||
#include <EngineInfo.h>
|
||||
#include <GemCatalog/GemInfo.h>
|
||||
#include <ProjectInfo.h>
|
||||
#include <ProjectTemplateInfo.h>
|
||||
|
||||
namespace O3DE::ProjectManager
|
||||
{
|
||||
@@ -31,8 +34,76 @@ namespace O3DE::ProjectManager
|
||||
IPythonBindings() = default;
|
||||
virtual ~IPythonBindings() = default;
|
||||
|
||||
//! Get the current project
|
||||
virtual ProjectInfo GetCurrentProject() = 0;
|
||||
|
||||
// Engine
|
||||
|
||||
/**
|
||||
* Get info about the engine
|
||||
* @return an outcome with EngineInfo on success
|
||||
*/
|
||||
virtual AZ::Outcome<EngineInfo> GetEngineInfo() = 0;
|
||||
|
||||
/**
|
||||
* Set info about the engine
|
||||
* @param engineInfo an EngineInfo object
|
||||
*/
|
||||
virtual bool SetEngineInfo(const EngineInfo& engineInfo) = 0;
|
||||
|
||||
|
||||
// Gems
|
||||
|
||||
/**
|
||||
* Get info about a Gem
|
||||
* @param path the absolute path to the Gem
|
||||
* @return an outcome with GemInfo on success
|
||||
*/
|
||||
virtual AZ::Outcome<GemInfo> GetGem(const QString& path) = 0;
|
||||
|
||||
/**
|
||||
* Get info about all known Gems
|
||||
* @return an outcome with GemInfos on success
|
||||
*/
|
||||
virtual AZ::Outcome<QVector<GemInfo>> GetGems() = 0;
|
||||
|
||||
|
||||
// Projects
|
||||
|
||||
/**
|
||||
* Create a project
|
||||
* @param projectTemplate the project template to use
|
||||
* @param projectInfo the project info to use
|
||||
* @return an outcome with ProjectInfo on success
|
||||
*/
|
||||
virtual AZ::Outcome<ProjectInfo> CreateProject(const ProjectTemplateInfo& projectTemplate, const ProjectInfo& projectInfo) = 0;
|
||||
|
||||
/**
|
||||
* Get info about a project
|
||||
* @param path the absolute path to the project
|
||||
* @return an outcome with ProjectInfo on success
|
||||
*/
|
||||
virtual AZ::Outcome<ProjectInfo> GetProject(const QString& path) = 0;
|
||||
|
||||
/**
|
||||
* Get info about all known projects
|
||||
* @return an outcome with ProjectInfos on success
|
||||
*/
|
||||
virtual AZ::Outcome<QVector<ProjectInfo>> GetProjects() = 0;
|
||||
|
||||
/**
|
||||
* Update a project
|
||||
* @param projectInfo the info to use to update the project
|
||||
* @return true on success, false on failure
|
||||
*/
|
||||
virtual bool UpdateProject(const ProjectInfo& projectInfo) = 0;
|
||||
|
||||
|
||||
// Project Templates
|
||||
|
||||
/**
|
||||
* Get info about all known project templates
|
||||
* @return an outcome with ProjectTemplateInfos on success
|
||||
*/
|
||||
virtual AZ::Outcome<QVector<ProjectTemplateInfo>> GetProjectTemplates() = 0;
|
||||
};
|
||||
|
||||
using PythonBindingsInterface = AZ::Interface<IPythonBindings>;
|
||||
|
||||
Reference in New Issue
Block a user