refactor Engine

This commit is contained in:
MihailRis
2025-04-02 15:01:24 +03:00
parent 331734792d
commit e442402e43
17 changed files with 130 additions and 135 deletions
+26 -19
View File
@@ -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;
}
+16 -16
View File
@@ -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;
};