aboutsummaryrefslogtreecommitdiff
path: root/api/logic/BaseInstance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/BaseInstance.cpp')
-rw-r--r--api/logic/BaseInstance.cpp275
1 files changed, 0 insertions, 275 deletions
diff --git a/api/logic/BaseInstance.cpp b/api/logic/BaseInstance.cpp
deleted file mode 100644
index 46b45827..00000000
--- a/api/logic/BaseInstance.cpp
+++ /dev/null
@@ -1,275 +0,0 @@
-/* Copyright 2013-2021 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 "BaseInstance.h"
-
-#include <QFileInfo>
-#include <QDir>
-#include <QDebug>
-
-#include "settings/INISettingsObject.h"
-#include "settings/Setting.h"
-#include "settings/OverrideSetting.h"
-
-#include "FileSystem.h"
-#include "Commandline.h"
-
-BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir)
- : QObject()
-{
- m_settings = settings;
- m_rootDir = rootDir;
-
- m_settings->registerSetting("name", "Unnamed Instance");
- m_settings->registerSetting("iconKey", "default");
- m_settings->registerSetting("notes", "");
- m_settings->registerSetting("lastLaunchTime", 0);
- m_settings->registerSetting("totalTimePlayed", 0);
- m_settings->registerSetting("lastTimePlayed", 0);
-
- // Custom Commands
- auto commandSetting = m_settings->registerSetting({"OverrideCommands","OverrideLaunchCmd"}, false);
- m_settings->registerOverride(globalSettings->getSetting("PreLaunchCommand"), commandSetting);
- m_settings->registerOverride(globalSettings->getSetting("WrapperCommand"), commandSetting);
- m_settings->registerOverride(globalSettings->getSetting("PostExitCommand"), commandSetting);
-
- // Console
- auto consoleSetting = m_settings->registerSetting("OverrideConsole", false);
- m_settings->registerOverride(globalSettings->getSetting("ShowConsole"), consoleSetting);
- m_settings->registerOverride(globalSettings->getSetting("AutoCloseConsole"), consoleSetting);
- m_settings->registerOverride(globalSettings->getSetting("ShowConsoleOnError"), consoleSetting);
- m_settings->registerOverride(globalSettings->getSetting("LogPrePostOutput"), consoleSetting);
-
- m_settings->registerPassthrough(globalSettings->getSetting("ConsoleMaxLines"), nullptr);
- m_settings->registerPassthrough(globalSettings->getSetting("ConsoleOverflowStop"), nullptr);
-}
-
-QString BaseInstance::getPreLaunchCommand()
-{
- return settings()->get("PreLaunchCommand").toString();
-}
-
-QString BaseInstance::getWrapperCommand()
-{
- return settings()->get("WrapperCommand").toString();
-}
-
-QString BaseInstance::getPostExitCommand()
-{
- return settings()->get("PostExitCommand").toString();
-}
-
-int BaseInstance::getConsoleMaxLines() const
-{
- auto lineSetting = settings()->getSetting("ConsoleMaxLines");
- bool conversionOk = false;
- int maxLines = lineSetting->get().toInt(&conversionOk);
- if(!conversionOk)
- {
- maxLines = lineSetting->defValue().toInt();
- qWarning() << "ConsoleMaxLines has nonsensical value, defaulting to" << maxLines;
- }
- return maxLines;
-}
-
-bool BaseInstance::shouldStopOnConsoleOverflow() const
-{
- return settings()->get("ConsoleOverflowStop").toBool();
-}
-
-void BaseInstance::iconUpdated(QString key)
-{
- if(iconKey() == key)
- {
- emit propertiesChanged(this);
- }
-}
-
-void BaseInstance::invalidate()
-{
- changeStatus(Status::Gone);
- qDebug() << "Instance" << id() << "has been invalidated.";
-}
-
-void BaseInstance::changeStatus(BaseInstance::Status newStatus)
-{
- Status status = currentStatus();
- if(status != newStatus)
- {
- m_status = newStatus;
- emit statusChanged(status, newStatus);
- }
-}
-
-BaseInstance::Status BaseInstance::currentStatus() const
-{
- return m_status;
-}
-
-QString BaseInstance::id() const
-{
- return QFileInfo(instanceRoot()).fileName();
-}
-
-bool BaseInstance::isRunning() const
-{
- return m_isRunning;
-}
-
-void BaseInstance::setRunning(bool running)
-{
- if(running == m_isRunning)
- return;
-
- m_isRunning = running;
-
- if(!m_settings->get("RecordGameTime").toBool())
- {
- emit runningStatusChanged(running);
- return;
- }
-
- if(running)
- {
- m_timeStarted = QDateTime::currentDateTime();
- }
- else
- {
- QDateTime timeEnded = QDateTime::currentDateTime();
-
- qint64 current = settings()->get("totalTimePlayed").toLongLong();
- settings()->set("totalTimePlayed", current + m_timeStarted.secsTo(timeEnded));
- settings()->set("lastTimePlayed", m_timeStarted.secsTo(timeEnded));
-
- emit propertiesChanged(this);
- }
-
- emit runningStatusChanged(running);
-}
-
-int64_t BaseInstance::totalTimePlayed() const
-{
- qint64 current = settings()->get("totalTimePlayed").toLongLong();
- if(m_isRunning)
- {
- QDateTime timeNow = QDateTime::currentDateTime();
- return current + m_timeStarted.secsTo(timeNow);
- }
- return current;
-}
-
-int64_t BaseInstance::lastTimePlayed() const
-{
- if(m_isRunning)
- {
- QDateTime timeNow = QDateTime::currentDateTime();
- return m_timeStarted.secsTo(timeNow);
- }
- return settings()->get("lastTimePlayed").toLongLong();
-}
-
-void BaseInstance::resetTimePlayed()
-{
- settings()->reset("totalTimePlayed");
- settings()->reset("lastTimePlayed");
-}
-
-QString BaseInstance::instanceType() const
-{
- return m_settings->get("InstanceType").toString();
-}
-
-QString BaseInstance::instanceRoot() const
-{
- return m_rootDir;
-}
-
-SettingsObjectPtr BaseInstance::settings() const
-{
- return m_settings;
-}
-
-bool BaseInstance::canLaunch() const
-{
- return (!hasVersionBroken() && !isRunning());
-}
-
-bool BaseInstance::reloadSettings()
-{
- return m_settings->reload();
-}
-
-qint64 BaseInstance::lastLaunch() const
-{
- return m_settings->get("lastLaunchTime").value<qint64>();
-}
-
-void BaseInstance::setLastLaunch(qint64 val)
-{
- //FIXME: if no change, do not set. setting involves saving a file.
- m_settings->set("lastLaunchTime", val);
- emit propertiesChanged(this);
-}
-
-void BaseInstance::setNotes(QString val)
-{
- //FIXME: if no change, do not set. setting involves saving a file.
- m_settings->set("notes", val);
-}
-
-QString BaseInstance::notes() const
-{
- return m_settings->get("notes").toString();
-}
-
-void BaseInstance::setIconKey(QString val)
-{
- //FIXME: if no change, do not set. setting involves saving a file.
- m_settings->set("iconKey", val);
- emit propertiesChanged(this);
-}
-
-QString BaseInstance::iconKey() const
-{
- return m_settings->get("iconKey").toString();
-}
-
-void BaseInstance::setName(QString val)
-{
- //FIXME: if no change, do not set. setting involves saving a file.
- m_settings->set("name", val);
- emit propertiesChanged(this);
-}
-
-QString BaseInstance::name() const
-{
- return m_settings->get("name").toString();
-}
-
-QString BaseInstance::windowTitle() const
-{
- return "MultiMC: " + name().replace(QRegExp("[ \n\r\t]+"), " ");
-}
-
-// FIXME: why is this here? move it to MinecraftInstance!!!
-QStringList BaseInstance::extraArguments() const
-{
- return Commandline::splitArgs(settings()->get("JvmArgs").toString());
-}
-
-shared_qobject_ptr<LaunchTask> BaseInstance::getLaunchTask()
-{
- return m_launchProcess;
-}