 2ac0edbbdb
			
		
	
	2ac0edbbdb
	
	
	
		
			
			It still needs work - some LWJGL versions are exclusive to macOS. This has to be encoded in the json.
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <QString>
 | |
| #include <QStringList>
 | |
| #include <QDateTime>
 | |
| #include <QSet>
 | |
| 
 | |
| #include <memory>
 | |
| #include "minecraft/OpSys.h"
 | |
| #include "minecraft/Rule.h"
 | |
| #include "ProblemProvider.h"
 | |
| #include "Library.h"
 | |
| #include "JarMod.h"
 | |
| 
 | |
| class MinecraftProfile;
 | |
| class VersionFile;
 | |
| struct MojangDownloadInfo;
 | |
| struct MojangAssetIndexInfo;
 | |
| 
 | |
| typedef std::shared_ptr<VersionFile> VersionFilePtr;
 | |
| class VersionFile : public ProblemContainer
 | |
| {
 | |
| 	friend class MojangVersionFormat;
 | |
| 	friend class OneSixVersionFormat;
 | |
| public: /* methods */
 | |
| 	void applyTo(MinecraftProfile *profile);
 | |
| 
 | |
| public: /* data */
 | |
| 	/// MultiMC: order hint for this version file if no explicit order is set
 | |
| 	int order = 0;
 | |
| 
 | |
| 	/// MultiMC: filename of the file this was loaded from
 | |
| 	// QString filename;
 | |
| 
 | |
| 	/// MultiMC: human readable name of this package
 | |
| 	QString name;
 | |
| 
 | |
| 	/// MultiMC: package ID of this package
 | |
| 	QString uid;
 | |
| 
 | |
| 	/// MultiMC: version of this package
 | |
| 	QString version;
 | |
| 
 | |
| 	/// MultiMC: dependency on a Minecraft version
 | |
| 	QString dependsOnMinecraftVersion;
 | |
| 
 | |
| 	/// Mojang: used to version the Mojang version format
 | |
| 	int minimumLauncherVersion = -1;
 | |
| 
 | |
| 	/// Mojang: DEPRECATED version of Minecraft this is
 | |
| 	QString minecraftVersion;
 | |
| 
 | |
| 	/// Mojang: class to launch Minecraft with
 | |
| 	QString mainClass;
 | |
| 
 | |
| 	/// MultiMC: class to launch legacy Minecraft with (embed in a custom window)
 | |
| 	QString appletClass;
 | |
| 
 | |
| 	/// Mojang: Minecraft launch arguments (may contain placeholders for variable substitution)
 | |
| 	QString minecraftArguments;
 | |
| 
 | |
| 	/// Mojang: type of the Minecraft version
 | |
| 	QString type;
 | |
| 
 | |
| 	/// Mojang: the time this version was actually released by Mojang
 | |
| 	QDateTime releaseTime;
 | |
| 
 | |
| 	/// Mojang: the time this version was last updated by Mojang
 | |
| 	QDateTime updateTime;
 | |
| 
 | |
| 	/// Mojang: DEPRECATED asset group to be used with Minecraft
 | |
| 	QString assets;
 | |
| 
 | |
| 	/// MultiMC: list of tweaker mod arguments for launchwrapper
 | |
| 	QStringList addTweakers;
 | |
| 
 | |
| 	/// Mojang: list of libraries to add to the version
 | |
| 	QList<LibraryPtr> libraries;
 | |
| 
 | |
| 	/// MultiMC: list of attached traits of this version file - used to enable features
 | |
| 	QSet<QString> traits;
 | |
| 
 | |
| 	/// MultiMC: list of jar mods added to this version
 | |
| 	QList<JarmodPtr> jarMods;
 | |
| 
 | |
| public:
 | |
| 	// Mojang: list of 'downloads' - client jar, server jar, windows server exe, maybe more.
 | |
| 	QMap <QString, std::shared_ptr<MojangDownloadInfo>> mojangDownloads;
 | |
| 
 | |
| 	// Mojang: extended asset index download information
 | |
| 	std::shared_ptr<MojangAssetIndexInfo> mojangAssetIndex;
 | |
| };
 |