add 'script' entry point

This commit is contained in:
MihailRis
2024-12-21 02:34:54 +03:00
parent 1aca4957a4
commit dc93cac1b9
3 changed files with 14 additions and 1 deletions
+3
View File
@@ -83,6 +83,9 @@ Engine::Engine(CoreParameters coreParameters)
paths.setResourcesFolder(params.resFolder); paths.setResourcesFolder(params.resFolder);
paths.setUserFilesFolder(params.userFolder); paths.setUserFilesFolder(params.userFolder);
paths.prepare(); paths.prepare();
if (!params.scriptFile.empty()) {
paths.setScriptFolder(params.scriptFile.parent_path());
}
loadSettings(); loadSettings();
auto resdir = paths.getResourcesFolder(); auto resdir = paths.getResourcesFolder();
+7 -1
View File
@@ -169,6 +169,10 @@ void EnginePaths::setResourcesFolder(std::filesystem::path folder) {
this->resourcesFolder = std::move(folder); this->resourcesFolder = std::move(folder);
} }
void EnginePaths::setScriptFolder(std::filesystem::path folder) {
this->scriptFolder = std::move(folder);
}
void EnginePaths::setCurrentWorldFolder(std::filesystem::path folder) { void EnginePaths::setCurrentWorldFolder(std::filesystem::path folder) {
this->currentWorldFolder = std::move(folder); this->currentWorldFolder = std::move(folder);
} }
@@ -211,7 +215,9 @@ std::filesystem::path EnginePaths::resolve(
if (prefix == "export") { if (prefix == "export") {
return userFilesFolder / EXPORT_FOLDER / fs::u8path(filename); return userFilesFolder / EXPORT_FOLDER / fs::u8path(filename);
} }
if (prefix == "script" && scriptFolder) {
return scriptFolder.value() / fs::u8path(filename);
}
if (contentPacks) { if (contentPacks) {
for (auto& pack : *contentPacks) { for (auto& pack : *contentPacks) {
if (pack.id == prefix) { if (pack.id == prefix) {
+4
View File
@@ -2,6 +2,7 @@
#include <filesystem> #include <filesystem>
#include <stdexcept> #include <stdexcept>
#include <optional>
#include <string> #include <string>
#include <vector> #include <vector>
#include <tuple> #include <tuple>
@@ -26,6 +27,8 @@ public:
void setResourcesFolder(std::filesystem::path folder); void setResourcesFolder(std::filesystem::path folder);
std::filesystem::path getResourcesFolder() const; std::filesystem::path getResourcesFolder() const;
void setScriptFolder(std::filesystem::path folder);
std::filesystem::path getWorldFolderByName(const std::string& name); std::filesystem::path getWorldFolderByName(const std::string& name);
std::filesystem::path getWorldsFolder() const; std::filesystem::path getWorldsFolder() const;
std::filesystem::path getConfigFolder() const; std::filesystem::path getConfigFolder() const;
@@ -51,6 +54,7 @@ private:
std::filesystem::path userFilesFolder {"."}; std::filesystem::path userFilesFolder {"."};
std::filesystem::path resourcesFolder {"res"}; std::filesystem::path resourcesFolder {"res"};
std::filesystem::path currentWorldFolder; std::filesystem::path currentWorldFolder;
std::optional<std::filesystem::path> scriptFolder;
std::vector<ContentPack>* contentPacks = nullptr; std::vector<ContentPack>* contentPacks = nullptr;
}; };