From d4eacb56b30baaef801f42545398a4f29755fadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 7 Mar 2016 02:01:28 +0100 Subject: NOISSUE make new Mojang version format pass through MultiMC structures Not yet used effectively, but it is read and written properly --- logic/minecraft/RawLibrary.h | 187 ------------------------------------------- 1 file changed, 187 deletions(-) delete mode 100644 logic/minecraft/RawLibrary.h (limited to 'logic/minecraft/RawLibrary.h') 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 -#include -#include -#include -#include -#include -#include -#include - -#include "OneSixRule.h" -#include "minecraft/OpSys.h" -#include "GradleSpecifier.h" -#include "net/URLConstants.h" - -class RawLibrary; -typedef std::shared_ptr 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(); - 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> 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 m_native_classifiers; - - /// true if the library had a rules section (even empty) - bool applyRules = false; - - /// rules associated with the library - QList> m_rules; -}; -- cgit v1.2.3