From 10598e2377f195eb54a41df0aa59bd53ef4d1fcc Mon Sep 17 00:00:00 2001 From: Rob Kelly Date: Sun, 29 Jun 2025 16:49:34 -0600 Subject: [PATCH] Mp3 player updates track list on equip --- src/equipment/mp3_player/mp3_player.gd | 8 ++++++++ src/equipment/tool.gd | 5 +++++ src/player/tool_mount.gd | 1 + src/ui/menus/debug_menu/debug_menu.gd | 1 + 4 files changed, 15 insertions(+) diff --git a/src/equipment/mp3_player/mp3_player.gd b/src/equipment/mp3_player/mp3_player.gd index 07b6c7a..b95e1f9 100644 --- a/src/equipment/mp3_player/mp3_player.gd +++ b/src/equipment/mp3_player/mp3_player.gd @@ -27,6 +27,10 @@ func fire() -> void: mp3_controller.select() +func on_equip() -> void: + _rebuild_track_list() + + func switch_mode() -> void: rumbler.intensity = SMALL_RUMBLE mp3_controller.cancel() @@ -38,6 +42,10 @@ func _physics_process(delta: float) -> void: func _on_mp3_collected(_track: MP3Track) -> void: + _rebuild_track_list() + + +func _rebuild_track_list() -> void: # TODO we may want to dynamically build the player tracklist # rather than rebuilding the whole thing each time a track is collected var mp3_list: Array[String] = [] diff --git a/src/equipment/tool.gd b/src/equipment/tool.gd index 658a860..5335781 100644 --- a/src/equipment/tool.gd +++ b/src/equipment/tool.gd @@ -34,6 +34,11 @@ func idle() -> void: _idle() +## Called when this tool is equipped. +func on_equip() -> void: + pass + + ## Is this tool available to the player? func unlocked() -> bool: return true diff --git a/src/player/tool_mount.gd b/src/player/tool_mount.gd index 9a4ca5a..06c74f0 100644 --- a/src/player/tool_mount.gd +++ b/src/player/tool_mount.gd @@ -28,6 +28,7 @@ func set_active(tool: Tool, force: bool = false) -> void: # TODO unequip animation? _active = tool _active.visible = true + _active.on_equip() # TODO equip animation? diff --git a/src/ui/menus/debug_menu/debug_menu.gd b/src/ui/menus/debug_menu/debug_menu.gd index 3547fca..e1fab61 100644 --- a/src/ui/menus/debug_menu/debug_menu.gd +++ b/src/ui/menus/debug_menu/debug_menu.gd @@ -25,6 +25,7 @@ func _ready() -> void: mp3_player.set_pressed_no_signal(World.instance.manager.mp3_player_unlocked) toothbrush.set_pressed_no_signal(World.instance.manager.toothbrush_unlocked) stickers.set_pressed_no_signal(World.instance.manager.stickers_unlocked) + _build_track_list() func _build_track_list() -> void: