diff options
author | Petr Mrázek <peterix@gmail.com> | 2013-08-17 13:40:51 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2013-08-17 13:40:51 +0200 |
commit | 253067c782955380bbf66ac0475dc954375b1ff4 (patch) | |
tree | ca97e231fd3a764256d95b5fc8d08fc25ff72161 /logic/Mod.h | |
parent | 77e80665422c4e97e2286418ab55e20c4030023b (diff) | |
download | MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar.gz MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar.lz MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar.xz MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.zip |
Move all the things (YES. Move them.)
Also, implemented some basic modlist logic, to be wired up.
Diffstat (limited to 'logic/Mod.h')
-rw-r--r-- | logic/Mod.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/logic/Mod.h b/logic/Mod.h new file mode 100644 index 00000000..f14818d1 --- /dev/null +++ b/logic/Mod.h @@ -0,0 +1,71 @@ +// +// 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 { return m_mcversion; }; + bool valid() {return m_type != MOD_UNKNOWN;} + QString name() const {return m_name; }; + + 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; +}; |