aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/Library.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/minecraft/Library.h')
-rw-r--r--launcher/minecraft/Library.h54
1 files changed, 46 insertions, 8 deletions
diff --git a/launcher/minecraft/Library.h b/launcher/minecraft/Library.h
index 0740a7ca..950aec9d 100644
--- a/launcher/minecraft/Library.h
+++ b/launcher/minecraft/Library.h
@@ -1,8 +1,44 @@
+// SPDX-License-Identifier: GPL-3.0-only
+/*
+ * PolyMC - Minecraft Launcher
+ * Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2013-2021 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
#pragma once
#include <QString>
#include <net/NetAction.h>
#include <QPair>
#include <QList>
+#include <QString>
#include <QStringList>
#include <QMap>
#include <QDir>
@@ -10,9 +46,9 @@
#include <memory>
#include "Rule.h"
-#include "minecraft/OpSys.h"
#include "GradleSpecifier.h"
#include "MojangDownloadInfo.h"
+#include "RuntimeContext.h"
class Library;
class MinecraftInstance;
@@ -98,7 +134,7 @@ public: /* methods */
m_repositoryURL = base_url;
}
- void getApplicableFiles(OpSys system, QStringList & jar, QStringList & native,
+ void getApplicableFiles(const RuntimeContext & runtimeContext, QStringList & jar, QStringList & native,
QStringList & native32, QStringList & native64, const QString & overridePath) const;
void setAbsoluteUrl(const QString &absolute_url)
@@ -112,7 +148,7 @@ public: /* methods */
}
/// Get the file name of the library
- QString filename(OpSys system) const;
+ QString filename(const RuntimeContext & runtimeContext) const;
// DEPRECATED: set a display name, used by jar mods only
void setDisplayName(const QString & displayName)
@@ -121,7 +157,7 @@ public: /* methods */
}
/// Get the file name of the library
- QString displayName(OpSys system) const;
+ QString displayName(const RuntimeContext & runtimeContext) const;
void setMojangDownloadInfo(MojangLibraryDownloadInfo::Ptr info)
{
@@ -140,7 +176,7 @@ public: /* methods */
}
/// Returns true if the library should be loaded (or extracted, in case of natives)
- bool isActive() const;
+ bool isActive(const RuntimeContext & runtimeContext) const;
/// Returns true if the library is contained in an instance and false if it is shared
bool isLocal() const;
@@ -152,9 +188,11 @@ public: /* methods */
bool isForge() const;
// Get a list of downloads for this library
- QList<NetAction::Ptr> getDownloads(OpSys system, class HttpMetaCache * cache,
+ QList<NetAction::Ptr> getDownloads(const RuntimeContext & runtimeContext, class HttpMetaCache * cache,
QStringList & failedLocalFiles, const QString & overridePath) const;
+ QString getCompatibleNative(const RuntimeContext & runtimeContext) const;
+
private: /* methods */
/// the default storage prefix used by PolyMC
static QString defaultStoragePrefix();
@@ -163,7 +201,7 @@ private: /* methods */
QString storagePrefix() const;
/// Get the relative file path where the library should be saved
- QString storageSuffix(OpSys system) const;
+ QString storageSuffix(const RuntimeContext & runtimeContext) const;
QString hint() const
{
@@ -204,7 +242,7 @@ protected: /* data */
QStringList m_extractExcludes;
/// native suffixes per OS
- QMap<OpSys, QString> m_nativeClassifiers;
+ QMap<QString, QString> m_nativeClassifiers;
/// true if the library had a rules section (even empty)
bool applyRules = false;