cleanup Engine.cpp a bit

This commit is contained in:
MihailRis
2025-11-09 19:37:40 +03:00
parent 4bafad708e
commit 01bf474a2b
5 changed files with 47 additions and 34 deletions
+7 -34
View File
@@ -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();
}
}
+10
View File
@@ -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();
+2
View File
@@ -19,6 +19,8 @@ public:
void nextFrame();
void saveScreenshot();
void toggleFullscreen();
private:
Engine& engine;
};