2017-11-11 00:38:31 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Component.h"
|
|
|
|
#include <map>
|
|
|
|
#include <QTimer>
|
|
|
|
#include <QList>
|
|
|
|
#include <QMap>
|
|
|
|
|
|
|
|
class MinecraftInstance;
|
|
|
|
using ComponentContainer = QList<ComponentPtr>;
|
|
|
|
using ComponentIndex = QMap<QString, ComponentPtr>;
|
|
|
|
|
2020-06-27 11:02:31 +01:00
|
|
|
struct PackProfileData
|
2017-11-11 00:38:31 +00:00
|
|
|
{
|
2018-07-15 13:51:05 +01:00
|
|
|
// the instance this belongs to
|
|
|
|
MinecraftInstance *m_instance;
|
2017-11-11 00:38:31 +00:00
|
|
|
|
2018-07-15 13:51:05 +01:00
|
|
|
// the launch profile (volatile, temporary thing created on demand)
|
|
|
|
std::shared_ptr<LaunchProfile> m_profile;
|
2017-11-11 00:38:31 +00:00
|
|
|
|
2018-07-15 13:51:05 +01:00
|
|
|
// persistent list of components and related machinery
|
|
|
|
ComponentContainer components;
|
|
|
|
ComponentIndex componentIndex;
|
|
|
|
bool dirty = false;
|
|
|
|
QTimer m_saveTimer;
|
2021-11-21 22:36:55 +00:00
|
|
|
Task::Ptr m_updateTask;
|
2018-07-15 13:51:05 +01:00
|
|
|
bool loaded = false;
|
2019-07-15 22:16:34 +01:00
|
|
|
bool interactionDisabled = true;
|
2017-11-11 00:38:31 +00:00
|
|
|
};
|
|
|
|
|