From 8b5717a6552bbd0681d59c12c39d7e7a27f51b5c Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Sat, 25 Apr 2026 16:25:47 +0800 Subject: [PATCH] refactor: extract constants into separate constants.hpp file --- include/Cubed/app.hpp | 2 ++ include/Cubed/config.hpp | 15 --------------- include/Cubed/constants.hpp | 22 ++++++++++++++++++++++ include/Cubed/dev_panel.hpp | 2 ++ include/Cubed/gameplay/block.hpp | 1 + include/Cubed/renderer.hpp | 3 ++- include/Cubed/tools/font.hpp | 1 - src/app.cpp | 12 ++++++++++-- src/input.cpp | 8 -------- src/texture_manager.cpp | 4 ++-- src/tools/font.cpp | 4 ++-- 11 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 include/Cubed/constants.hpp diff --git a/include/Cubed/app.hpp b/include/Cubed/app.hpp index 045b18c..45f702f 100644 --- a/include/Cubed/app.hpp +++ b/include/Cubed/app.hpp @@ -20,7 +20,9 @@ public: static void window_reshape_callback(GLFWwindow* window, int new_width, int new_height); static void mouse_scroll_callback(GLFWwindow* window, double xoffset, double yoffset); static void cursor_enter_callback(GLFWwindow* window, int entered); + static void char_callback(GLFWwindow* window, unsigned int ch); static int start_cubed_application(int argc, char** argv); + static unsigned int seed(); static float delte_time(); static float get_fps(); diff --git a/include/Cubed/config.hpp b/include/Cubed/config.hpp index a52a417..3f1b5fc 100644 --- a/include/Cubed/config.hpp +++ b/include/Cubed/config.hpp @@ -1,25 +1,10 @@ #pragma once -#include #include #include namespace Cubed { -constexpr int WORLD_SIZE_Y = 256; -constexpr int MAX_BLOCK_NUM = 7; -constexpr int MAX_UI_NUM = 1; - -constexpr int CHUCK_SIZE = 16; -constexpr int PRE_LOAD_DISTANCE = 24; -constexpr int MAX_DISTANCE = 128; -constexpr int MAX_BLOCK_STATUS = 1; -constexpr int MAX_CHARACTER = 128; -constexpr float NORMAL_FOV = 70.0f; - -constexpr int MAX_BIOME_SUM = 4; -using HeightMapArray = std::array, CHUCK_SIZE>; - template concept TomlValueType = diff --git a/include/Cubed/constants.hpp b/include/Cubed/constants.hpp new file mode 100644 index 0000000..cc3fc14 --- /dev/null +++ b/include/Cubed/constants.hpp @@ -0,0 +1,22 @@ +#pragma once +#include +namespace Cubed { + +constexpr int WORLD_SIZE_Y = 256; +constexpr int CHUCK_SIZE = 16; + +constexpr int MAX_BLOCK_NUM = 7; +constexpr int MAX_UI_NUM = 1; +constexpr int MAX_BLOCK_STATUS = 1; +constexpr int MAX_BIOME_SUM = 4; +constexpr int MAX_CHARACTER = 128; + +constexpr int PRE_LOAD_DISTANCE = 24; + +constexpr int MAX_DISTANCE = 128; + +constexpr float DEFAULT_FOV = 70.0f; + +using HeightMapArray = std::array, CHUCK_SIZE>; + +} \ No newline at end of file diff --git a/include/Cubed/dev_panel.hpp b/include/Cubed/dev_panel.hpp index 930a003..2ec7ca1 100644 --- a/include/Cubed/dev_panel.hpp +++ b/include/Cubed/dev_panel.hpp @@ -29,6 +29,8 @@ private: bool m_need_save_config = false; int m_theme = 0; void show_settings_tab_item(); + void show_world_tab_item(); + void show_player_tab_item(); }; diff --git a/include/Cubed/gameplay/block.hpp b/include/Cubed/gameplay/block.hpp index 36436ac..abbc353 100644 --- a/include/Cubed/gameplay/block.hpp +++ b/include/Cubed/gameplay/block.hpp @@ -6,6 +6,7 @@ #include #include +#include #include namespace Cubed { diff --git a/include/Cubed/renderer.hpp b/include/Cubed/renderer.hpp index 9f6ec4b..cd16044 100644 --- a/include/Cubed/renderer.hpp +++ b/include/Cubed/renderer.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include #include @@ -34,7 +35,7 @@ private: World& m_world; float m_aspect = 0.0f; - float m_fov = NORMAL_FOV; + float m_fov = DEFAULT_FOV; glm::mat4 m_p_mat, m_v_mat, m_m_mat, m_mv_mat, m_mvp_mat; GLuint m_mv_loc; diff --git a/include/Cubed/tools/font.hpp b/include/Cubed/tools/font.hpp index 6b4b1a3..c968ab7 100644 --- a/include/Cubed/tools/font.hpp +++ b/include/Cubed/tools/font.hpp @@ -8,7 +8,6 @@ #include #include -#include #include namespace Cubed { diff --git a/src/app.cpp b/src/app.cpp index 299a908..b43fa6a 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -51,8 +51,7 @@ void App::init() { glfwSetKeyCallback(m_window.get_glfw_window(), key_callback); glfwSetScrollCallback(m_window.get_glfw_window(), mouse_scroll_callback); glfwSetCursorEnterCallback(m_window.get_glfw_window(), cursor_enter_callback); - - + glfwSetCharCallback(m_window.get_glfw_window(), char_callback); PerlinNoise::init(); m_renderer.init(); @@ -192,6 +191,15 @@ void App::cursor_enter_callback(GLFWwindow* window, int entered) { } } +void App::char_callback(GLFWwindow* window, unsigned int c) { + ImGuiIO& io = ImGui::GetIO(); + App* app = static_cast(glfwGetWindowUserPointer(window)); + ASSERT_MSG(app, "nullptr"); + if (io.WantCaptureKeyboard && app->m_window.is_mouse_enable()) { + ImGui_ImplGlfw_CharCallback(window, c); + } +} + void App::render() { if (glfwGetWindowAttrib(m_window.get_glfw_window(), GLFW_ICONIFIED) != 0) diff --git a/src/input.cpp b/src/input.cpp index 23e6017..1836a9e 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -7,17 +7,9 @@ static InputState input_state; namespace Input { - - - InputState& get_input_state() { return input_state; } - - - - - } diff --git a/src/texture_manager.cpp b/src/texture_manager.cpp index d52af2d..16f7cfb 100644 --- a/src/texture_manager.cpp +++ b/src/texture_manager.cpp @@ -1,6 +1,6 @@ -#include -#include #include +#include +#include #include #include diff --git a/src/tools/font.cpp b/src/tools/font.cpp index 305bfd8..7166fe2 100644 --- a/src/tools/font.cpp +++ b/src/tools/font.cpp @@ -1,6 +1,6 @@ - -#include #include +#include +#include #include #include