#4 #5 Added a new character select window that now fetches images from the server
All checks were successful
Build / build (push) Successful in 1m31s
Publish / build (push) Successful in 2m39s

This commit is contained in:
2025-11-07 20:46:45 +01:00
parent 734a463db9
commit 166705f2ab
15 changed files with 327 additions and 61 deletions

View File

@@ -94,6 +94,9 @@ var player_container: VBoxContainer = $Players/VBoxContainer
@onready
var character_select: Control = $CharacterSelect
@onready
var new_character_select: Control = %NewCharacterSelect
@onready
var search_button: Button = $SearchButton
@@ -116,10 +119,10 @@ var coming_label: Label = $AboutPopupPanel/VBoxContainer/HBoxContainer/CommingLa
var winner_popup: PopupPanel = $WinnerPopupPanel
@onready
var winner_label: Label = $WinnerPopupPanel/WinnerLabel
var winner_label: Label = %WinnerLabel
@onready
var winner_picture: TextureRect = $WinnerPopupPanel/WinnerPicture
var winner_picture: TextureRect = %WinnerPicture
@onready
var auto_repeat_song_button: CheckButton = $RepeatSongCheckButton
@@ -162,6 +165,7 @@ func _ready() -> void:
reset_points_button.pressed.connect(reset_points)
character_select.connect("character_selected", _on_character_selected)
new_character_select.connect("new_new_character_selected", _on_new_character_selected)
new_player_name_field.connect("enter_key_pressed", add_player)
music_player_container.connect("play_next_song", play_next_song)
music_player_container.connect("update_song_list", update_song_list)
@@ -178,6 +182,8 @@ func _ready() -> void:
get_suggestion_list()
fetch_song_list_at_start()
fetch_song()
search_view.get_list_of_games()
new_character_select.load_characters()
func _input(event: InputEvent) -> void:
if event is InputEventKey and event.pressed:
@@ -214,6 +220,7 @@ func update_from_server() -> void:
search_view.get_list_of_games()
get_suggestion_list()
reset_playlist()
new_character_select.load_characters()
func repeat_song() -> void:
Settings.auto_repeat_song = !Settings.auto_repeat_song
@@ -314,17 +321,18 @@ func update_song_list() -> void:
func song_object_clicked(event: InputEvent, song_no: int) -> void:
if (event is InputEventMouseButton && event.pressed && event.button_index == MOUSE_BUTTON_LEFT):
print("Clicked Song Object: ", Playlist.song_object_array[song_no].to_string())
if Playlist.get_song(song_no) == null:
print("has no song, need to download")
var song_downloaded: Callable = func song_downloaded(body: PackedByteArray) -> void:
var sound: AudioStream = AudioStreamMP3.new()
sound.data = body
Playlist.add_song_to_song_object(song_no, sound)
if Settings.character_select_open == false:
if Playlist.get_song(song_no) == null:
print("has no song, need to download")
var song_downloaded: Callable = func song_downloaded(body: PackedByteArray) -> void:
var sound: AudioStream = AudioStreamMP3.new()
sound.data = body
Playlist.add_song_to_song_object(song_no, sound)
music_player_container.play_song_object(song_no)
Settings.make_request2("/music?song=" + str(song_no), song_downloaded, true)
else:
print("song already downloaded")
music_player_container.play_song_object(song_no)
Settings.make_request2("/music?song=" + str(song_no), song_downloaded, true)
else:
print("song already downloaded")
music_player_container.play_song_object(song_no)
func reset_playlist() -> void:
print("reset_playlist")
@@ -451,9 +459,9 @@ func _on_player_won(winning_player_id: int) -> void:
print("_on_player_won")
winner_popup.visible = true
winner_label.text = Settings.player_array[winning_player_id].player_name + " won!!"
winner_picture.custom_minimum_size = Vector2(80, 40)
winner_picture.ignore_texture_size = true
winner_picture.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT
winner_picture.custom_minimum_size = Vector2(692, 300)
winner_picture.expand_mode = TextureRect.EXPAND_FIT_WIDTH_PROPORTIONAL
winner_picture.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED
winner_picture.texture = Settings.player_array[winning_player_id].character
music_player_container.play_sound(preload("res://sounds/winning.mp3"))
@@ -467,12 +475,16 @@ func _on_player_removed(player_to_remove: int) -> void:
func _on_player_change_character_clicked(new_player: Node) -> void:
print("_on_player_change_character_clicked")
current_player = new_player
character_select.visible = true
new_character_select.show_grid()
func _on_character_selected(file_name: String) -> void:
print("_on_character_selected")
character_select.visible = false
current_player._on_control_character_selected_clicked(file_name)
current_player.character_selected(file_name)
func _on_new_character_selected(character_texture: ImageTexture) -> void:
print("_on_new_character_selected")
current_player.new_character_selected(character_texture)
func show_search() -> void:
print("show_search")