fix(chat): support body and content fields in world and DM chat messages; feat(audio): add sound toggle switch and mute controls
checkpoint / checkpoint (push) Successful in 6m11s
checkpoint / checkpoint (push) Successful in 6m11s
This commit is contained in:
+37
-1
@@ -17,6 +17,7 @@ var world_title: String = "World"
|
||||
var _confirm_box: VBoxContainer
|
||||
var _main_menu_vbox: VBoxContainer
|
||||
var _fs_button: Button
|
||||
var _sound_button: Button
|
||||
|
||||
|
||||
func _init(p_can_edit: bool = false, p_world_title: String = "World") -> void:
|
||||
@@ -101,6 +102,21 @@ func _ready() -> void:
|
||||
_update_fs_label()
|
||||
_main_menu_vbox.add_child(_fs_button)
|
||||
|
||||
_sound_button = _make_menu_btn("🔊 Sound FX: ON (M)", _on_toggle_sound)
|
||||
_update_sound_label()
|
||||
_main_menu_vbox.add_child(_sound_button)
|
||||
|
||||
var audio_mgr = get_node_or_null("/root/AudioManager")
|
||||
if audio_mgr and audio_mgr.has_signal("sound_toggled"):
|
||||
var on_toggled = func(_enabled: bool):
|
||||
if is_instance_valid(_sound_button):
|
||||
_update_sound_label()
|
||||
audio_mgr.sound_toggled.connect(on_toggled)
|
||||
_sound_button.tree_exiting.connect(func():
|
||||
if is_instance_valid(audio_mgr) and audio_mgr.sound_toggled.is_connected(on_toggled):
|
||||
audio_mgr.sound_toggled.disconnect(on_toggled)
|
||||
)
|
||||
|
||||
var leave_btn := _make_menu_btn("🚪 Leave World", _on_prompt_leave, Color(1.0, 0.45, 0.45))
|
||||
_main_menu_vbox.add_child(leave_btn)
|
||||
|
||||
@@ -152,7 +168,9 @@ func _on_resume_pressed() -> void:
|
||||
|
||||
|
||||
func _on_toggle_fs() -> void:
|
||||
Session.toggle_fullscreen()
|
||||
var sess = Engine.get_main_loop().root.get_node_or_null("Session") if Engine.get_main_loop() else null
|
||||
if sess and sess.has_method("toggle_fullscreen"):
|
||||
sess.toggle_fullscreen()
|
||||
_update_fs_label()
|
||||
|
||||
|
||||
@@ -169,6 +187,24 @@ func _update_fs_label() -> void:
|
||||
_fs_button.text = "⛶ Fullscreen Mode (F11)"
|
||||
|
||||
|
||||
func _on_toggle_sound() -> void:
|
||||
var audio_mgr = get_node_or_null("/root/AudioManager")
|
||||
if audio_mgr and audio_mgr.has_method("toggle_sound"):
|
||||
audio_mgr.toggle_sound()
|
||||
_update_sound_label()
|
||||
|
||||
|
||||
func _update_sound_label() -> void:
|
||||
if _sound_button == null or not is_instance_valid(_sound_button):
|
||||
return
|
||||
var audio_mgr = get_node_or_null("/root/AudioManager")
|
||||
var enabled: bool = audio_mgr.is_sound_enabled() if audio_mgr and audio_mgr.has_method("is_sound_enabled") else true
|
||||
if enabled:
|
||||
_sound_button.text = "🔊 Sound FX: ON (M)"
|
||||
else:
|
||||
_sound_button.text = "🔇 Sound FX: OFF (M)"
|
||||
|
||||
|
||||
func _on_prompt_leave() -> void:
|
||||
_main_menu_vbox.visible = false
|
||||
_confirm_box.visible = true
|
||||
|
||||
Reference in New Issue
Block a user