diff options
| author | hachem <im@hachem.wtf> | 2026-08-23 17:11:45 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-23 17:11:45 +0200 |
| commit | b72762fd3fa3735c12146e8c702f03000317db6f (patch) | |
| tree | 0f326d6a2cbc9fca46ae8870fd4c724a06840e96 /src/core | |
| parent | fb9968dfe89fcd52fbfd7bc72ce14af18237beaa (diff) | |
refactor: drop the engine, states and Metal code
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/state.h | 19 | ||||
| -rw-r--r-- | src/core/state_manager.cpp | 88 | ||||
| -rw-r--r-- | src/core/state_manager.h | 41 |
3 files changed, 0 insertions, 148 deletions
diff --git a/src/core/state.h b/src/core/state.h deleted file mode 100644 index 623f1c2..0000000 --- a/src/core/state.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include "event.h" - -namespace Donut -{ - class State - { - public: - virtual ~State() = default; - - virtual auto on_enter() -> void = 0; - virtual auto on_exit() -> void = 0; - virtual auto on_update(float delta_time) -> void = 0; - virtual auto on_render() -> void = 0; - virtual auto on_im_ui_render() -> void = 0; - virtual auto on_event(Event& event) -> void = 0; - }; -}; diff --git a/src/core/state_manager.cpp b/src/core/state_manager.cpp deleted file mode 100644 index 8018401..0000000 --- a/src/core/state_manager.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "state_manager.h" -#include "log.h" - -namespace Donut -{ - auto StateManager::shutdown() -> void - { - if (m_current_state) - m_current_state->on_exit(); - - destroy_states(); - DONUT_INFO("StateManager shutdown"); - } - - auto StateManager::destroy_states() -> void - { - m_states.clear(); - m_current_state = nullptr; - m_current_state_name = ""; - } - - auto StateManager::register_state(const std::string& state_name, Scope<State> state) -> void - { - if (m_states.find(state_name) != m_states.end()) - DONUT_WARN("State '{}' already exists, overwriting", state_name); - m_states[state_name] = std::move(state); - DONUT_INFO("Registered state: {}", state_name); - } - - auto StateManager::switch_to_state(const std::string& state_name) -> void - { - auto it = m_states.find(state_name); - if (it == m_states.end()) - { - DONUT_ERROR("Attempted to switch to unknown state: {}", state_name); - return; - } - - State* new_state = it->second.get(); - if (new_state == m_current_state) - return; - - if (m_current_state) - m_current_state->on_exit(); - - m_current_state = new_state; - m_current_state_name = state_name; - m_current_state->on_enter(); - DONUT_INFO("Switched to state: {}", state_name); - } - - auto StateManager::get_state(const std::string& state_name) -> State* - { - auto it = m_states.find(state_name); - if (it != m_states.end()) - return it->second.get(); - return nullptr; - } - - auto StateManager::has_state(const std::string& state_name) const -> bool - { - return m_states.find(state_name) != m_states.end(); - } - - auto StateManager::update(float delta_time) -> void - { - if (m_current_state) - m_current_state->on_update(delta_time); - } - - auto StateManager::render() -> void - { - if (m_current_state) - m_current_state->on_render(); - } - - auto StateManager::on_im_ui_render() -> void - { - if (m_current_state) - m_current_state->on_im_ui_render(); - } - - auto StateManager::on_event(Event& event) -> void - { - if (m_current_state) - m_current_state->on_event(event); - } -} diff --git a/src/core/state_manager.h b/src/core/state_manager.h deleted file mode 100644 index 446841e..0000000 --- a/src/core/state_manager.h +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once - -#include "memory.h" -#include "state.h" - -#include <string> -#include <unordered_map> - -namespace Donut -{ - class StateManager - { - public: - ~StateManager() = default; - auto shutdown() -> void; - - auto update(float delta_time) -> void; - auto render() -> void; - auto on_im_ui_render() -> void; - auto on_event(Event& event) -> void; - - auto register_state(const std::string& state_name, Scope<State> state) -> void; - auto switch_to_state(const std::string& state_name) -> void; - - auto get_current_state_name() const -> std::string { return m_current_state_name; } - auto get_current_state() const -> State* { return m_current_state; } - - auto get_state(const std::string& state_name) -> State*; - auto has_state(const std::string& state_name) const -> bool; - - private: - auto create_states() -> void; - auto destroy_states() -> void; - - private: - State* m_current_state = nullptr; - std::string m_current_state_name = ""; - - std::unordered_map<std::string, Scope<State>> m_states; - }; -} |
