diff options
Diffstat (limited to 'backend/Mod.h')
-rw-r--r-- | backend/Mod.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/backend/Mod.h b/backend/Mod.h new file mode 100644 index 00000000..d9d90426 --- /dev/null +++ b/backend/Mod.h @@ -0,0 +1,69 @@ +// +// Copyright 2012 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 <QFileInfo> + +class Mod +{ +public: + enum ModType + { + MOD_UNKNOWN, //!< Indicates an unspecified mod type. + MOD_ZIPFILE, //!< The mod is a zip file containing the mod's class files. + MOD_SINGLEFILE, //!< The mod is a single file (not a zip file). + MOD_FOLDER, //!< The mod is in a folder on the filesystem. + }; + + Mod(const QFileInfo &file); + + QFileInfo filename() const { return m_file; } + QString id() const { return m_id; } + ModType type() const { return m_type; } + QString mcversion() const; + bool valid() {return m_type != MOD_UNKNOWN;} + + QString version() const; + + // delete all the files of this mod + bool destroy(); + // replace this mod with a copy of the other + bool replace(Mod & with); + // change the mod's filesystem path (used by mod lists for *MAGIC* purposes) + void repath(const QFileInfo &file); + + + bool operator ==(const Mod &other) const + { + return filename() == other.filename(); + } + +protected: + + //FIXME: what do do with those? HMM... + /* + void ReadModInfoData(QString info); + void ReadForgeInfoData(QString infoFileData); + */ + + QFileInfo m_file; + QString m_id; + QString m_name; + QString m_version; + QString m_mcversion; + + ModType m_type; +}; |