From b6d455a02bd338e9dc0faa09d4d8177ecd8d569a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 10 Apr 2016 15:53:05 +0200 Subject: NOISSUE reorganize and document libraries --- api/logic/minecraft/ProfilePatch.h | 104 +++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 api/logic/minecraft/ProfilePatch.h (limited to 'api/logic/minecraft/ProfilePatch.h') diff --git a/api/logic/minecraft/ProfilePatch.h b/api/logic/minecraft/ProfilePatch.h new file mode 100644 index 00000000..f0c65360 --- /dev/null +++ b/api/logic/minecraft/ProfilePatch.h @@ -0,0 +1,104 @@ +#pragma once + +#include +#include +#include +#include +#include "JarMod.h" + +class MinecraftProfile; + +enum ProblemSeverity +{ + PROBLEM_NONE, + PROBLEM_WARNING, + PROBLEM_ERROR +}; + +/// where is a version from? +enum VersionSource +{ + Local, //!< version loaded from a file in the cache. + Remote, //!< incomplete version on a remote server. +}; + +class PatchProblem +{ +public: + PatchProblem(ProblemSeverity severity, const QString & description) + { + m_severity = severity; + m_description = description; + } + const QString & getDescription() const + { + return m_description; + } + const ProblemSeverity getSeverity() const + { + return m_severity; + } +private: + ProblemSeverity m_severity; + QString m_description; +}; + +class ProfilePatch : public std::enable_shared_from_this +{ +public: + virtual ~ProfilePatch(){}; + virtual void applyTo(MinecraftProfile *profile) = 0; + + virtual bool isMinecraftVersion() = 0; + virtual bool hasJarMods() = 0; + virtual QList getJarMods() = 0; + + virtual bool isMoveable() = 0; + virtual bool isCustomizable() = 0; + virtual bool isRevertible() = 0; + virtual bool isRemovable() = 0; + virtual bool isCustom() = 0; + virtual bool isEditable() = 0; + virtual bool isVersionChangeable() = 0; + + virtual void setOrder(int order) = 0; + virtual int getOrder() = 0; + + virtual QString getID() = 0; + virtual QString getName() = 0; + virtual QString getVersion() = 0; + virtual QDateTime getReleaseDateTime() = 0; + + virtual QString getFilename() = 0; + + virtual VersionSource getVersionSource() = 0; + + virtual std::shared_ptr getVersionFile() = 0; + + virtual const QList& getProblems() + { + return m_problems; + } + virtual void addProblem(ProblemSeverity severity, const QString &description) + { + if(severity > m_problemSeverity) + { + m_problemSeverity = severity; + } + m_problems.append(PatchProblem(severity, description)); + } + virtual ProblemSeverity getProblemSeverity() + { + return m_problemSeverity; + } + virtual bool hasFailed() + { + return getProblemSeverity() == PROBLEM_ERROR; + } + +protected: + QList m_problems; + ProblemSeverity m_problemSeverity = PROBLEM_NONE; +}; + +typedef std::shared_ptr ProfilePatchPtr; -- cgit v1.2.3