diff --git a/examples/LanguageSelectorExample.gd b/examples/LanguageSelectorExample.gd deleted file mode 100644 index 41d4a0f..0000000 --- a/examples/LanguageSelectorExample.gd +++ /dev/null @@ -1,25 +0,0 @@ -# Example of how to use the LanguageSelector component in any scene -extends Control - -@onready var language_selector: LanguageSelector = $LanguageSelector - -func _ready(): - DebugManager.log_info("LanguageSelector example ready", "Example") - - # Connect to language change events - if language_selector.language_changed.is_connected(_on_language_changed): - language_selector.language_changed.disconnect(_on_language_changed) - language_selector.language_changed.connect(_on_language_changed) - -func _on_language_changed(new_language: String): - DebugManager.log_info("Language changed to: " + new_language, "Example") - # Handle language change in your scene - # For example: update UI text, save preferences, etc. - -# Example of integrating with a navigation system -func handle_input_on_language_selector(action: String) -> bool: - return language_selector.handle_input_action(action) - -# Example of highlighting the selector when selected -func set_language_selector_highlighted(highlighted: bool): - language_selector.set_highlighted(highlighted) \ No newline at end of file diff --git a/examples/LanguageSelectorExample.gd.uid b/examples/LanguageSelectorExample.gd.uid deleted file mode 100644 index 7fed89d..0000000 --- a/examples/LanguageSelectorExample.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://beg6mqo6s7huf diff --git a/examples/LanguageSelectorExample.tscn b/examples/LanguageSelectorExample.tscn deleted file mode 100644 index 1073b85..0000000 --- a/examples/LanguageSelectorExample.tscn +++ /dev/null @@ -1,58 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://bm3x8y4h9l2kv"] - -[ext_resource type="Script" path="res://examples/LanguageSelectorExample.gd" id="1_example"] -[ext_resource type="PackedScene" path="res://scenes/ui/components/LanguageSelector.tscn" id="2_language_selector"] - -[node name="LanguageSelectorExample" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("1_example") - -[node name="VBoxContainer" type="VBoxContainer" parent="."] -layout_mode = 1 -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -20.0 -offset_top = -20.0 -offset_right = 20.0 -offset_bottom = 20.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="Title" type="Label" parent="VBoxContainer"] -layout_mode = 2 -text = "Language Selector Component Example" -horizontal_alignment = 1 - -[node name="HSeparator" type="HSeparator" parent="VBoxContainer"] -layout_mode = 2 - -[node name="LanguageContainer" type="HBoxContainer" parent="VBoxContainer"] -layout_mode = 2 - -[node name="LanguageLabel" type="Label" parent="VBoxContainer/LanguageContainer"] -custom_minimum_size = Vector2(150, 0) -layout_mode = 2 -text = "Language:" - -[node name="LanguageSelector" parent="VBoxContainer/LanguageContainer" instance=ExtResource("2_language_selector")] -layout_mode = 2 - -[node name="HSeparator2" type="HSeparator" parent="VBoxContainer"] -layout_mode = 2 - -[node name="Instructions" type="Label" parent="VBoxContainer"] -layout_mode = 2 -text = "• Click arrow buttons with mouse -• Use keyboard/gamepad navigation with left/right -• Component is fully reusable in any scene" -horizontal_alignment = 1 - -[connection signal="language_changed" from="VBoxContainer/LanguageContainer/LanguageSelector" to="." method="_on_language_changed"] diff --git a/scenes/ui/components/LanguageSelector.gd b/scenes/ui/components/LanguageSelector.gd deleted file mode 100644 index 0152013..0000000 --- a/scenes/ui/components/LanguageSelector.gd +++ /dev/null @@ -1,118 +0,0 @@ -@tool -extends Control -class_name LanguageSelector - -signal language_changed(new_language: String) - -@onready var left_button: Button = $LanguageLeftButton -@onready var right_button: Button = $LanguageRightButton -@onready var language_display: Label = $LanguageDisplay - -@export var settings_manager: Node = SettingsManager -@export var localization_manager: Node = LocalizationManager - -var language_codes: Array[String] = [] -var original_scale: Vector2 -var original_modulate: Color -var is_highlighted: bool = false - -func _ready(): - DebugManager.log_info("LanguageSelector ready", "LanguageSelector") - - # Store original visual properties - original_scale = scale - original_modulate = modulate - - # Connect button signals - if left_button and not left_button.pressed.is_connected(_on_left_button_pressed): - left_button.pressed.connect(_on_left_button_pressed) - - if right_button and not right_button.pressed.is_connected(_on_right_button_pressed): - right_button.pressed.connect(_on_right_button_pressed) - - # Initialize language data - _load_language_data() - _update_language_display() - -func _load_language_data(): - if not settings_manager: - settings_manager = SettingsManager - - var languages_data = settings_manager.get_languages_data() - if languages_data.has("languages"): - language_codes.clear() - for lang_code in languages_data.languages.keys(): - language_codes.append(lang_code) - DebugManager.log_info("Loaded %d languages" % language_codes.size(), "LanguageSelector") - -func _update_language_display(): - if not settings_manager: - return - - var current_lang = settings_manager.get_setting("language") - var languages_data = settings_manager.get_languages_data() - - if languages_data.has("languages") and languages_data.languages.has(current_lang): - language_display.text = languages_data.languages[current_lang]["display_name"] - else: - language_display.text = current_lang if current_lang else "Unknown" - -func change_language(direction: int): - if language_codes.size() == 0: - DebugManager.log_warn("No languages available", "LanguageSelector") - return - - var current_lang = settings_manager.get_setting("language") - var current_index = language_codes.find(current_lang) - if current_index < 0: - current_index = 0 - - var new_index = (current_index + direction) % language_codes.size() - if new_index < 0: - new_index = language_codes.size() - 1 - - var new_lang = language_codes[new_index] - settings_manager.set_setting("language", new_lang) - - if localization_manager: - localization_manager.change_language(new_lang) - else: - LocalizationManager.change_language(new_lang) - - _update_language_display() - language_changed.emit(new_lang) - DebugManager.log_info("Language changed to: " + new_lang, "LanguageSelector") - -func set_highlighted(highlighted: bool): - is_highlighted = highlighted - if highlighted: - scale = original_scale * 1.05 - modulate = Color(1.1, 1.1, 0.9) - else: - scale = original_scale - modulate = original_modulate - -func handle_input_action(action: String) -> bool: - match action: - "move_left": - change_language(-1) - return true - "move_right": - change_language(1) - return true - _: - return false - -func _on_left_button_pressed(): - AudioManager.play_ui_click() - DebugManager.log_info("Language left button clicked", "LanguageSelector") - change_language(-1) - -func _on_right_button_pressed(): - AudioManager.play_ui_click() - DebugManager.log_info("Language right button clicked", "LanguageSelector") - change_language(1) - -# For navigation system integration -func get_control_name() -> String: - return "language_selector" diff --git a/scenes/ui/components/LanguageSelector.gd.uid b/scenes/ui/components/LanguageSelector.gd.uid deleted file mode 100644 index 4ea177e..0000000 --- a/scenes/ui/components/LanguageSelector.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dh3vt0okvhuid diff --git a/scenes/ui/components/LanguageSelector.tscn b/scenes/ui/components/LanguageSelector.tscn deleted file mode 100644 index 848dea3..0000000 --- a/scenes/ui/components/LanguageSelector.tscn +++ /dev/null @@ -1,26 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://bc1h4c5t2m6vx"] - -[ext_resource type="Script" path="res://scenes/ui/components/LanguageSelector.gd" id="1_language_selector"] - -[node name="LanguageSelector" type="HBoxContainer"] -layout_mode = 2 -size_flags_vertical = 4 -script = ExtResource("1_language_selector") - -[node name="LanguageLeftButton" type="Button" parent="."] -layout_mode = 2 -text = "<" - -[node name="LanguageDisplay" type="Label" parent="."] -custom_minimum_size = Vector2(100, 0) -layout_mode = 2 -size_flags_horizontal = 4 -text = "English" -horizontal_alignment = 1 - -[node name="LanguageRightButton" type="Button" parent="."] -layout_mode = 2 -text = ">" - -[connection signal="pressed" from="LanguageLeftButton" to="." method="_on_left_button_pressed"] -[connection signal="pressed" from="LanguageRightButton" to="." method="_on_right_button_pressed"]