mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-08-08 17:57:02 +08:00
feat(settings): add player voice volume and voice input type options
- Add player voice volume slider and voice input type combo in settings UI. - Add localization strings for player voice and voice input types. - Add config overloads for const char* default values. - Implement voice input types (PTT, always, off) in world scene. - Refactor WorldScene member order and add load_config method. - Update audio engine to use player voice volume. - Downgrade some logging to debug.
This commit is contained in:
@@ -71,6 +71,7 @@ private:
|
||||
bool m_underwater = false;
|
||||
float m_music_volume = 1.0f;
|
||||
float m_sfx_volume = 1.0f;
|
||||
float m_player_voice_volume = 1.0f;
|
||||
|
||||
std::unique_ptr<AudioStreamSource> m_voice_source;
|
||||
std::unique_ptr<AudioFilter> m_low_pass_filter;
|
||||
|
||||
@@ -57,6 +57,14 @@ public:
|
||||
save_to_file();
|
||||
}
|
||||
|
||||
std::string get(std::string_view key, const char* default_value) {
|
||||
return get(key, std::string(default_value));
|
||||
}
|
||||
|
||||
void set(std::string_view key, const char* val) {
|
||||
set(key, std::string(val));
|
||||
}
|
||||
|
||||
private:
|
||||
toml::table m_tbl;
|
||||
bool m_init = false;
|
||||
|
||||
@@ -8,6 +8,7 @@ struct SliderVariable {
|
||||
float mouse_sensitivity = 0.15f;
|
||||
float sfx = 1.0f;
|
||||
float music = 0.5f;
|
||||
float player_voice = 1.0f;
|
||||
int rendering_distance = 24;
|
||||
};
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "Cubed/ui/pasue_menu_ui_manager.hpp"
|
||||
#include "Cubed/ui/world_ui_manager.hpp"
|
||||
namespace Cubed {
|
||||
enum class VoiceInputType { OFF, PTT, ALWAYS };
|
||||
class SceneManager;
|
||||
class WorldScene : public Scene {
|
||||
public:
|
||||
@@ -39,12 +40,6 @@ public:
|
||||
void handle_chat_message(ChatMessage& message);
|
||||
|
||||
private:
|
||||
bool handle_mouse_move_event(const MouseMoveEvent& e) override;
|
||||
bool handle_mouse_button_event(const MouseButtonEvent& e) override;
|
||||
bool handle_window_resize_event(const WindowResizeEvent& e) override;
|
||||
bool handle_mouse_wheel_event(const MouseWheelEvent& e) override;
|
||||
bool handle_key_event(const KeyEvent& e) override;
|
||||
bool handle_text_input_event(const TextInputEvent&) override;
|
||||
SceneManager& m_scene_manager;
|
||||
DevPanel m_dev_panel;
|
||||
Camera m_camera;
|
||||
@@ -59,5 +54,13 @@ private:
|
||||
WorldUIManager m_hud_ui;
|
||||
ErrorUI m_error_ui;
|
||||
const Argument& m_argument;
|
||||
VoiceInputType m_input_type;
|
||||
bool handle_mouse_move_event(const MouseMoveEvent& e) override;
|
||||
bool handle_mouse_button_event(const MouseButtonEvent& e) override;
|
||||
bool handle_window_resize_event(const WindowResizeEvent& e) override;
|
||||
bool handle_mouse_wheel_event(const MouseWheelEvent& e) override;
|
||||
bool handle_key_event(const KeyEvent& e) override;
|
||||
bool handle_text_input_event(const TextInputEvent&) override;
|
||||
void load_config();
|
||||
};
|
||||
} // namespace Cubed
|
||||
Reference in New Issue
Block a user