1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
#include <BsaPacker.h>
#include <bsapacker/ArchiveAutoService.h>
#include <bsapacker/ArchiveBuildDirector.h>
#include <bsapacker/ArchiveBuilderHelper.h>
#include <bsapacker/ArchiveBuilderFactory.h>
#include <ArchiveNameService.h>
#include "BsaPackerWorker.h"
#include "DummyPluginLogic.h"
#include "DummyPluginServiceFactory.h"
#include "FileWriterService.h"
#include "HideLooseAssetService.h"
#include "ModContext.h"
#include "ModDto.h"
#include "OverrideFileService.h"
#include "PackerDialog.h"
#include "SettingsService.h"
#include <bsapacker/ModDtoFactory.h>
#include <QMessageBox>
#include <iplugingame.h>
namespace BsaPacker
{
bool Bsa_Packer::init(MOBase::IOrganizer* moInfo)
{
this->m_Organizer = moInfo;
this->m_ModContext = std::make_unique<ModContext>(this->m_Organizer);
this->m_SettingsService = std::make_unique<SettingsService>(this->m_Organizer);
return true;
}
QString Bsa_Packer::name() const
{
return QStringLiteral("BSA Packer");
}
QString Bsa_Packer::author() const
{
return QStringLiteral("MattyFez & MO2 Team");
}
QString Bsa_Packer::description() const
{
return tr("Transform loose files into a Bethesda Softworks Archive file (.bsa/.ba2).");
}
MOBase::VersionInfo Bsa_Packer::version() const
{
return MOBase::VersionInfo(1, 1, 0, MOBase::VersionInfo::RELEASE_FINAL);
}
QList<MOBase::PluginSetting> Bsa_Packer::settings() const
{
return SettingsService::PluginSettings;
}
QString Bsa_Packer::tooltip() const
{
return tr("Transform loose files into a Bethesda Softworks Archive file (.bsa/.ba2).");
}
QIcon Bsa_Packer::icon() const
{
return QIcon();
}
QString Bsa_Packer::displayName() const
{
return tr("BSA Packer");
}
void Bsa_Packer::display() const
{
ArchiveBuilderHelper archiveBuilderHelper(this->m_SettingsService.get());
ArchiveBuilderFactory archiveBuilderFactory(&archiveBuilderHelper);
ArchiveAutoService archiveAutoService;
FileWriterService fileWriterService;
ArchiveNameService archiveNameService(this->m_ModContext.get());
DummyPluginLogic dummyPluginLogic(this->m_SettingsService.get(), &archiveNameService);
DummyPluginServiceFactory dummyPluginServiceFactory(
this->m_ModContext.get(), &fileWriterService, &dummyPluginLogic);
HideLooseAssetService hideLooseAssetService(this->m_SettingsService.get());
PackerDialog packerDialog(this->m_ModContext.get());
ModDtoFactory modDtoFactory(this->m_ModContext.get(), &packerDialog);
OverrideFileService overrideFileService(&fileWriterService);
BsaPackerWorker worker(
this->m_SettingsService.get(),
&modDtoFactory,
&archiveBuilderFactory,
&archiveAutoService,
&dummyPluginServiceFactory,
&hideLooseAssetService,
&archiveNameService,
&overrideFileService);
worker.DoWork();
}
} // namespace BsaPacker
|