extends Control @onready var player_panel_array = [$Control/Panel4, $Control/Panel2, $Control/Panel3] @onready var players_turning = [$Panel/SubViewportContainer/SubViewport/Players/Player1/MeshInstance3D, $Panel/SubViewportContainer/SubViewport/Players/Player2/MeshInstance3D, $Panel/SubViewportContainer/SubViewport/Players/Player3/MeshInstance3D] @onready var language_button: Button = $language const FLAG_DE = preload("res://assets/Images/de.svg") const FLAG_US = preload("res://assets/Images/us.svg") func _ready() -> void: $AnimationPlayer.play("turning") _update_language_button() func selected_via_click(chosen_player: int) -> void: player_panel_array[Global.PlayerSelection].get_theme_stylebox('panel').border_color = Color('cccccc') players_turning[Global.PlayerSelection].visible = false Global.PlayerSelection = chosen_player for i in players_turning[chosen_player].mesh.get_surface_count(): players_turning[chosen_player].set_surface_override_material(i, null) player_panel_array[chosen_player].get_theme_stylebox('panel').border_color = Color('30e7f2') players_turning[Global.PlayerSelection].visible = true func _on_button_1_pressed() -> void: selected_via_click(0) func _on_button_2_pressed() -> void: selected_via_click(1) func _on_button_3_pressed() -> void: selected_via_click(2) func _change_language() -> void: if Global.locale == "de": Global.apply_locale("en") else: Global.apply_locale("de") _update_language_button() func _update_language_button() -> void: # Show the flag of the language you can switch TO language_button.text = "" language_button.icon = FLAG_US if Global.locale == "de" else FLAG_DE language_button.expand_icon = true language_button.custom_minimum_size = Vector2(48, 32) func _on_start_pressed() -> void: var mesh = players_turning[Global.PlayerSelection].mesh.duplicate() for i in range(mesh.get_surface_count()): var override_mat = players_turning[Global.PlayerSelection].get_surface_override_material(i) if override_mat: mesh.surface_set_material(i, override_mat) ResourceSaver.save(mesh, "user://player_anim.tres") get_tree().change_scene_to_file("res://title_screen_animation.tscn") func _on_line_edit_text_changed(new_text: String) -> void: Global.player_name = new_text func _on_impressum_pressed() -> void: $Panel2.visible = true $Panel2/Label.text = load_localized_document("impressum") func _on_datenschutz_pressed() -> void: $Panel2.visible = true $Panel2/Label.text = load_localized_document("datenschutz") func _on_button_pressed() -> void: $Panel2.visible = false func load_localized_document(base_name: String) -> String: var locale := TranslationServer.get_locale().substr(0, 2) var localized_path := "res://Resources/documents/%s_%s.txt" % [base_name, locale] var fallback_path := "res://Resources/documents/%s.txt" % base_name if FileAccess.file_exists(localized_path): return load_text_file(localized_path) return load_text_file(fallback_path) func load_text_file(path: String) -> String: var file = FileAccess.open(path, FileAccess.READ) if file == null: return "" return file.get_as_text()