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