diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-03-07 02:01:28 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-03-07 02:03:36 +0100 |
commit | d4eacb56b30baaef801f42545398a4f29755fadf (patch) | |
tree | 0a185b0841f12c5af431cdedeb8695691ac0bce9 /logic/minecraft/RawLibrary.h | |
parent | 3d8728f52f220845fc4079d34b97458a122ac031 (diff) | |
download | MultiMC-d4eacb56b30baaef801f42545398a4f29755fadf.tar MultiMC-d4eacb56b30baaef801f42545398a4f29755fadf.tar.gz MultiMC-d4eacb56b30baaef801f42545398a4f29755fadf.tar.lz MultiMC-d4eacb56b30baaef801f42545398a4f29755fadf.tar.xz MultiMC-d4eacb56b30baaef801f42545398a4f29755fadf.zip |
NOISSUE make new Mojang version format pass through MultiMC structures
Not yet used effectively, but it is read and written properly
Diffstat (limited to 'logic/minecraft/RawLibrary.h')
-rw-r--r-- | logic/minecraft/RawLibrary.h | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/logic/minecraft/RawLibrary.h b/logic/minecraft/RawLibrary.h deleted file mode 100644 index a8d3ef0d..00000000 --- a/logic/minecraft/RawLibrary.h +++ /dev/null @@ -1,187 +0,0 @@ -#pragma once -#include <QString> -#include <QPair> -#include <QList> -#include <QStringList> -#include <QMap> -#include <QDir> -#include <QUrl> -#include <memory> - -#include "OneSixRule.h" -#include "minecraft/OpSys.h" -#include "GradleSpecifier.h" -#include "net/URLConstants.h" - -class RawLibrary; -typedef std::shared_ptr<RawLibrary> RawLibraryPtr; - -class RawLibrary -{ - friend class OneSixVersionFormat; - friend class MojangVersionFormat; -public: - RawLibrary() - { - } - RawLibrary(const QString &name) - { - m_name = name; - } - /// limited copy without some data. TODO: why? - static RawLibraryPtr limitedCopy(RawLibraryPtr base) - { - auto newlib = std::make_shared<RawLibrary>(); - newlib->m_name = base->m_name; - newlib->m_base_url = base->m_base_url; - newlib->m_hint = base->m_hint; - newlib->m_absolute_url = base->m_absolute_url; - newlib->extract_excludes = base->extract_excludes; - newlib->m_native_classifiers = base->m_native_classifiers; - newlib->m_rules = base->m_rules; - newlib->m_storagePrefix = base->m_storagePrefix; - return newlib; - } - -public: /* methods */ - /// Returns the raw name field - const GradleSpecifier & rawName() const - { - return m_name; - } - - void setRawName(const GradleSpecifier & spec) - { - m_name = spec; - } - - void setClassifier(const QString & spec) - { - m_name.setClassifier(spec); - } - - /// returns the full group and artifact prefix - QString artifactPrefix() const - { - return m_name.artifactPrefix(); - } - - /// get the artifact ID - QString artifactId() const - { - return m_name.artifactId(); - } - - /// get the artifact version - QString version() const - { - return m_name.version(); - } - - /// Returns true if the library is native - bool isNative() const - { - return m_native_classifiers.size() != 0; - } - - void setStoragePrefix(QString prefix = QString()); - - /// the default storage prefix used by MultiMC - static QString defaultStoragePrefix(); - - bool storagePathIsDefault() const; - - /// Get the prefix - root of the storage to be used - QString storagePrefix() const; - - /// Get the relative path where the library should be saved - QString storageSuffix() const; - - /// Get the absolute path where the library should be saved - QString storagePath() const; - - /// Set the url base for downloads - void setBaseUrl(const QString &base_url) - { - m_base_url = base_url; - } - - /// List of files this library describes. Required because of platform-specificness of native libs - QStringList files() const; - - /// List Shortcut for checking if all the above files exist - bool filesExist(const QDir &base) const; - - void setAbsoluteUrl(const QString &absolute_url) - { - m_absolute_url = absolute_url; - } - - QString absoluteUrl() const - { - return m_absolute_url; - } - - void setHint(const QString &hint) - { - m_hint = hint; - } - - QString hint() const - { - return m_hint; - } - - /// Set the load rules - void setRules(QList<std::shared_ptr<Rule>> rules) - { - m_rules = rules; - } - - /// Returns true if the library should be loaded (or extracted, in case of natives) - bool isActive() const; - - /// Get the URL to download the library from - QString url() const; - -protected: /* data */ - /// the basic gradle dependency specifier. - GradleSpecifier m_name; - /// where to store the lib locally - QString m_storage_path; - /// is this lib actually active on the current OS? - bool m_is_active = false; - - /// DEPRECATED URL prefix of the maven repo where the file can be downloaded - QString m_base_url; - - /// DEPRECATED: MultiMC-specific absolute URL. takes precedence over the implicit maven repo URL, if defined - QString m_absolute_url; - -public: /* data */ - /** - * MultiMC-specific type hint - modifies how the library is treated - */ - QString m_hint; - - /** - * storage - by default the local libraries folder in multimc, but could be elsewhere - * MultiMC specific, because of FTB. - */ - QString m_storagePrefix; - - /// true if the library had an extract/excludes section (even empty) - bool applyExcludes = false; - - /// a list of files that shouldn't be extracted from the library - QStringList extract_excludes; - - /// native suffixes per OS - QMap<OpSys, QString> m_native_classifiers; - - /// true if the library had a rules section (even empty) - bool applyRules = false; - - /// rules associated with the library - QList<std::shared_ptr<Rule>> m_rules; -}; |