add 'script' entry point
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user