hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-08-17 22:38:29 +0200
committerhachem <im@hachem.wtf>2025-08-17 22:38:29 +0200
commitd65233be9433a01c54e959aea72e87ff2e385937 (patch)
tree70cea1cf2b1f62b09f94d5b0dcbc7c193cec2fe4 /src/core
parentdf479e3f8b803f8675fedb009f7ea78aa107d194 (diff)
feat: add world builder state
Diffstat (limited to 'src/core')
-rw-r--r--src/core/application.cpp19
-rw-r--r--src/core/settings_manager.cpp2
2 files changed, 17 insertions, 4 deletions
diff --git a/src/core/application.cpp b/src/core/application.cpp
index 9d2278e..85c7645 100644
--- a/src/core/application.cpp
+++ b/src/core/application.cpp
@@ -5,9 +5,10 @@
#include "states/simulation_state.h"
#include "states/config_state.h"
+#include "states/world_builder_state.h"
#include <GLFW/glfw3.h>
-
+#include <ImGuizmo.h>
namespace Donut
{
@@ -88,6 +89,12 @@ namespace Donut
event.handled = true;
return true;
}
+ else if (e.get_key_code() == GLFW_KEY_3)
+ {
+ m_state_manager->switch_to_state("WorldBuilder");
+ event.handled = true;
+ return true;
+ }
return true;
});
@@ -112,8 +119,9 @@ namespace Donut
RenderCommand::set_face_culling(false);
m_state_manager = create_scope<StateManager>();
- m_state_manager->register_state("Config", create_scope<ConfigState>());
- m_state_manager->register_state("Simulation", create_scope<SimulationState>());
+ m_state_manager->register_state("Config", create_scope<ConfigState>());
+ m_state_manager->register_state("Simulation", create_scope<SimulationState>());
+ m_state_manager->register_state("WorldBuilder", create_scope<WorldBuilderState>());
m_state_manager->switch_to_state("Config");
}
@@ -139,8 +147,11 @@ namespace Donut
void Application::on_render()
{
m_state_manager->render();
-
m_window->begin_im_gui_frame();
+
+ ImGuizmo::BeginFrame();
+ ImGuizmo::SetOrthographic(false);
+
setup_docking_layout();
m_state_manager->on_im_ui_render();
m_window->end_im_gui_frame();
diff --git a/src/core/settings_manager.cpp b/src/core/settings_manager.cpp
index eb68794..289285c 100644
--- a/src/core/settings_manager.cpp
+++ b/src/core/settings_manager.cpp
@@ -138,7 +138,9 @@ namespace Donut
DONUT_INFO("Settings saved to {}", file_path);
}
catch (const std::exception& e)
+ {
DONUT_ERROR("Failed to save settings: {}", e.what());
+ }
}
void SettingsManager::set_simulation_settings(const SimulationSettings& settings)