refactor Engine
This commit is contained in:
@@ -24,9 +24,13 @@ static void load_configs(Input& input, const io::path& root) {
|
||||
}
|
||||
}
|
||||
|
||||
ContentControl::ContentControl(std::function<void()> postContent)
|
||||
: postContent(std::move(postContent)) {
|
||||
basePacks = io::read_list("res:config/builtins.list");
|
||||
ContentControl::ContentControl(
|
||||
EnginePaths& paths, Input& input, std::function<void()> postContent
|
||||
)
|
||||
: paths(paths),
|
||||
input(input),
|
||||
postContent(std::move(postContent)),
|
||||
basePacks(io::read_list("res:config/builtins.list")) {
|
||||
}
|
||||
|
||||
ContentControl::~ContentControl() = default;
|
||||
@@ -35,13 +39,15 @@ Content* ContentControl::get() {
|
||||
return content.get();
|
||||
}
|
||||
|
||||
const Content* ContentControl::get() const {
|
||||
return content.get();
|
||||
}
|
||||
|
||||
std::vector<std::string>& ContentControl::getBasePacks() {
|
||||
return basePacks;
|
||||
}
|
||||
|
||||
void ContentControl::resetContent(
|
||||
EnginePaths& paths, Input& input, std::vector<ContentPack>& contentPacks
|
||||
) {
|
||||
void ContentControl::resetContent() {
|
||||
scripting::cleanup();
|
||||
std::vector<PathsRoot> resRoots;
|
||||
{
|
||||
@@ -67,24 +73,15 @@ void ContentControl::resetContent(
|
||||
postContent();
|
||||
}
|
||||
|
||||
void ContentControl::loadContent(
|
||||
EnginePaths& paths,
|
||||
Input& input,
|
||||
std::vector<ContentPack>& packs,
|
||||
const std::vector<std::string>& names
|
||||
) {
|
||||
void ContentControl::loadContent(const std::vector<std::string>& names) {
|
||||
PacksManager manager;
|
||||
manager.setSources(getDefaultSources());
|
||||
manager.scan();
|
||||
packs = manager.getAll(manager.assemble(names));
|
||||
loadContent(paths, input, packs);
|
||||
contentPacks = manager.getAll(manager.assemble(names));
|
||||
loadContent();
|
||||
}
|
||||
|
||||
void ContentControl::loadContent(
|
||||
EnginePaths& paths,
|
||||
Input& input,
|
||||
std::vector<ContentPack>& contentPacks
|
||||
) {
|
||||
void ContentControl::loadContent() {
|
||||
scripting::cleanup();
|
||||
|
||||
std::vector<std::string> names;
|
||||
@@ -138,3 +135,13 @@ std::vector<io::path> ContentControl::getDefaultSources() {
|
||||
"res:content",
|
||||
};
|
||||
}
|
||||
|
||||
std::vector<ContentPack>& ContentControl::getContentPacks() {
|
||||
return contentPacks;
|
||||
}
|
||||
|
||||
std::vector<ContentPack> ContentControl::getAllContentPacks() {
|
||||
auto packs = contentPacks;
|
||||
packs.insert(packs.begin(), ContentPack::createCore(paths));
|
||||
return packs;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
#include <string>
|
||||
#include <functional>
|
||||
|
||||
#include "ContentPack.hpp"
|
||||
|
||||
class Content;
|
||||
struct ContentPack;
|
||||
class EnginePaths;
|
||||
@@ -16,33 +18,31 @@ namespace io {
|
||||
|
||||
class ContentControl {
|
||||
public:
|
||||
ContentControl(std::function<void()> postContent);
|
||||
ContentControl(
|
||||
EnginePaths& paths, Input& input, std::function<void()> postContent
|
||||
);
|
||||
~ContentControl();
|
||||
|
||||
Content* get();
|
||||
|
||||
const Content* get() const;
|
||||
|
||||
std::vector<std::string>& getBasePacks();
|
||||
|
||||
void resetContent(
|
||||
EnginePaths& paths, Input& input, std::vector<ContentPack>& packs
|
||||
);
|
||||
void resetContent();
|
||||
|
||||
void loadContent(
|
||||
EnginePaths& paths,
|
||||
Input& input,
|
||||
std::vector<ContentPack>& packs,
|
||||
const std::vector<std::string>& names
|
||||
);
|
||||
void loadContent(const std::vector<std::string>& names);
|
||||
|
||||
void loadContent(
|
||||
EnginePaths& paths,
|
||||
Input& input,
|
||||
std::vector<ContentPack>& packs
|
||||
);
|
||||
void loadContent();
|
||||
|
||||
std::vector<io::path> getDefaultSources();
|
||||
std::vector<ContentPack>& getContentPacks();
|
||||
std::vector<ContentPack> getAllContentPacks();
|
||||
private:
|
||||
EnginePaths& paths;
|
||||
Input& input;
|
||||
std::unique_ptr<Content> content;
|
||||
std::vector<std::string> basePacks;
|
||||
std::function<void()> postContent;
|
||||
std::vector<std::string> basePacks;
|
||||
std::vector<ContentPack> contentPacks;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user