From 77425af7dd5aee9864c88f8c46afd428132dc157 Mon Sep 17 00:00:00 2001 From: Adrien Ufferte Date: Sun, 8 Jun 2025 19:37:02 +0200 Subject: [PATCH] Clean code naming convention --- sources/gardens/gardens.gd | 46 +++++++++---------- sources/gardens/gardens_edit_tool.gd | 28 +++++------ sources/gardens/minigame_layout.gd | 2 + .../gp_image_and_sound_descriptions.gd | 6 +-- .../language_tool/gp_video_descriptions.gd | 6 +-- .../image_and_sound_gp_description.gd | 4 +- sources/language_tool/in_game_sounds.gd | 12 ++--- sources/language_tool/kalulu_speech.gd | 2 +- sources/language_tool/lesson_exercises.gd | 13 +----- .../lesson_exercises_container.gd | 1 + sources/language_tool/prof_tool_menu.gd | 44 +++++++++--------- .../language_tool/sentence_list_element.gd | 4 +- sources/language_tool/tracing_builder.gd | 4 +- sources/language_tool/video_gp_description.gd | 2 +- sources/language_tool/word_list_element.gd | 8 ++-- sources/look_and_learn/look_and_learn.gd | 4 +- sources/look_and_learn/tracing_manager.gd | 10 ++-- sources/menus/brain/brain.gd | 5 +- sources/minigames/base/base_minigame.gd | 3 -- sources/minigames/caterpillar/berry.gd | 1 + sources/minigames/caterpillar/branch.gd | 15 +++--- sources/minigames/caterpillar/caterpillar.gd | 6 +-- .../minigames/caterpillar/caterpillar_body.gd | 1 + .../minigames/caterpillar/caterpillar_head.gd | 1 + .../caterpillar/caterpillar_minigame.gd | 9 +--- sources/minigames/caterpillar/leaf.gd | 1 + sources/minigames/frog/frog_material.tres | 2 +- sources/minigames/frog/lilypad_material.tres | 2 +- sources/utils/autoloads/database.gd | 21 ++++----- sources/utils/fx/fireworks.gd | 6 +-- sources/utils/fx/rocket.gd | 1 + 31 files changed, 125 insertions(+), 145 deletions(-) diff --git a/sources/gardens/gardens.gd b/sources/gardens/gardens.gd index 7d8bd1d6..28fde8d8 100644 --- a/sources/gardens/gardens.gd +++ b/sources/gardens/gardens.gd @@ -1,16 +1,16 @@ extends Control +class_name Gardens + signal minigame_layout_opened() # Namespace -const LookAndLearn: = preload("res://sources/look_and_learn/look_and_learn.gd") -const MinigameLayout: = preload("res://sources/gardens/minigame_layout.gd") -const Kalulu: = preload("res://sources/minigames/base/kalulu.gd") +const KALULU: = preload("res://sources/minigames/base/kalulu.gd") -const garden_scene: PackedScene = preload("res://resources/gardens/garden.tscn") -const look_and_learn_scene: PackedScene = preload("res://sources/look_and_learn/look_and_learn.tscn") -const flower_fvx: PackedScene = preload("res://sources/gardens/flower_particle.tscn") +const GARDEN_SCENE: PackedScene = preload("res://resources/gardens/garden.tscn") +const LOOK_AND_LEARN_SCENE: PackedScene = preload("res://sources/look_and_learn/look_and_learn.tscn") +const FLOWER_FVX: PackedScene = preload("res://sources/gardens/flower_particle.tscn") -const garden_size: int = 2400 +const GARDEN_SIZE: int = 2400 @export_category("Layout") @export var gardens_layout: GardensLayout: @@ -46,7 +46,7 @@ const garden_size: int = 2400 @onready var minigame_background: TextureRect = %MinigameBackground @onready var minigame_background_center: TextureRect = %MinigameBackgroundCenter @onready var lock: Control = %Lock -@onready var kalulu: Kalulu = %Kalulu +@onready var kalulu: KALULU = %Kalulu @onready var kalulu_button: CanvasItem = %KaluluButton @onready var intro_speech: AudioStreamMP3 = Database.load_external_sound(Database.get_kalulu_speech_path("gardens_screen", "intro")) @@ -238,9 +238,9 @@ func _ready() -> void: Logger.error("Gardens: initialisation: transition_data exists but does not contains the needed current_garden_index") starting_garden = 0 - scroll_container.scroll_horizontal = garden_size * starting_garden + scroll_container.scroll_horizontal = GARDEN_SIZE * starting_garden @warning_ignore("integer_division") - scroll_beginning_garden = scroll_container.scroll_horizontal / garden_size + scroll_beginning_garden = scroll_container.scroll_horizontal / GARDEN_SIZE current_garden = garden_parent.get_child(starting_garden) @@ -285,7 +285,7 @@ func _ready() -> void: play_animation = true if play_animation: - var fvfx: FlowerVFX = flower_fvx.instantiate() + var fvfx: FlowerVFX = FLOWER_FVX.instantiate() current_garden.flower_controls[flower_ind].add_child(fvfx) fvfx.anchor_bottom = 0.5 fvfx.anchor_top = 0.5 @@ -346,14 +346,14 @@ func _ready() -> void: # Check if we need to scroll to the next garden if is_last_lesson_of_garden: @warning_ignore("integer_division") - scroll_beginning_garden = scroll_container.scroll_horizontal / garden_size - var target_scroll: int = scroll_beginning_garden * garden_size + garden_size + scroll_beginning_garden = scroll_container.scroll_horizontal / GARDEN_SIZE + var target_scroll: int = scroll_beginning_garden * GARDEN_SIZE + GARDEN_SIZE var tween: Tween = create_tween() tween.set_ease(Tween.EASE_IN_OUT) tween.tween_property(scroll_container, "scroll_horizontal", target_scroll, 4) @warning_ignore("integer_division") - scroll_beginning_garden = target_scroll / garden_size + scroll_beginning_garden = target_scroll / GARDEN_SIZE current_garden = garden_parent.get_child(scroll_beginning_garden) @@ -571,7 +571,7 @@ func add_gardens() -> void: var current_lesson_count: int = 0 var garden_index: int = 0 for garden_layout: GardenLayout in gardens_layout.gardens: - var garden: Garden = garden_scene.instantiate() + var garden: Garden = GARDEN_SCENE.instantiate() garden_parent.add_child(garden) garden.garden_index = garden_index garden_index += 1 @@ -649,7 +649,7 @@ func _on_lesson_button_pressed() -> void: current_garden_index = current_garden.garden_index, look_and_learn_completed = false } - get_tree().change_scene_to_packed(look_and_learn_scene) + get_tree().change_scene_to_packed(LOOK_AND_LEARN_SCENE) func _on_minigame_button_pressed(minigame_scene: PackedScene, minigame_number: int) -> void: @@ -675,21 +675,21 @@ func _on_scroll_container_gui_input(event: InputEvent) -> void: if event.is_action_pressed("left_click"): is_scrolling = true @warning_ignore("integer_division") - scroll_beginning_garden = scroll_container.scroll_horizontal / garden_size + scroll_beginning_garden = scroll_container.scroll_horizontal / GARDEN_SIZE if scroll_tween: scroll_tween.stop() scroll_tween = null elif event.is_action_released("left_click"): is_scrolling = false - var shift_value: int = scroll_container.scroll_horizontal - scroll_beginning_garden * garden_size - var target_scroll: int = scroll_beginning_garden * garden_size + var shift_value: int = scroll_container.scroll_horizontal - scroll_beginning_garden * GARDEN_SIZE + var target_scroll: int = scroll_beginning_garden * GARDEN_SIZE var is_garden_changed: bool = false if shift_value < - 400: - target_scroll -= garden_size + target_scroll -= GARDEN_SIZE is_garden_changed = true left_audio_stream_player.play() elif shift_value > 400: - target_scroll += garden_size + target_scroll += GARDEN_SIZE is_garden_changed = true right_audio_stream_player.play() scroll_tween = create_tween() @@ -698,12 +698,12 @@ func _on_scroll_container_gui_input(event: InputEvent) -> void: scroll_tween.tween_property(scroll_container, "scroll_horizontal", target_scroll, 1) if is_garden_changed: @warning_ignore("integer_division") - current_garden = garden_parent.get_child(target_scroll / garden_size) + current_garden = garden_parent.get_child(target_scroll / GARDEN_SIZE) current_garden.pop_animation() await scroll_tween.finished @warning_ignore("integer_division") - scroll_beginning_garden = scroll_container.scroll_horizontal / garden_size + scroll_beginning_garden = scroll_container.scroll_horizontal / GARDEN_SIZE if is_scrolling and event is InputEventMouseMotion: var motion_event: InputEventMouseMotion = event diff --git a/sources/gardens/gardens_edit_tool.gd b/sources/gardens/gardens_edit_tool.gd index c9624a79..3a32ec38 100644 --- a/sources/gardens/gardens_edit_tool.gd +++ b/sources/gardens/gardens_edit_tool.gd @@ -1,9 +1,9 @@ -extends "res://sources/gardens/gardens.gd" +extends Gardens -const max_lesson_number: int = 80 -const garden_textures_nb: int = 20 -const flower_types_nb: int = 5 -const gardens_layout_resource_path: String = "res://resources/gardens/gardens_layout.tres" +const MAX_LESSON_NUMBER: int = 80 +const GARDEN_TEXTURES_NB: int = 20 +const FLOWER_TYPES_NB: int = 5 +const GARDENS_LAYOUT_RESOURCE_PATH: String = "res://resources/gardens/gardens_layout.tres" var dragging_element: Variant @@ -15,16 +15,16 @@ func _ready() -> void: line_particles.hide() back_button.hide() - for index: int in max_lesson_number: + for index: int in MAX_LESSON_NUMBER: lessons[index] = index # Checks if a configuration exists - if not ResourceLoader.exists(gardens_layout_resource_path): + if not ResourceLoader.exists(GARDENS_LAYOUT_RESOURCE_PATH): gardens_layout = GardensLayout.new() - gardens_layout.resource_path = gardens_layout_resource_path + gardens_layout.resource_path = GARDENS_LAYOUT_RESOURCE_PATH _init_gardens_layout() - gardens_layout = load(gardens_layout_resource_path) + gardens_layout = load(GARDENS_LAYOUT_RESOURCE_PATH) set_up_click_detection() @@ -32,7 +32,7 @@ func _init_gardens_layout() -> void: # Empty the gardens configuration gardens_layout.gardens.clear() - for index: int in max_lesson_number: + for index: int in MAX_LESSON_NUMBER: var garden_layout: GardenLayout @@ -42,7 +42,7 @@ func _init_gardens_layout() -> void: gardens_layout.gardens.append(garden_layout) @warning_ignore("integer_division") - garden_layout.color = (index / 4) % garden_textures_nb + garden_layout.color = (index / 4) % GARDEN_TEXTURES_NB # Add the flowers to the garden for flower_i: int in 5: @@ -181,7 +181,7 @@ func _on_flower_gui_input(event: InputEvent, garden_control_ind: int, flower_ind var garden: Garden = garden_parent.get_child(garden_control_ind) var flower: GardenLayout.Flower = gardens_layout.gardens[garden_control_ind].flowers[flower_ind] flower.type += 1 - if flower.type >= flower_types_nb: + if flower.type >= FLOWER_TYPES_NB: flower.type = 0 garden.set_flowers(gardens_layout.gardens[garden_control_ind].flowers, Garden.FlowerSizes.LARGE) ResourceSaver.save(gardens_layout, gardens_layout.resource_path) @@ -205,7 +205,7 @@ func _on_change_flower_color_button_pressed() -> void: var flowers: Array[GardenLayout.Flower] = gardens_layout.gardens[garden_ind].flowers for flower: GardenLayout.Flower in flowers: flower.color += 1 - if flower.color >= garden_textures_nb: + if flower.color >= GARDEN_TEXTURES_NB: flower.color = 0 gardens_layout.gardens[garden_ind].flowers = flowers @@ -222,7 +222,7 @@ func _on_change_flower_color_button_2_pressed() -> void: for flower: GardenLayout.Flower in flowers: flower.color -= 1 if flower.color < 0: - flower.color = garden_textures_nb - 1 + flower.color = GARDEN_TEXTURES_NB - 1 gardens_layout.gardens[garden_ind].flowers = flowers garden.set_flowers(flowers, Garden.FlowerSizes.LARGE) diff --git a/sources/gardens/minigame_layout.gd b/sources/gardens/minigame_layout.gd index c6d1fe68..d00ef204 100644 --- a/sources/gardens/minigame_layout.gd +++ b/sources/gardens/minigame_layout.gd @@ -1,4 +1,6 @@ extends TextureRect +class_name MinigameLayout + signal pressed() @onready var icon: TextureRect = $TextureRect diff --git a/sources/language_tool/gp_image_and_sound_descriptions.gd b/sources/language_tool/gp_image_and_sound_descriptions.gd index d0e94aeb..298cf773 100644 --- a/sources/language_tool/gp_image_and_sound_descriptions.gd +++ b/sources/language_tool/gp_image_and_sound_descriptions.gd @@ -3,7 +3,7 @@ class_name GPImageAndSoundDescriptions @onready var description_container: VBoxContainer = %DescriptionsContainer -const description_line_scene: PackedScene = preload("res://sources/language_tool/image_and_sound_gp_description.tscn") +const DESCRIPTION_LINE_SCENE: PackedScene = preload("res://sources/language_tool/image_and_sound_gp_description.tscn") func _ready() -> void: @@ -11,8 +11,8 @@ func _ready() -> void: DirAccess.make_dir_recursive_absolute(Database.base_path + Database.language + Database.look_and_learn_sounds) Database.db.query("SELECT * FROM GPs WHERE GPs.Exception=0") - for res in Database.db.query_result: - var description_line: ImageAndSoundGPDescription = description_line_scene.instantiate() + for res: Dictionary in Database.db.query_result: + var description_line: ImageAndSoundGPDescription = DESCRIPTION_LINE_SCENE.instantiate() description_container.add_child(description_line) description_line.set_gp(res) diff --git a/sources/language_tool/gp_video_descriptions.gd b/sources/language_tool/gp_video_descriptions.gd index b401848f..00a9ca04 100644 --- a/sources/language_tool/gp_video_descriptions.gd +++ b/sources/language_tool/gp_video_descriptions.gd @@ -2,17 +2,17 @@ extends Control @onready var description_container: VBoxContainer = %DescriptionsContainer -const description_line_scene: PackedScene = preload("res://sources/language_tool/video_gp_description.tscn") +const DESCRIPTION_LINE_SCENE: PackedScene = preload("res://sources/language_tool/video_gp_description.tscn") func _ready() -> void: - var _description_line: VideoGPDescription = description_line_scene.instantiate() + var _description_line: VideoGPDescription = DESCRIPTION_LINE_SCENE.instantiate() DirAccess.make_dir_recursive_absolute(Database.base_path + Database.language + Database.look_and_learn_videos) _description_line.queue_free() Database.db.query("Select * FROM GPs WHERE GPs.Exception=0") for gp in Database.db.query_result: - var description_line: VideoGPDescription = description_line_scene.instantiate() + var description_line: VideoGPDescription = DESCRIPTION_LINE_SCENE.instantiate() description_container.add_child(description_line) description_line.set_gp(gp) diff --git a/sources/language_tool/image_and_sound_gp_description.gd b/sources/language_tool/image_and_sound_gp_description.gd index 828812ca..78565b26 100644 --- a/sources/language_tool/image_and_sound_gp_description.gd +++ b/sources/language_tool/image_and_sound_gp_description.gd @@ -91,7 +91,7 @@ func set_gp(value: Dictionary) -> void: func _on_image_upload_button_pressed() -> void: if not gp.is_empty(): file_dialog.filters = [] - file_dialog.add_filter("*" + Database.image_extension, "Images") + file_dialog.add_filter("*" + Database.IMAGE_EXTENSION, "Images") for connection in file_dialog.file_selected.get_connections(): connection["signal"].disconnect(connection["callable"]) @@ -104,7 +104,7 @@ func _on_image_upload_button_pressed() -> void: func _on_sound_upload_button_pressed() -> void: if not gp.is_empty(): file_dialog.filters = [] - file_dialog.add_filter("*" + Database.sound_extension, "Sounds") + file_dialog.add_filter("*" + Database.SOUND_EXTENSION, "Sounds") for connection in file_dialog.file_selected.get_connections(): connection["signal"].disconnect(connection["callable"]) diff --git a/sources/language_tool/in_game_sounds.gd b/sources/language_tool/in_game_sounds.gd index eff8f62b..e7a862b7 100644 --- a/sources/language_tool/in_game_sounds.gd +++ b/sources/language_tool/in_game_sounds.gd @@ -6,8 +6,8 @@ func _ready() -> void: DirAccess.make_dir_recursive_absolute(Database.base_path + Database.language + Database.language_sounds) Database.db.query("SELECT * FROM GPs WHERE GPs.Exception=0") - for res in Database.db.query_result: - var description_line: ImageAndSoundGPDescription = description_line_scene.instantiate() + for res: Dictionary in Database.db.query_result: + var description_line: ImageAndSoundGPDescription = DESCRIPTION_LINE_SCENE.instantiate() description_line.get_sound_path = Database.get_gp_sound_path description_line.get_image_path = get_empty_string description_line.hide_image_part() @@ -17,8 +17,8 @@ func _ready() -> void: description_line.image_upload_button.hide() Database.db.query("SELECT * FROM Syllables WHERE Syllables.Exception=0") - for res in Database.db.query_result: - var description_line: = description_line_scene.instantiate() + for res: Dictionary in Database.db.query_result: + var description_line: ImageAndSoundGPDescription = DESCRIPTION_LINE_SCENE.instantiate() description_line.get_sound_path = Database.get_syllable_sound_path description_line.get_image_path = get_empty_string description_line.hide_image_part() @@ -29,8 +29,8 @@ func _ready() -> void: description_line.image_upload_button.hide() Database.db.query("SELECT * FROM Words WHERE Words.Exception=0") - for res in Database.db.query_result: - var description_line: = description_line_scene.instantiate() + for res: Dictionary in Database.db.query_result: + var description_line: ImageAndSoundGPDescription = DESCRIPTION_LINE_SCENE.instantiate() description_line.get_sound_path = Database.get_word_sound_path description_line.get_image_path = get_empty_string description_line.hide_image_part() diff --git a/sources/language_tool/kalulu_speech.gd b/sources/language_tool/kalulu_speech.gd index 87f81516..1fa5b532 100644 --- a/sources/language_tool/kalulu_speech.gd +++ b/sources/language_tool/kalulu_speech.gd @@ -17,7 +17,7 @@ extends PanelContainer func _ready() -> void: file_dialog.access = FileDialog.ACCESS_FILESYSTEM file_dialog.filters = [] - file_dialog.add_filter("*" + Database.sound_extension, "Sounds") + file_dialog.add_filter("*" + Database.SOUND_EXTENSION, "Sounds") _set_speech_name(speech_name) _set_speech_description(speech_description) diff --git a/sources/language_tool/lesson_exercises.gd b/sources/language_tool/lesson_exercises.gd index 8e0a15cc..be94e4e1 100644 --- a/sources/language_tool/lesson_exercises.gd +++ b/sources/language_tool/lesson_exercises.gd @@ -1,15 +1,6 @@ extends Control -const LessonExerciceContainer: = preload("res://sources/language_tool/lesson_exercises_container.gd") -const lesson_exercice_container_scene: = preload("res://sources/language_tool/lesson_exercises_container.tscn") - -const exercise_types: Array[String] = [ - "Syllable", - "Pairing", - "Words", - "Sentences", - "Boss" -] +const LESSON_EXERCICE_CONTAINER_SCENE: = preload("res://sources/language_tool/lesson_exercises_container.tscn") @onready var lessons_container: VBoxContainer = %LessonsContainer @@ -51,7 +42,7 @@ func _ready() -> void: var sentences_by_lesson: = Database.get_sentences_by_lessons() Database.db.query("Select * FROM Lessons") for e in Database.db.query_result: - var container: LessonExerciceContainer = lesson_exercice_container_scene.instantiate() + var container: LessonExerciceContainer = LESSON_EXERCICE_CONTAINER_SCENE.instantiate() lessons_container.add_child(container) container.sentences_by_lesson = sentences_by_lesson container.lesson_number = e.LessonNb diff --git a/sources/language_tool/lesson_exercises_container.gd b/sources/language_tool/lesson_exercises_container.gd index b6876ba2..fe7cfe27 100644 --- a/sources/language_tool/lesson_exercises_container.gd +++ b/sources/language_tool/lesson_exercises_container.gd @@ -1,4 +1,5 @@ extends PanelContainer +class_name LessonExerciceContainer @export var lesson_number: = -1: set = _set_lesson_number diff --git a/sources/language_tool/prof_tool_menu.gd b/sources/language_tool/prof_tool_menu.gd index adb64205..858d8584 100644 --- a/sources/language_tool/prof_tool_menu.gd +++ b/sources/language_tool/prof_tool_menu.gd @@ -1,7 +1,7 @@ extends Control -const base_path: String = "user://language_resources/" -const save_file_path: String = "user://prof_tool_save.tres" +const BASE_PATH: String = "user://language_resources/" +const SAVE_FILE_PATH: String = "user://prof_tool_save.tres" var save_file: ProfToolSave @onready var language_select_button: OptionButton = %LanguageSelectButton @@ -18,11 +18,11 @@ func _ready() -> void: MusicManager.stop() Database.load_additional_word_list() _update_add_word_list_button() - if not ResourceLoader.exists(save_file_path): + if not ResourceLoader.exists(SAVE_FILE_PATH): save_file = ProfToolSave.new() - save_file.resource_path = save_file_path - ResourceSaver.save(save_file, save_file_path) - save_file = load(save_file_path) + save_file.resource_path = SAVE_FILE_PATH + ResourceSaver.save(save_file, SAVE_FILE_PATH) + save_file = load(SAVE_FILE_PATH) _display_available_languages() tab_container.current_tab = Globals.main_menu_selected_tab tab_container.tab_changed.connect(_on_tab_container_tab_changed) @@ -97,11 +97,11 @@ func _on_exercises_button_pressed() -> void: func _on_export_filename_selected(filename: String) -> void: - var version_file: FileAccess = FileAccess.open(base_path.path_join(Database.language).path_join("version.txt"), FileAccess.WRITE) + var version_file: FileAccess = FileAccess.open(BASE_PATH.path_join(Database.language).path_join("version.txt"), FileAccess.WRITE) version_file.store_line(Time.get_datetime_string_from_system(true, false)) version_file.close() - var summary_file: FileAccess = FileAccess.open(base_path.path_join(Database.language).path_join("summary.txt"), FileAccess.WRITE) + var summary_file: FileAccess = FileAccess.open(BASE_PATH.path_join(Database.language).path_join("summary.txt"), FileAccess.WRITE) var sentences_by_lesson: Dictionary = Database.get_sentences_by_lessons() for index: int in Database.get_lessons_count(): @@ -132,7 +132,7 @@ func _on_export_filename_selected(filename: String) -> void: _create_sentence_csv() var folder_zipper: FolderZipper = FolderZipper.new() - folder_zipper.compress(base_path.path_join(Database.language), filename) + folder_zipper.compress(BASE_PATH.path_join(Database.language), filename) #region Database integrity check var integrity_checking: bool = false @@ -327,13 +327,13 @@ func file_exists_case_sensitive(path: String) -> Dictionary: func _get_available_languages() -> Array[String]: var available_languages: Array[String] = [] - var dir: DirAccess = DirAccess.open(base_path) + var dir: DirAccess = DirAccess.open(BASE_PATH) if dir: dir.list_dir_begin() var file_name: String = dir.get_next() while file_name != "": if dir.current_is_dir(): - if FileAccess.file_exists(base_path.path_join(file_name).path_join("language.db")): + if FileAccess.file_exists(BASE_PATH.path_join(file_name).path_join("language.db")): available_languages.append(file_name) file_name = dir.get_next() return available_languages @@ -346,7 +346,7 @@ func _on_language_select_button_item_selected(index: int) -> void: return save_file.selected_language = language_select_button.get_item_text(index) - ResourceSaver.save(save_file, save_file_path) + ResourceSaver.save(save_file, SAVE_FILE_PATH) Database.language = save_file.selected_language @@ -354,14 +354,14 @@ func _on_validate_language_pressed() -> void: if not line_edit.text: return - DirAccess.make_dir_recursive_absolute(base_path.path_join(line_edit.text)) + DirAccess.make_dir_recursive_absolute(BASE_PATH.path_join(line_edit.text)) var file: FileAccess = FileAccess.open("res://model_database.db", FileAccess.READ) - var dest: FileAccess = FileAccess.open(base_path.path_join(line_edit.text).path_join("language.db"), FileAccess.WRITE) + var dest: FileAccess = FileAccess.open(BASE_PATH.path_join(line_edit.text).path_join("language.db"), FileAccess.WRITE) dest.store_buffer(file.get_buffer(file.get_length())) file.close() dest.close() save_file.selected_language = line_edit.text - ResourceSaver.save(save_file, save_file_path) + ResourceSaver.save(save_file, SAVE_FILE_PATH) get_tree().reload_current_scene() @@ -437,12 +437,12 @@ func _on_export_button_pressed() -> void: func _language_data_selected(file_path: String) -> void: if FileAccess.file_exists(file_path): var folder_unzipper: FolderUnzipper = FolderUnzipper.new() - folder_unzipper.extract(file_path, base_path, false) + folder_unzipper.extract(file_path, BASE_PATH, false) get_tree().reload_current_scene() func _create_GP_csv() -> void: - var gp_list_file: FileAccess = FileAccess.open(base_path.path_join(Database.language).path_join("gp_list.csv"), FileAccess.WRITE) + var gp_list_file: FileAccess = FileAccess.open(BASE_PATH.path_join(Database.language).path_join("gp_list.csv"), FileAccess.WRITE) gp_list_file.store_csv_line(["Grapheme", "Phoneme", "Type", "Exception"]) var query: String = "Select * FROM GPs ORDER BY GPs.Grapheme" Database.db.query(query) @@ -453,7 +453,7 @@ func _create_GP_csv() -> void: func _create_words_csv() -> void: - var gp_list_file: FileAccess = FileAccess.open(base_path.path_join(Database.language).path_join("words_list.csv"), FileAccess.WRITE) + var gp_list_file: FileAccess = FileAccess.open(BASE_PATH.path_join(Database.language).path_join("words_list.csv"), FileAccess.WRITE) gp_list_file.store_csv_line(["ORTHO", "GPMATCH", "LESSON", "READING", "WRITING"]) var query: String = "SELECT Words.ID as WordId, Word, group_concat(Grapheme, ' ') as Graphemes, group_concat(Phoneme, ' ') as Phonemes, group_concat(GPs.ID, ' ') as GPIDs, Words.Exception, Reading, Writing FROM Words @@ -482,7 +482,7 @@ func _create_words_csv() -> void: func _create_syllable_csv() -> void: - var gp_list_file: FileAccess = FileAccess.open(base_path.path_join(Database.language).path_join("syllables_list.csv"), FileAccess.WRITE) + var gp_list_file: FileAccess = FileAccess.open(BASE_PATH.path_join(Database.language).path_join("syllables_list.csv"), FileAccess.WRITE) gp_list_file.store_csv_line(["ORTHO", "GPMATCH", "LESSON", "READING", "WRITING"]) var query: String = "SELECT Syllables.ID as SyllableId, Syllable, group_concat(Grapheme, ' ') as Graphemes, group_concat(Phoneme, ' ') as Phonemes, group_concat(GPs.ID, ' ') as GPIDs, Syllables.Exception, Reading, Writing FROM Syllables @@ -511,7 +511,7 @@ func _create_syllable_csv() -> void: func _create_sentence_csv() -> void: - var gp_list_file: FileAccess = FileAccess.open(base_path.path_join(Database.language).path_join("sentences_list.csv"), FileAccess.WRITE) + var gp_list_file: FileAccess = FileAccess.open(BASE_PATH.path_join(Database.language).path_join("sentences_list.csv"), FileAccess.WRITE) gp_list_file.store_csv_line(["Sentence", "Lesson"]) var query: String = "SELECT Sentences.ID as SentenceId, Sentence, group_concat(Word, ' ') as Words, group_concat(Word, ' ') as Words, group_concat(Words.ID, ' ') as WordIDs, Sentences.Exception FROM Sentences @@ -533,7 +533,7 @@ func _create_sentence_csv() -> void: func _on_open_folder_button_pressed() -> void: - OS.shell_show_in_file_manager(ProjectSettings.globalize_path(base_path)) + OS.shell_show_in_file_manager(ProjectSettings.globalize_path(BASE_PATH)) func _on_tab_container_tab_changed(tab: int) -> void: @@ -542,7 +542,7 @@ func _on_tab_container_tab_changed(tab: int) -> void: #region Book Generation func create_book() -> void: - var lang_path: String = base_path.path_join(Database.language) + var lang_path: String = BASE_PATH.path_join(Database.language) var file_names: Dictionary[String, String] = { "word": "words_list.csv", "syllable": "syllables_list.csv", diff --git a/sources/language_tool/sentence_list_element.gd b/sources/language_tool/sentence_list_element.gd index 3f8d11c8..61abf697 100644 --- a/sources/language_tool/sentence_list_element.gd +++ b/sources/language_tool/sentence_list_element.gd @@ -2,7 +2,7 @@ extends "res://sources/language_tool/word_list_element.gd" signal not_found(text: String) -const word_list_element_scene: = preload("res://sources/language_tool/word_list_element.tscn") +const WORD_LIST_ELEMENT_SCENE: = preload("res://sources/language_tool/word_list_element.tscn") var words_not_founds: PackedStringArray @@ -28,7 +28,7 @@ func _add_from_additional_word_list(new_text: String) -> int: var new_text_clean: = new_text.to_lower() for chara in punc: new_text_clean = new_text_clean.replace(chara, " ") - var word_list_element: WordListElement = word_list_element_scene.instantiate() + var word_list_element: WordListElement = WORD_LIST_ELEMENT_SCENE.instantiate() var all_found: = true words_not_founds.clear() var word_ids: Array[int] = [] diff --git a/sources/language_tool/tracing_builder.gd b/sources/language_tool/tracing_builder.gd index 121e31df..fba5c4bc 100644 --- a/sources/language_tool/tracing_builder.gd +++ b/sources/language_tool/tracing_builder.gd @@ -8,7 +8,7 @@ extends Control @onready var save_ok: TextureRect = %SaveOk @onready var copy_from: MenuButton = %CopyFrom -const extension: String = ".csv" +const EXTENSION: String = ".csv" var letters: Array[String] = [] var current_letter: int = -1 @@ -92,7 +92,7 @@ func upper_path(letter: String) -> String: func real_path(path: String) -> String: - return Database.base_path.path_join(Database.language).path_join(Database.tracing_data_folder).path_join(path) + extension + return Database.base_path.path_join(Database.language).path_join(Database.tracing_data_folder).path_join(path) + EXTENSION func _on_save_button_pressed() -> void: diff --git a/sources/language_tool/video_gp_description.gd b/sources/language_tool/video_gp_description.gd index 0a43c286..5b40a897 100644 --- a/sources/language_tool/video_gp_description.gd +++ b/sources/language_tool/video_gp_description.gd @@ -39,7 +39,7 @@ func set_gp(p_gp: Dictionary) -> void: func _on_video_upload_button_pressed() -> void: if not gp.is_empty(): file_dialog.filters = [] - file_dialog.add_filter("*" + Database.video_extension, "Videos") + file_dialog.add_filter("*" + Database.VIDEO_EXTENSION, "Videos") for connection in file_dialog.file_selected.get_connections(): connection["signal"].disconnect(connection["callable"]) diff --git a/sources/language_tool/word_list_element.gd b/sources/language_tool/word_list_element.gd index d9030c3c..ed69d26c 100644 --- a/sources/language_tool/word_list_element.gd +++ b/sources/language_tool/word_list_element.gd @@ -6,8 +6,8 @@ signal new_GP_asked(i: int) signal validated() signal GPs_updated() -const gp_list_button_scene: PackedScene = preload("res://sources/language_tool/gp_list_button.tscn") -const plus_button_scene: PackedScene = preload("res://sources/language_tool/plus_button.tscn") +const GP_LIST_BUTTON_SCENE: PackedScene = preload("res://sources/language_tool/gp_list_button.tscn") +const PLUS_BUTTON_SCENE: PackedScene = preload("res://sources/language_tool/plus_button.tscn") @export var table: String = "Words" @export var table_graph_column: String = "Word" @@ -101,14 +101,14 @@ func set_graphemes_edit(p_gp_ids: Array[int]) -> void: func add_gp_list_button(gp_id: int, ind_gp_id: int) -> void: - var gp_list_button: GPListButton = gp_list_button_scene.instantiate() + var gp_list_button: GPListButton = GP_LIST_BUTTON_SCENE.instantiate() gp_list_button.set_gp_list(sub_elements_list) graphemes_edit_container.add_child(gp_list_button) graphemes_edit_container.move_child(gp_list_button, 2 * ind_gp_id) gp_list_button.select_id(gp_id) gp_list_button.gp_selected.connect(_on_gp_list_button_selected.bind(gp_list_button)) gp_list_button.new_selected.connect(_on_gp_list_button_new_selected.bind(gp_list_button)) - var plus_button: PlusButton = plus_button_scene.instantiate() + var plus_button: PlusButton = PLUS_BUTTON_SCENE.instantiate() plus_button.size = Vector2(50, 50) graphemes_edit_container.add_child(plus_button) graphemes_edit_container.move_child(plus_button, 2 * ind_gp_id + 1) diff --git a/sources/look_and_learn/look_and_learn.gd b/sources/look_and_learn/look_and_learn.gd index 5a51afde..e479b7d3 100644 --- a/sources/look_and_learn/look_and_learn.gd +++ b/sources/look_and_learn/look_and_learn.gd @@ -1,7 +1,5 @@ extends Control - -const Gardens: = preload("res://sources/gardens/gardens.gd") -const TracingManager: = preload("res://sources/look_and_learn/tracing_manager.gd") +class_name LookAndLearn @export var lesson_nb: int = 1 @export var current_button_pressed: int = 0 diff --git a/sources/look_and_learn/tracing_manager.gd b/sources/look_and_learn/tracing_manager.gd index 5ecc860b..5e05966b 100644 --- a/sources/look_and_learn/tracing_manager.gd +++ b/sources/look_and_learn/tracing_manager.gd @@ -1,16 +1,16 @@ extends Control +class_name TracingManager signal finished() -const letter_segment_class: PackedScene = preload("res://sources/look_and_learn/letter_segment.tscn") +const LETTER_SEGMENT_CLASS: PackedScene = preload("res://sources/look_and_learn/letter_segment.tscn") @export var label_settings: LabelSettings @onready var lower_labels: HBoxContainer = %LowerLabels @onready var upper_labels: HBoxContainer = %UpperLabels -const tracing_data_folder: String = "tracing_data/" -const extension: String = ".csv" +const EXTENSION: String = ".csv" func _process(_delta: float) -> void: place_segments(upper_labels.get_children()) @@ -65,7 +65,7 @@ func setup_tracing(letter: String, letter_tracings: Array, parent: Control, lowe parent.add_child(label) for points: Array in letter_tracings: - var segment: LetterSegment = letter_segment_class.instantiate() + var segment: LetterSegment = LETTER_SEGMENT_CLASS.instantiate() label.add_child(segment) segment.setup(points) @@ -108,7 +108,7 @@ func _upper_path(letter: String) -> String: func _real_path(path: String) -> String: - return Database.base_path.path_join(Database.language).path_join(Database.tracing_data_folder).path_join(path) + extension + return Database.base_path.path_join(Database.language).path_join(Database.tracing_data_folder).path_join(path) + EXTENSION diff --git a/sources/menus/brain/brain.gd b/sources/menus/brain/brain.gd index dcc1ad54..0977e713 100644 --- a/sources/menus/brain/brain.gd +++ b/sources/menus/brain/brain.gd @@ -1,8 +1,7 @@ @tool extends Control -const Gardens: = preload("res://sources/gardens/gardens.gd") -const gardens_scene: PackedScene = preload("res://sources/gardens/gardens.tscn") +const GARDENS_SCENE: PackedScene = preload("res://sources/gardens/gardens.tscn") const Kalulu: = preload("res://sources/minigames/base/kalulu.gd") @export var locked_color: Color @@ -126,7 +125,7 @@ func _on_garden_button_pressed(button_number: int) -> void: audio_stream_player.play() await OpeningCurtain.close() - var gardens: Gardens = gardens_scene.instantiate() + var gardens: Gardens = GARDENS_SCENE.instantiate() gardens.starting_garden = button_number get_tree().root.add_child(gardens) get_tree().current_scene = gardens diff --git a/sources/minigames/base/base_minigame.gd b/sources/minigames/base/base_minigame.gd index 4a18cf00..cde57f03 100644 --- a/sources/minigames/base/base_minigame.gd +++ b/sources/minigames/base/base_minigame.gd @@ -2,9 +2,6 @@ extends Control class_name Minigame -const Gardens: = preload("res://sources/gardens/gardens.gd") -const Fireworks: = preload("res://sources/utils/fx/fireworks.gd") - enum Type { jellyfish, crabs, diff --git a/sources/minigames/caterpillar/berry.gd b/sources/minigames/caterpillar/berry.gd index d3da6a35..573ef7fd 100644 --- a/sources/minigames/caterpillar/berry.gd +++ b/sources/minigames/caterpillar/berry.gd @@ -1,4 +1,5 @@ extends Area2D +class_name Berry signal pressed(gp: Dictionary) diff --git a/sources/minigames/caterpillar/branch.gd b/sources/minigames/caterpillar/branch.gd index ad7e39ed..105cd9c8 100644 --- a/sources/minigames/caterpillar/branch.gd +++ b/sources/minigames/caterpillar/branch.gd @@ -1,15 +1,12 @@ @tool extends Node2D +class_name Branch signal branch_pressed() signal berry_pressed(gp: Dictionary) -# Namespace -const Leaf: = preload("res://sources/minigames/caterpillar/leaf.gd") -const Berry: = preload("res://sources/minigames/caterpillar/berry.gd") - -const leaf_scene: PackedScene = preload("res://sources/minigames/caterpillar/leaf.tscn") -const berry_scene: PackedScene = preload("res://sources/minigames/caterpillar/berry.tscn") +const LEAF_SCENE: PackedScene = preload("res://sources/minigames/caterpillar/leaf.tscn") +const BERRY_SCENE: PackedScene = preload("res://sources/minigames/caterpillar/berry.tscn") @onready var leaves: Node2D = $Leaves @onready var berries: Node2D = $Berries @@ -32,7 +29,7 @@ func _ready() -> void: # Adds some leaves from start var pos: float = -leaves.position.x + velocity * randf_range(0,2) while pos < 0: - var leaf: Leaf = leaf_scene.instantiate() + var leaf: Leaf = LEAF_SCENE.instantiate() leaves.add_child(leaf) leaf.position.x = pos pos = pos + velocity * randf_range(2, 5) @@ -54,7 +51,7 @@ func _process(delta: float) -> void: func spawn_berry(gp: Dictionary, is_distractor: bool) -> void: - var berry : Berry = berry_scene.instantiate() + var berry : Berry = BERRY_SCENE.instantiate() berries.add_child(berry) berry.gp = gp berry.is_distractor = is_distractor @@ -76,7 +73,7 @@ func _on_button_pressed() -> void: func _on_leaf_timer_timeout() -> void: - var leaf: Leaf = leaf_scene.instantiate() + var leaf: Leaf = LEAF_SCENE.instantiate() leaves.add_child(leaf) leaf_timer.wait_time = randf_range(2.0, 5.0) diff --git a/sources/minigames/caterpillar/caterpillar.gd b/sources/minigames/caterpillar/caterpillar.gd index c15d263e..9d26ea70 100644 --- a/sources/minigames/caterpillar/caterpillar.gd +++ b/sources/minigames/caterpillar/caterpillar.gd @@ -1,10 +1,6 @@ @tool extends Node2D - -# Namespace -const CaterpillarHead: = preload("res://sources/minigames/caterpillar/caterpillar_head.gd") -const CaterpillarBody: = preload("res://sources/minigames/caterpillar/caterpillar_body.gd") -const Berry: = preload("res://sources/minigames/caterpillar/berry.gd") +class_name Caterpillar signal berry_eaten(berry: Berry) diff --git a/sources/minigames/caterpillar/caterpillar_body.gd b/sources/minigames/caterpillar/caterpillar_body.gd index 5d666854..5743aa20 100644 --- a/sources/minigames/caterpillar/caterpillar_body.gd +++ b/sources/minigames/caterpillar/caterpillar_body.gd @@ -1,5 +1,6 @@ @tool extends Node2D +class_name CaterpillarBody @onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D @onready var label: Label = $Label diff --git a/sources/minigames/caterpillar/caterpillar_head.gd b/sources/minigames/caterpillar/caterpillar_head.gd index 8232f17b..b76f2da2 100644 --- a/sources/minigames/caterpillar/caterpillar_head.gd +++ b/sources/minigames/caterpillar/caterpillar_head.gd @@ -1,5 +1,6 @@ @tool extends Node2D +class_name CaterpillarHead @onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D @onready var audio_stream_player: CaterpillarAudioStreamPlayer = $CaterpillarAudioStreamPlayer diff --git a/sources/minigames/caterpillar/caterpillar_minigame.gd b/sources/minigames/caterpillar/caterpillar_minigame.gd index 421a51f2..eb30ffc5 100644 --- a/sources/minigames/caterpillar/caterpillar_minigame.gd +++ b/sources/minigames/caterpillar/caterpillar_minigame.gd @@ -1,12 +1,7 @@ @tool extends WordsMinigame -# Namespace -const Caterpillar: = preload("res://sources/minigames/caterpillar/caterpillar.gd") -const Branch: = preload("res://sources/minigames/caterpillar/branch.gd") -const Berry: = preload("res://sources/minigames/caterpillar/berry.gd") - -const branch_scene: PackedScene = preload("res://sources/minigames/caterpillar/branch.tscn") +const BRANCH_SCENE: PackedScene = preload("res://sources/minigames/caterpillar/branch.tscn") class DifficultySettings: @@ -50,7 +45,7 @@ func _setup_minigame() -> void: # Spawn the right amount of branches var branch_size: float = branches_zone.size.y / (settings.branches + 1) for index: int in settings.branches: - var branch: Branch = branch_scene.instantiate() + var branch: Branch = BRANCH_SCENE.instantiate() branch.velocity = settings.velocity branches_zone.add_child(branch) branch.set_position(Vector2(0, branch_size * (index+1))) diff --git a/sources/minigames/caterpillar/leaf.gd b/sources/minigames/caterpillar/leaf.gd index f56c7bd8..f9eee100 100644 --- a/sources/minigames/caterpillar/leaf.gd +++ b/sources/minigames/caterpillar/leaf.gd @@ -1,4 +1,5 @@ extends Node2D +class_name Leaf func _on_visible_on_screen_notifier_2d_screen_exited() -> void: queue_free() diff --git a/sources/minigames/frog/frog_material.tres b/sources/minigames/frog/frog_material.tres index 7fe6e190..6e9377e5 100644 --- a/sources/minigames/frog/frog_material.tres +++ b/sources/minigames/frog/frog_material.tres @@ -1,6 +1,6 @@ [gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://cj241oskmxqgv"] -[ext_resource type="Shader" uid="uid://dkmay7kcecvde" path="res://sources/minigames/frog/flood.gdshader" id="1_obtft"] +[ext_resource type="Shader" uid="uid://djvhi4vg4ko1c" path="res://sources/minigames/frog/flood.gdshader" id="1_obtft"] [sub_resource type="Gradient" id="Gradient_s16dt"] colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) diff --git a/sources/minigames/frog/lilypad_material.tres b/sources/minigames/frog/lilypad_material.tres index a658c9a4..2732d41b 100644 --- a/sources/minigames/frog/lilypad_material.tres +++ b/sources/minigames/frog/lilypad_material.tres @@ -1,6 +1,6 @@ [gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://3n8kdc1u25om"] -[ext_resource type="Shader" uid="uid://dkmay7kcecvde" path="res://sources/minigames/frog/flood.gdshader" id="1_yfhcb"] +[ext_resource type="Shader" uid="uid://djvhi4vg4ko1c" path="res://sources/minigames/frog/flood.gdshader" id="1_yfhcb"] [sub_resource type="Gradient" id="Gradient_q5on4"] colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) diff --git a/sources/utils/autoloads/database.gd b/sources/utils/autoloads/database.gd index ad5ed07a..4fe05266 100644 --- a/sources/utils/autoloads/database.gd +++ b/sources/utils/autoloads/database.gd @@ -15,11 +15,10 @@ const look_and_learn_sounds: String = "/look_and_learn/sounds/" const look_and_learn_videos: String = "/look_and_learn/video/" const language_sounds: String = "/language_sounds/" const kalulu_folder: String = "/kalulu/" -const tracing_data_folder: String = "tracing_data/" const additional_word_list_path: String = "word_list.csv" -const video_extension: String = ".ogv" -const image_extension: String = ".png" -const sound_extension: String = ".mp3" +const VIDEO_EXTENSION: String = ".ogv" +const IMAGE_EXTENSION: String = ".png" +const SOUND_EXTENSION: String = ".mp3" var language: String: set(value): @@ -539,31 +538,31 @@ func get_gp_name(gp: Dictionary) -> String: func get_gp_look_and_learn_image_path(gp: Dictionary) -> String: - return base_path + language + look_and_learn_images + get_gp_name(gp) + image_extension + return base_path + language + look_and_learn_images + get_gp_name(gp) + IMAGE_EXTENSION func get_gp_look_and_learn_sound_path(gp: Dictionary) -> String: - return base_path + language + look_and_learn_sounds + get_gp_name(gp) + sound_extension + return base_path + language + look_and_learn_sounds + get_gp_name(gp) + SOUND_EXTENSION func get_gp_look_and_learn_video_path(gp: Dictionary) -> String: - return base_path + language + look_and_learn_videos + get_gp_name(gp) + video_extension + return base_path + language + look_and_learn_videos + get_gp_name(gp) + VIDEO_EXTENSION func get_gp_sound_path(gp: Dictionary) -> String: - return base_path + language + language_sounds + Database.get_gp_name(gp) + sound_extension + return base_path + language + language_sounds + Database.get_gp_name(gp) + SOUND_EXTENSION func get_syllable_sound_path(syllable: Dictionary) -> String: - return base_path + language + language_sounds + syllable.Grapheme + sound_extension + return base_path + language + language_sounds + syllable.Grapheme + SOUND_EXTENSION func get_word_sound_path(word: Dictionary) -> String: - return base_path + language + language_sounds + word.Word + sound_extension + return base_path + language + language_sounds + word.Word + SOUND_EXTENSION func get_kalulu_speech_path(speech_category: String, speech_name: String) -> String: - return base_path + language + language_sounds + kalulu_folder + speech_category + "_" + speech_name + sound_extension + return base_path + language + language_sounds + kalulu_folder + speech_category + "_" + speech_name + SOUND_EXTENSION func load_external_sound(path: String) -> AudioStreamMP3: diff --git a/sources/utils/fx/fireworks.gd b/sources/utils/fx/fireworks.gd index 28e65ba8..2666ce32 100644 --- a/sources/utils/fx/fireworks.gd +++ b/sources/utils/fx/fireworks.gd @@ -1,9 +1,9 @@ extends Node +class_name Fireworks signal finished() -const Rocket: = preload("res://sources/utils/fx/rocket.gd") -const rocket_scene: PackedScene = preload("res://sources/utils/fx/rocket.tscn") +const ROKCET_SCENE: PackedScene = preload("res://sources/utils/fx/rocket.tscn") @export var number_of_rockets: int = 25 @@ -30,7 +30,7 @@ func _on_FireDelayTimer_timeout() -> void: var start_node: Node2D = starts[randi() % starts.size()] var end_node: Node2D = ends[randi() % ends.size()] - var rocket: Rocket = rocket_scene.instantiate() + var rocket: Rocket = ROKCET_SCENE.instantiate() rockets.add_child(rocket) rocket.start(start_node.global_position, end_node.global_position + Vector2(randf_range(-25.0, 25.0), randf_range(-25.0, 25.0))) diff --git a/sources/utils/fx/rocket.gd b/sources/utils/fx/rocket.gd index accb943d..92ce0dce 100644 --- a/sources/utils/fx/rocket.gd +++ b/sources/utils/fx/rocket.gd @@ -1,4 +1,5 @@ extends Path2D +class_name Rocket @export var spread_angle: float = PI/8.0 @export var segments: int = 5 -- 2.33.0.windows.1