summaryrefslogtreecommitdiffstats
path: root/backend/InstanceFactory.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-08-17 13:40:51 +0200
committerPetr Mrázek <peterix@gmail.com>2013-08-17 13:40:51 +0200
commit253067c782955380bbf66ac0475dc954375b1ff4 (patch)
treeca97e231fd3a764256d95b5fc8d08fc25ff72161 /backend/InstanceFactory.cpp
parent77e80665422c4e97e2286418ab55e20c4030023b (diff)
downloadMultiMC-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 'backend/InstanceFactory.cpp')
-rw-r--r--backend/InstanceFactory.cpp113
1 files changed, 0 insertions, 113 deletions
diff --git a/backend/InstanceFactory.cpp b/backend/InstanceFactory.cpp
deleted file mode 100644
index f3511157..00000000
--- a/backend/InstanceFactory.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/* 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 "InstanceFactory.h"
-
-#include <QDir>
-#include <QFileInfo>
-
-#include "BaseInstance.h"
-#include "LegacyInstance.h"
-#include "OneSixInstance.h"
-#include "NostalgiaInstance.h"
-#include "InstanceVersion.h"
-#include "MinecraftVersion.h"
-
-#include "inifile.h"
-#include <inisettingsobject.h>
-#include <setting.h>
-
-#include "pathutils.h"
-
-InstanceFactory InstanceFactory::loader;
-
-InstanceFactory::InstanceFactory() :
- QObject(NULL)
-{
-
-}
-
-InstanceFactory::InstLoadError InstanceFactory::loadInstance(BaseInstance *&inst, const QString &instDir)
-{
- auto m_settings = new INISettingsObject(PathCombine(instDir, "instance.cfg"));
-
- m_settings->registerSetting(new Setting("InstanceType", "Legacy"));
-
- QString inst_type = m_settings->get("InstanceType").toString();
-
- //FIXME: replace with a map lookup, where instance classes register their types
- if(inst_type == "Legacy")
- {
- inst = new LegacyInstance(instDir, m_settings, this);
- }
- else if(inst_type == "OneSix")
- {
- inst = new OneSixInstance(instDir, m_settings, this);
- }
- else if(inst_type == "Nostalgia")
- {
- inst = new NostalgiaInstance(instDir, m_settings, this);
- }
- else
- {
- return InstanceFactory::UnknownLoadError;
- }
- return NoLoadError;
-}
-
-
-InstanceFactory::InstCreateError InstanceFactory::createInstance( BaseInstance*& inst, InstVersionPtr version, const QString& instDir )
-{
- QDir rootDir(instDir);
-
- qDebug(instDir.toUtf8());
- if (!rootDir.exists() && !rootDir.mkpath("."))
- {
- return InstanceFactory::CantCreateDir;
- }
- auto mcVer = version.dynamicCast<MinecraftVersion>();
- if(!mcVer)
- return InstanceFactory::NoSuchVersion;
-
- auto m_settings = new INISettingsObject(PathCombine(instDir, "instance.cfg"));
- m_settings->registerSetting(new Setting("InstanceType", "Legacy"));
-
- switch(mcVer->type)
- {
- case MinecraftVersion::Legacy:
- m_settings->set("InstanceType", "Legacy");
- inst = new LegacyInstance(instDir, m_settings, this);
- inst->setIntendedVersionId(version->descriptor);
- break;
- case MinecraftVersion::OneSix:
- m_settings->set("InstanceType", "OneSix");
- inst = new OneSixInstance(instDir, m_settings, this);
- inst->setIntendedVersionId(version->descriptor);
- break;
- case MinecraftVersion::Nostalgia:
- m_settings->set("InstanceType", "Nostalgia");
- inst = new NostalgiaInstance(instDir, m_settings, this);
- inst->setIntendedVersionId(version->descriptor);
- break;
- default:
- {
- delete m_settings;
- return InstanceFactory::NoSuchVersion;
- }
- }
-
- //FIXME: really, how do you even know?
- return InstanceFactory::NoCreateError;
-}