diff options
author | Andrew <forkk@forkk.net> | 2013-02-20 19:10:09 -0600 |
---|---|---|
committer | Andrew <forkk@forkk.net> | 2013-02-20 19:10:09 -0600 |
commit | dd2e836b4cf4cfa043f9ea2911f58f1d22d4e282 (patch) | |
tree | 07e99dd9c2858e2e46075a649751049c3195b437 /libinstance/src/instance.cpp | |
parent | f71479ec33562c9a0ebbdb335bef5e2824a12710 (diff) | |
download | MultiMC-dd2e836b4cf4cfa043f9ea2911f58f1d22d4e282.tar MultiMC-dd2e836b4cf4cfa043f9ea2911f58f1d22d4e282.tar.gz MultiMC-dd2e836b4cf4cfa043f9ea2911f58f1d22d4e282.tar.lz MultiMC-dd2e836b4cf4cfa043f9ea2911f58f1d22d4e282.tar.xz MultiMC-dd2e836b4cf4cfa043f9ea2911f58f1d22d4e282.zip |
Split MultiMC up into a few separate libraries.
Fixed plugin system.
Tons of other stuff...
Diffstat (limited to 'libinstance/src/instance.cpp')
-rw-r--r-- | libinstance/src/instance.cpp | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/libinstance/src/instance.cpp b/libinstance/src/instance.cpp new file mode 100644 index 00000000..c79c0213 --- /dev/null +++ b/libinstance/src/instance.cpp @@ -0,0 +1,110 @@ +/* Copyright 2013 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. + */ + +#include "include/instance.h" + +#include <QFileInfo> + +#include "pathutils.h" + +Instance::Instance(const QString &rootDir, QObject *parent) : + SettingsBase(parent) +{ + m_rootDir = rootDir; + config.loadFile(PathCombine(rootDir, "instance.cfg")); +} + +QString Instance::id() const +{ + return QFileInfo(rootDir()).baseName(); +} + +QString Instance::rootDir() const +{ + return m_rootDir; +} + +InstanceList *Instance::instList() const +{ + if (parent()->inherits("InstanceList")) + return (InstanceList *)parent(); + else + return NULL; +} + +QString Instance::minecraftDir() const +{ + QFileInfo mcDir(PathCombine(rootDir(), "minecraft")); + QFileInfo dotMCDir(PathCombine(rootDir(), ".minecraft")); + + if (dotMCDir.exists() && !mcDir.exists()) + { + return dotMCDir.path(); + } + else + { + return mcDir.path(); + } +} + +QString Instance::binDir() const +{ + return PathCombine(minecraftDir(), "bin"); +} + +QString Instance::savesDir() const +{ + return PathCombine(minecraftDir(), "saves"); +} + +QString Instance::mlModsDir() const +{ + return PathCombine(minecraftDir(), "mods"); +} + +QString Instance::coreModsDir() const +{ + return PathCombine(minecraftDir(), "coremods"); +} + +QString Instance::resourceDir() const +{ + return PathCombine(minecraftDir(), "resources"); +} + +QString Instance::screenshotsDir() const +{ + return PathCombine(minecraftDir(), "screenshots"); +} + +QString Instance::texturePacksDir() const +{ + return PathCombine(minecraftDir(), "texturepacks"); +} + +QString Instance::mcJar() const +{ + return PathCombine(binDir(), "minecraft.jar"); +} + +QVariant Instance::getField(const QString &name, QVariant defVal) const +{ + return config.get(name, defVal); +} + +void Instance::setField(const QString &name, QVariant val) +{ + config.set(name, val); +} |