summaryrefslogtreecommitdiffstats
path: root/logic/Mod.h
diff options
context:
space:
mode:
Diffstat (limited to 'logic/Mod.h')
-rw-r--r--logic/Mod.h71
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;
+};