Limo
A simple mod manager
Loading...
Searching...
No Matches
deployerfactory.h
1#pragma once
2
3#include "deployer.h"
4
5
6class DeployerFactory
7{
8public:
9 DeployerFactory() = delete;
10
12 inline static const std::string SIMPLEDEPLOYER{ "Simple Deployer" };
17 inline static const std::string CASEMATCHINGDEPLOYER{ "Case Matching Deployer" };
19 inline static const std::string LOOTDEPLOYER{ "Loot Deployer" };
21 inline static const std::string REVERSEDEPLOYER{ "Reverse Deployer" };
23 inline static const std::string OPENMWPLUGINDEPLOYER{ "OpenMW Plugin Deployer" };
25 inline static const std::string OPENMWARCHIVEDEPLOYER{ "OpenMW Archive Deployer" };
27 inline static const std::string BG3DEPLOYER{ "Baldurs Gate 3 Deployer" };
40
41 inline static const std::map<std::string, std::string> DEPLOYER_DESCRIPTIONS{
43 "Links/ copies all files from enabled mods in its loadorder into "
44 "target directory. Backs up and restores existing files when needed." },
46 "When the target directory contains a file with the same name "
47 "but different case as a mods file name, renames the mods name to "
48 "match the target file. Then deploys as normal." },
50 "Uses LOOT to manage plugins for games like Skyrim. Source path "
51 "should point to the directory which plugins are installed into."
52 "Target path should point to the directory containing plugins.txt "
53 "and loadorder.txt" },
55 "Moves all files not managed by another deployer out of the target directory and "
56 "links them back in on deployment. Can be used to either track files created by"
57 "other mods or to manage save files for different profiles." },
59 "Uses LOOT to manage plugins for OpenMW. Source path "
60 "should point to the directory which plugins are installed into."
61 "Target path should point to the directory containing openmw.cfg" },
63 "Manages archive (i.e. .bsa) files for OpenMW. Source path should point to the "
64 "Data Files directory. Target path should point to the directory containing openmw.cfg." },
66 "Manages plugins contained in .pak files for Baldurs Gate 3. "
67 "Source path should point to the Mods directory. "
68 "Target path should point to the directory containing modsettings.lsx." }
69 };
70
72 inline static const std::map<std::string, bool> AUTONOMOUS_DEPLOYERS{ { SIMPLEDEPLOYER, false },
74 false },
75 { LOOTDEPLOYER, true },
76 { REVERSEDEPLOYER, true },
77 { OPENMWPLUGINDEPLOYER, true },
78 { OPENMWARCHIVEDEPLOYER, true },
79 { BG3DEPLOYER, true } };
80
93 static std::unique_ptr<Deployer> makeDeployer(
94 const std::string& type,
95 const std::filesystem::path& source_path,
96 const std::filesystem::path& dest_path,
97 const std::string& name,
99 bool separate_profile_dirs = false,
100 bool update_ignore_list = false);
101};
static const std::string CASEMATCHINGDEPLOYER
Uses case insensitive string matching when comparing mod file names with target file names.
Definition deployerfactory.h:17
static const std::string BG3DEPLOYER
Manages plugin files for Baldurs Gate 3.
Definition deployerfactory.h:27
static const std::string OPENMWARCHIVEDEPLOYER
Manages plugin files for OpenMW.
Definition deployerfactory.h:25
static const std::vector< std::string > DEPLOYER_TYPES
Returns a vector of available deployer types.
Definition deployerfactory.h:33
static const std::string LOOTDEPLOYER
Manages Bethesda plugin files using LOOT.
Definition deployerfactory.h:19
static const std::string OPENMWPLUGINDEPLOYER
Manages archive files for OpenMW.
Definition deployerfactory.h:23
static const std::map< std::string, std::string > DEPLOYER_DESCRIPTIONS
Maps deployer types to a description of what they do.
Definition deployerfactory.h:41
static const std::map< std::string, bool > AUTONOMOUS_DEPLOYERS
Maps deployer types to a bool indicating if the type refers to an autonomous deployer.
Definition deployerfactory.h:72
static const std::string REVERSEDEPLOYER
Moves all files not from a mod out of the target directory and links them back in.
Definition deployerfactory.h:21
static const std::string SIMPLEDEPLOYER
Performs no additional actions.
Definition deployerfactory.h:12
static std::unique_ptr< Deployer > makeDeployer(const std::string &type, const std::filesystem::path &source_path, const std::filesystem::path &dest_path, const std::string &name, Deployer::DeployMode deploy_mode=Deployer::hard_link, bool separate_profile_dirs=false, bool update_ignore_list=false)
Constructs a unique pointer to a new deployer of given type.
Definition deployerfactory.cpp:10
DeployMode
Describes how files should be deployed to the target directory.
Definition deployer.h:27
@ hard_link
Create hard links for files.
Definition deployer.h:29
Header for the Deployer class.