mirror of
https://github.com/ModOrganizer2/modorganizer-bsapacker.git
synced 2026-07-27 14:06:14 -07:00
Merged name and extension services and incremented version
This commit is contained in:
@@ -36,7 +36,6 @@ add_library(${PROJ_NAME} SHARED
|
||||
include/bsapacker/IArchiveBuilder.h
|
||||
include/bsapacker/IArchiveBuilderFactory.h
|
||||
include/bsapacker/IArchiveBuilderHelper.h
|
||||
include/bsapacker/IArchiveExtensionService.h
|
||||
include/bsapacker/IArchiveNameService.h
|
||||
include/bsapacker/IDummyPluginLogic.h
|
||||
include/bsapacker/IDummyPluginService.h
|
||||
@@ -63,7 +62,6 @@ add_library(${PROJ_NAME} SHARED
|
||||
src/ArchiveBuildDirector.cpp
|
||||
src/ArchiveBuilderFactory.cpp
|
||||
src/ArchiveBuilderHelper.cpp
|
||||
src/ArchiveExtensionService.cpp
|
||||
src/ArchiveNameService.cpp
|
||||
src/BsaPacker.cpp
|
||||
src/BSArchive.cpp
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
#ifndef IARCHIVEEXTENSIONSERVICE_H
|
||||
#define IARCHIVEEXTENSIONSERVICE_H
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IArchiveExtensionService
|
||||
{
|
||||
public:
|
||||
virtual ~IArchiveExtensionService() = default;
|
||||
virtual QString GetFileExtension() const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IARCHIVEEXTENSIONSERVICE_H
|
||||
@@ -11,6 +11,7 @@ namespace BsaPacker
|
||||
{
|
||||
public:
|
||||
virtual ~IArchiveNameService() = default;
|
||||
virtual QString GetFileExtension() const = 0;
|
||||
virtual QString GetArchiveFullPath(bsa_archive_type_e, const IModDto*) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#include "ArchiveExtensionService.h"
|
||||
|
||||
#include "NexusId.h"
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
ArchiveExtensionService::ArchiveExtensionService(const IModContext* modContext)
|
||||
: m_ModContext(modContext)
|
||||
{
|
||||
}
|
||||
|
||||
QString ArchiveExtensionService::GetFileExtension() const
|
||||
{
|
||||
switch (this->m_ModContext->GetNexusId()) {
|
||||
case NexusId::Morrowind:
|
||||
case NexusId::Oblivion:
|
||||
case NexusId::Fallout3:
|
||||
case NexusId::NewVegas:
|
||||
case NexusId::Skyrim:
|
||||
case NexusId::SkyrimSE:
|
||||
return QStringLiteral(".bsa");
|
||||
case NexusId::Fallout4:
|
||||
return QStringLiteral(".ba2");
|
||||
default:
|
||||
return QString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
#ifndef ARCHIVEEXTENSIONSERVICE_H
|
||||
#define ARCHIVEEXTENSIONSERVICE_H
|
||||
|
||||
#include <bsapacker/IArchiveExtensionService.h>
|
||||
#include <bsapacker/IModContext.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class ArchiveExtensionService : public IArchiveExtensionService
|
||||
{
|
||||
public:
|
||||
ArchiveExtensionService(const IModContext* modContext);
|
||||
~ArchiveExtensionService() override = default;
|
||||
QString GetFileExtension() const override;
|
||||
|
||||
private:
|
||||
const IModContext* m_ModContext = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // ARCHIVEEXTENSIONSERVICE_H
|
||||
@@ -1,18 +1,37 @@
|
||||
#include "ArchiveNameService.h"
|
||||
|
||||
#include "NexusId.h"
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
ArchiveNameService::ArchiveNameService(const IArchiveExtensionService* archiveExtensionService)
|
||||
: m_ArchiveExtensionService(archiveExtensionService)
|
||||
ArchiveNameService::ArchiveNameService(const IModContext* modContext)
|
||||
: m_ModContext(modContext)
|
||||
{
|
||||
}
|
||||
|
||||
QString ArchiveNameService::GetArchiveFullPath(bsa_archive_type_e type, const IModDto* modDto) const
|
||||
QString ArchiveNameService::GetFileExtension() const
|
||||
{
|
||||
return modDto->Directory() + '/' + modDto->ModName() + this->Infix(type) + this->m_ArchiveExtensionService->GetFileExtension();
|
||||
switch (this->m_ModContext->GetNexusId()) {
|
||||
case NexusId::Morrowind:
|
||||
case NexusId::Oblivion:
|
||||
case NexusId::Fallout3:
|
||||
case NexusId::NewVegas:
|
||||
case NexusId::Skyrim:
|
||||
case NexusId::SkyrimSE:
|
||||
return QStringLiteral(".bsa");
|
||||
case NexusId::Fallout4:
|
||||
return QStringLiteral(".ba2");
|
||||
default:
|
||||
return QString();
|
||||
}
|
||||
}
|
||||
|
||||
QString ArchiveNameService::Infix(bsa_archive_type_e type) const
|
||||
QString ArchiveNameService::GetArchiveFullPath(const bsa_archive_type_e type, const IModDto* modDto) const
|
||||
{
|
||||
return modDto->Directory() + '/' + modDto->ModForename() + this->Infix(type) + this->GetFileExtension();
|
||||
}
|
||||
|
||||
QString ArchiveNameService::Infix(const bsa_archive_type_e type) const
|
||||
{
|
||||
switch (type) {
|
||||
case baFO4:
|
||||
|
||||
@@ -2,18 +2,19 @@
|
||||
#define ARCHIVENAMESERVICE_H
|
||||
|
||||
#include <bsapacker/IArchiveNameService.h>
|
||||
#include <bsapacker/IArchiveExtensionService.h>
|
||||
#include <bsapacker/IModContext.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class ArchiveNameService : public IArchiveNameService
|
||||
{
|
||||
public:
|
||||
ArchiveNameService(const IArchiveExtensionService* archiveExtensionService);
|
||||
ArchiveNameService(const IModContext* modContext);
|
||||
~ArchiveNameService() override = default;
|
||||
QString GetArchiveFullPath(bsa_archive_type_e type, const IModDto* modDto) const override;
|
||||
QString GetFileExtension() const override;
|
||||
private:
|
||||
const IArchiveExtensionService* m_ArchiveExtensionService = nullptr;
|
||||
const IModContext* m_ModContext = nullptr;
|
||||
|
||||
QString Infix(bsa_archive_type_e type) const;
|
||||
};
|
||||
|
||||
+3
-9
@@ -4,7 +4,6 @@
|
||||
#include <bsapacker/ArchiveBuildDirector.h>
|
||||
#include <bsapacker/ArchiveBuilderHelper.h>
|
||||
#include <bsapacker/ArchiveBuilderFactory.h>
|
||||
#include "ArchiveExtensionService.h"
|
||||
#include <ArchiveNameService.h>
|
||||
#include "BsaPackerWorker.h"
|
||||
#include "DummyPluginLogic.h"
|
||||
@@ -48,14 +47,11 @@ namespace BsaPacker
|
||||
|
||||
MOBase::VersionInfo Bsa_Packer::version() const
|
||||
{
|
||||
return MOBase::VersionInfo(1, 0, 1, MOBase::VersionInfo::RELEASE_FINAL);
|
||||
return MOBase::VersionInfo(1, 0, 2, MOBase::VersionInfo::RELEASE_FINAL);
|
||||
}
|
||||
|
||||
bool Bsa_Packer::isActive() const
|
||||
{
|
||||
if (this->m_Organizer->managedGame()->gameShortName() == "Fallout4") {
|
||||
return false;
|
||||
}
|
||||
return this->m_SettingsService->GetPluginSetting(SettingsService::SETTING_ENABLED).toBool();
|
||||
}
|
||||
|
||||
@@ -90,11 +86,9 @@ namespace BsaPacker
|
||||
di::bind<IArchiveAutoService>.to<ArchiveAutoService>(),
|
||||
di::bind<IDummyPluginServiceFactory>.to<DummyPluginServiceFactory>(),
|
||||
di::bind<IFileWriterService>.to<FileWriterService>(),
|
||||
di::bind<IArchiveExtensionService>.to<ArchiveExtensionService>(),
|
||||
di::bind<IArchiveNameService>.to<ArchiveNameService>(),
|
||||
di::bind<IDummyPluginLogic>.to<DummyPluginLogic>(),
|
||||
di::bind<IHideLooseAssetService>.to<HideLooseAssetService>(),
|
||||
// merge ArchiveExtensionService and ArchiveNameService
|
||||
di::bind<IArchiveNameService>.to<ArchiveNameService>()
|
||||
di::bind<IHideLooseAssetService>.to<HideLooseAssetService>()
|
||||
);
|
||||
|
||||
BsaPackerWorker worker = di::create<BsaPackerWorker>(injector);
|
||||
|
||||
@@ -8,9 +8,9 @@ namespace BsaPacker
|
||||
{
|
||||
DummyPluginLogic::DummyPluginLogic(
|
||||
const ISettingsService* settingsService,
|
||||
const IArchiveExtensionService* archiveExtensionService)
|
||||
const IArchiveNameService* archiveNameService)
|
||||
: m_SettingsService(settingsService),
|
||||
m_ArchiveExtensionService(archiveExtensionService)
|
||||
m_ArchiveNameService(archiveNameService)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace BsaPacker
|
||||
bool DummyPluginLogic::canCreateDummy(const std::array<QString, SIZE>& fileList,
|
||||
const QString& fileNameNoExtension) const
|
||||
{
|
||||
const QFileInfo& archive(fileNameNoExtension + this->m_ArchiveExtensionService->GetFileExtension());
|
||||
const QFileInfo& archive(fileNameNoExtension + this->m_ArchiveNameService->GetFileExtension());
|
||||
if (!(archive.exists() && archive.isFile())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <bsapacker/IDummyPluginLogic.h>
|
||||
#include <bsapacker/ISettingsService.h>
|
||||
#include <bsapacker/IArchiveExtensionService.h>
|
||||
#include <bsapacker/IArchiveNameService.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
@@ -11,7 +11,7 @@ namespace BsaPacker
|
||||
{
|
||||
public:
|
||||
DummyPluginLogic(const ISettingsService* settingsService,
|
||||
const IArchiveExtensionService* archiveExtensionService);
|
||||
const IArchiveNameService* archiveNameService);
|
||||
~DummyPluginLogic() override = default;
|
||||
[[nodiscard]] bool canCreateDummyESP(const QString& fileNameNoExtension) const override;
|
||||
[[nodiscard]] bool canCreateDummyESL(const QString& fileNameNoExtension) const override;
|
||||
@@ -22,7 +22,7 @@ namespace BsaPacker
|
||||
const QString& fileNameNoExtension) const;
|
||||
|
||||
const ISettingsService* m_SettingsService = nullptr;
|
||||
const IArchiveExtensionService* m_ArchiveExtensionService = nullptr;
|
||||
const IArchiveNameService* m_ArchiveNameService = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user