cleanup Engine.cpp a bit
This commit is contained in:
parent
4bafad708e
commit
01bf474a2b
@ -1,8 +1,13 @@
|
|||||||
#include "Project.hpp"
|
#include "Project.hpp"
|
||||||
|
|
||||||
#include "data/dv_util.hpp"
|
#include "data/dv_util.hpp"
|
||||||
|
#include "debug/Logger.hpp"
|
||||||
|
#include "io/io.hpp"
|
||||||
|
#include "io/path.hpp"
|
||||||
#include "logic/scripting/scripting.hpp"
|
#include "logic/scripting/scripting.hpp"
|
||||||
|
|
||||||
|
static debug::Logger logger("project");
|
||||||
|
|
||||||
Project::~Project() = default;
|
Project::~Project() = default;
|
||||||
|
|
||||||
dv::value Project::serialize() const {
|
dv::value Project::serialize() const {
|
||||||
@ -18,3 +23,23 @@ void Project::deserialize(const dv::value& src) {
|
|||||||
src.at("title").get(title);
|
src.at("title").get(title);
|
||||||
dv::get(src, "base_packs", basePacks);
|
dv::get(src, "base_packs", basePacks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Project::loadProjectClientScript() {
|
||||||
|
io::path scriptFile = "project:project_client.lua";
|
||||||
|
if (io::exists(scriptFile)) {
|
||||||
|
logger.info() << "starting project client script";
|
||||||
|
clientScript = scripting::load_client_project_script(scriptFile);
|
||||||
|
} else {
|
||||||
|
logger.warning() << "project client script does not exists";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Project::loadProjectStartScript() {
|
||||||
|
io::path scriptFile = "project:start.lua";
|
||||||
|
if (io::exists(scriptFile)) {
|
||||||
|
logger.info() << "starting project start script";
|
||||||
|
setupCoroutine = scripting::start_app_script(scriptFile);
|
||||||
|
} else {
|
||||||
|
logger.warning() << "project start script does not exists";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -22,4 +22,7 @@ struct Project : Serializable {
|
|||||||
|
|
||||||
dv::value serialize() const override;
|
dv::value serialize() const override;
|
||||||
void deserialize(const dv::value& src) override;
|
void deserialize(const dv::value& src) override;
|
||||||
|
|
||||||
|
void loadProjectClientScript();
|
||||||
|
void loadProjectStartScript();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -46,28 +46,6 @@
|
|||||||
|
|
||||||
static debug::Logger logger("engine");
|
static debug::Logger logger("engine");
|
||||||
|
|
||||||
static std::unique_ptr<scripting::IClientProjectScript> load_project_client_script() {
|
|
||||||
io::path scriptFile = "project:project_client.lua";
|
|
||||||
if (io::exists(scriptFile)) {
|
|
||||||
logger.info() << "starting project client script";
|
|
||||||
return scripting::load_client_project_script(scriptFile);
|
|
||||||
} else {
|
|
||||||
logger.warning() << "project client script does not exists";
|
|
||||||
}
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
static std::unique_ptr<Process> load_project_start_script() {
|
|
||||||
io::path scriptFile = "project:start.lua";
|
|
||||||
if (io::exists(scriptFile)) {
|
|
||||||
logger.info() << "starting project start script";
|
|
||||||
return scripting::start_app_script(scriptFile);
|
|
||||||
} else {
|
|
||||||
logger.warning() << "project start script does not exists";
|
|
||||||
}
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
Engine::Engine() = default;
|
Engine::Engine() = default;
|
||||||
Engine::~Engine() = default;
|
Engine::~Engine() = default;
|
||||||
|
|
||||||
@ -146,7 +124,7 @@ void Engine::initialize(CoreParameters coreParameters) {
|
|||||||
|
|
||||||
logger.info() << "engine version: " << ENGINE_VERSION_STRING;
|
logger.info() << "engine version: " << ENGINE_VERSION_STRING;
|
||||||
if (params.headless) {
|
if (params.headless) {
|
||||||
logger.info() << "headless mode is enabled";
|
logger.info() << "engine runs in headless mode";
|
||||||
}
|
}
|
||||||
if (params.projectFolder.empty()) {
|
if (params.projectFolder.empty()) {
|
||||||
params.projectFolder = params.resFolder;
|
params.projectFolder = params.resFolder;
|
||||||
@ -154,6 +132,9 @@ void Engine::initialize(CoreParameters coreParameters) {
|
|||||||
paths.setResourcesFolder(params.resFolder);
|
paths.setResourcesFolder(params.resFolder);
|
||||||
paths.setUserFilesFolder(params.userFolder);
|
paths.setUserFilesFolder(params.userFolder);
|
||||||
paths.setProjectFolder(params.projectFolder);
|
paths.setProjectFolder(params.projectFolder);
|
||||||
|
if (!params.scriptFile.empty()) {
|
||||||
|
paths.setScriptFolder(params.scriptFile.parent_path());
|
||||||
|
}
|
||||||
paths.prepare();
|
paths.prepare();
|
||||||
loadProject();
|
loadProject();
|
||||||
|
|
||||||
@ -172,10 +153,6 @@ void Engine::initialize(CoreParameters coreParameters) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!params.scriptFile.empty()) {
|
|
||||||
paths.setScriptFolder(params.scriptFile.parent_path());
|
|
||||||
}
|
|
||||||
loadSettings();
|
loadSettings();
|
||||||
|
|
||||||
controller = std::make_unique<EngineController>(*this);
|
controller = std::make_unique<EngineController>(*this);
|
||||||
@ -201,9 +178,9 @@ void Engine::initialize(CoreParameters coreParameters) {
|
|||||||
langs::setup(lang, paths.resPaths.collectRoots());
|
langs::setup(lang, paths.resPaths.collectRoots());
|
||||||
}, true));
|
}, true));
|
||||||
|
|
||||||
project->setupCoroutine = load_project_start_script();
|
project->loadProjectStartScript();
|
||||||
if (!params.headless) {
|
if (!params.headless) {
|
||||||
project->clientScript = load_project_client_script();
|
project->loadProjectClientScript();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,11 +218,7 @@ void Engine::updateHotkeys() {
|
|||||||
gui->toggleDebug();
|
gui->toggleDebug();
|
||||||
}
|
}
|
||||||
if (input->jpressed(Keycode::F11)) {
|
if (input->jpressed(Keycode::F11)) {
|
||||||
if (settings.display.windowMode.get() != static_cast<int>(WindowMode::FULLSCREEN)) {
|
windowControl->toggleFullscreen();
|
||||||
settings.display.windowMode.set(static_cast<int>(WindowMode::FULLSCREEN));
|
|
||||||
} else {
|
|
||||||
settings.display.windowMode.set(static_cast<int>(WindowMode::WINDOWED));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -67,6 +67,16 @@ void WindowControl::saveScreenshot() {
|
|||||||
logger.info() << "saved screenshot as " << filename.string();
|
logger.info() << "saved screenshot as " << filename.string();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WindowControl::toggleFullscreen() {
|
||||||
|
auto& settings = engine.getSettings();
|
||||||
|
auto& windowMode = settings.display.windowMode;
|
||||||
|
if (windowMode.get() != static_cast<int>(WindowMode::FULLSCREEN)) {
|
||||||
|
windowMode.set(static_cast<int>(WindowMode::FULLSCREEN));
|
||||||
|
} else {
|
||||||
|
windowMode.set(static_cast<int>(WindowMode::WINDOWED));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void WindowControl::nextFrame() {
|
void WindowControl::nextFrame() {
|
||||||
const auto& settings = engine.getSettings();
|
const auto& settings = engine.getSettings();
|
||||||
auto& window = engine.getWindow();
|
auto& window = engine.getWindow();
|
||||||
|
|||||||
@ -19,6 +19,8 @@ public:
|
|||||||
void nextFrame();
|
void nextFrame();
|
||||||
|
|
||||||
void saveScreenshot();
|
void saveScreenshot();
|
||||||
|
|
||||||
|
void toggleFullscreen();
|
||||||
private:
|
private:
|
||||||
Engine& engine;
|
Engine& engine;
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user