Code cleanup. Removes Godot warnings. Removes unused import functions from the Database.

This commit is contained in:
Dylan Sarrazyn
2024-10-22 17:21:42 +02:00
parent c40e8abec2
commit ac4ae00a99
34 changed files with 271 additions and 422 deletions
+59 -48
View File
@@ -24,13 +24,13 @@ const garden_size: = 2400
@export var minigames_scenes: Array[PackedScene]
@export var minigames_icons: Array[Texture]
@onready var garden_parent: = %GardenParent
@onready var garden_parent: HBoxContainer = %GardenParent
@onready var locked_line: Line2D = $ScrollContainer/LockedLine
@onready var unlocked_line: Line2D = $ScrollContainer/UnlockedLine
@onready var line_particles: GPUParticles2D = %LineParticles
@onready var line_audio_stream_player: AudioStreamPlayer = %LineAudioStreamPlayer
@onready var scroll_container: ScrollContainer = $ScrollContainer
@onready var parallax_background: = %ParallaxBackground
@onready var parallax_background: ParallaxBackground = %ParallaxBackground
@onready var minigame_selection: Control = %MinigameSelection
@onready var lesson_button: LessonButton = %LessonButton
@onready var lesson_button_particles: GPUParticles2D = %LessonButtonParticles
@@ -48,10 +48,10 @@ const garden_size: = 2400
var lessons: = {}
var points: = []
var points: Array[Array]= []
var is_scrolling: = false
var scroll_beginning_garden: = 0
var tween: Tween
var scroll_tween: Tween
var in_minigame_selection: = false
var current_lesson_number: = -1
@@ -87,7 +87,7 @@ func _ready() -> void:
if starting_garden == -1:
var lesson_ind: = 1
for garden_ind in garden_parent.get_child_count():
var garden_control: = garden_parent.get_child(garden_ind)
var garden_control: Garden = garden_parent.get_child(garden_ind)
if starting_garden != -1:
break
if not lesson_ind in lessons:
@@ -111,22 +111,21 @@ func _ready() -> void:
# Finds the button
var lesson_ind: int = 1
var lesson_button: LessonButton
for garden_control in garden_parent.get_children():
var current_lesson_button: LessonButton
for garden_control: Garden in garden_parent.get_children():
for i in garden_control.lesson_button_controls.size():
if lesson_button:
break
if lesson_ind == transition_data.current_lesson_number:
lesson_button = garden_control.lesson_button_controls[i]
current_lesson_button = garden_control.lesson_button_controls[i]
break
lesson_ind += 1
pass
# Re-open the minigames layout
# If the minigame is completed: play an animation
await _open_minigames_layout(lesson_button, transition_data.current_lesson_number, transition_data.current_garden, transition_data.current_button_global_position)
await _open_minigames_layout(current_lesson_button, transition_data.current_lesson_number as int, transition_data.current_garden as int, transition_data.current_button_global_position as Vector2)
scroll_container.scroll_horizontal = garden_size * starting_garden
@warning_ignore("integer_division")
scroll_beginning_garden = scroll_container.scroll_horizontal / garden_size
await OpeningCurtain.open()
@@ -149,11 +148,11 @@ func _unlock_new_lesson() -> void:
await get_tree().create_timer(1).timeout
await _close_minigames_layout()
var lesson_ind = 1
var lesson_ind: = 1
var last_lesson_button: LessonButton
var new_lesson_button: LessonButton
var is_last_lesson_of_garden: bool = false
for garden_control in garden_parent.get_children():
for garden_control: Garden in garden_parent.get_children():
for i in garden_control.lesson_button_controls.size():
if lesson_ind == max_lesson + 1:
new_lesson_button = garden_control.lesson_button_controls[i]
@@ -174,19 +173,23 @@ func _unlock_new_lesson() -> void:
# Fill in the path towards the next lesson
var curve: = Curve2D.new()
for i in range(max_lesson-1, max_lesson + 1):
curve.add_point(points[i][0], points[i][1], points[i][2])
curve.add_point(points[i][0] as Vector2, points[i][1] as Vector2, points[i][2] as Vector2)
var baked_points: = curve.get_baked_points()
# 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
var tween = create_tween()
var 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
garden_parent.get_child(scroll_beginning_garden).pop_animation()
var g: Garden = garden_parent.get_child(scroll_beginning_garden)
g.pop_animation()
line_audio_stream_player.pitch_scale = 0.95
for point: Vector2 in baked_points:
@@ -211,14 +214,15 @@ func _process(_delta: float) -> void:
func get_gardens_db_data() -> void:
Database.db.query("Select Grapheme, Phoneme, LessonNb, GPID FROM Lessons
Database.db.query("SELECT Grapheme, Phoneme, LessonNb, GPID FROM Lessons
INNER JOIN GPsInLessons ON GPsInLessons.LessonID = Lessons.ID
INNER JOIN GPs ON GPsInLessons.GPID = GPs.ID
ORDER BY LessonNb")
for e in Database.db.query_result:
if not lessons.has(e.LessonNb):
lessons[e.LessonNb] = []
lessons[e.LessonNb].append({grapheme = e.Grapheme, phoneme = e.Phoneme, gp_id = e.GPID})
var lesson_array: Array = lessons[e.LessonNb]
lesson_array.append({grapheme = e.Grapheme, phoneme = e.Phoneme, gp_id = e.GPID})
func _open_minigames_layout(button: LessonButton, lesson_ind: int, garden_ind: int, button_global_position: = Vector2.ZERO) -> void:
@@ -260,12 +264,12 @@ func _open_minigames_layout(button: LessonButton, lesson_ind: int, garden_ind: i
minigame_background_center.modulate = garden.color
# Lesson button
_handle_lesson_button(current_lesson_number, lesson_unlocks["look_and_learn"], garden.color)
_handle_lesson_button(current_lesson_number, lesson_unlocks["look_and_learn"] as UserProgression.Status, garden.color)
# Minigames
_fill_minigame_choice(minigame_layout_1, exercises[0], lesson_unlocks["games"][0], 0)
_fill_minigame_choice(minigame_layout_2, exercises[1], lesson_unlocks["games"][1], 1)
_fill_minigame_choice(minigame_layout_3, exercises[2], lesson_unlocks["games"][2], 2)
_fill_minigame_choice(minigame_layout_1, exercises[0], lesson_unlocks["games"][0] as UserProgression.Status, 0)
_fill_minigame_choice(minigame_layout_2, exercises[1], lesson_unlocks["games"][1] as UserProgression.Status, 1)
_fill_minigame_choice(minigame_layout_3, exercises[2], lesson_unlocks["games"][2] as UserProgression.Status, 2)
# Animations
minigame_selection.visible = true
@@ -291,8 +295,8 @@ func _open_minigames_layout(button: LessonButton, lesson_ind: int, garden_ind: i
minigame_layout_opened.emit()
func _handle_lesson_button(current_lesson_number: int, status: UserProgression.Status, color: Color) -> void:
lesson_button.text = lessons[current_lesson_number][0].grapheme
func _handle_lesson_button(lesson: int, status: UserProgression.Status, color: Color) -> void:
lesson_button.text = lessons[lesson][0].grapheme
lesson_button.completed_color = color
lesson_button.disabled = status == UserProgression.Status.Locked
@@ -314,7 +318,7 @@ func _fill_minigame_choice(layout: MinigameLayout, exercise_type: int, status: U
if transition_data and transition_data.has("minigame_completed") and transition_data.minigame_completed and transition_data.minigame_number == minigame_number:
layout.self_modulate = unlocked_color
await minigame_layout_opened
var tween: = create_tween().tween_property(layout, "self_modulate:a", 0, 1)
create_tween().tween_property(layout, "self_modulate:a", 0, 1)
else:
layout.self_modulate.a = 0
@@ -353,7 +357,9 @@ func _close_minigames_layout() -> void:
back_button.visible = true
line_particles.visible = true
for button in garden_parent.get_child(current_garden).lesson_button_controls:
var garden: Garden = garden_parent.get_child(current_garden)
for button in garden.lesson_button_controls:
button.mouse_filter = Control.MOUSE_FILTER_STOP
minigame_layout_1.pressed.disconnect(_on_minigame_button_pressed)
@@ -364,11 +370,11 @@ func _close_minigames_layout() -> void:
func set_up_lessons() -> void:
var lesson_ind: = 1
for garden_ind in garden_parent.get_child_count():
var garden_control: = garden_parent.get_child(garden_ind)
var garden_control: Garden = garden_parent.get_child(garden_ind)
for i in garden_control.lesson_button_controls.size():
if not lesson_ind in lessons:
break
garden_control.set_lesson_label(i, lessons[lesson_ind][0].grapheme)
garden_control.set_lesson_label(i, lessons[lesson_ind][0].grapheme as String)
garden_control.lesson_button_controls[i].pressed.connect(_on_garden_lesson_button_pressed.bind(garden_control.lesson_button_controls[i], lesson_ind, garden_ind))
lesson_ind += 1
@@ -387,7 +393,7 @@ func add_gardens() -> void:
for child in garden_parent.get_children():
child.free()
for garden_layout in gardens_layout.gardens:
var garden: = garden_scene.instantiate()
var garden: Garden = garden_scene.instantiate()
garden_parent.add_child(garden)
garden.garden_layout = garden_layout
@@ -398,16 +404,16 @@ func set_up_path() -> void:
points = []
var curve: = Curve2D.new()
for i in gardens_layout.gardens.size():
var garden_layout: = gardens_layout.gardens[i]
var garden_control: = garden_parent.get_child(i)
for lesson_button in garden_layout.lesson_buttons:
var point_position: Vector2 = garden_parent.position + garden_control.position + Vector2(lesson_button.position)
var garden_layout: GardenLayout = gardens_layout.gardens[i]
var garden_control: Garden = garden_parent.get_child(i)
for b in garden_layout.lesson_buttons:
var point_position: Vector2 = garden_parent.position + garden_control.position + Vector2(b.position)
point_position += garden_control.get_button_size() / 2
var point_in_position: = Vector2.ZERO
if curve.point_count > 1:
point_in_position = curve.get_point_position(curve.point_count - 1) + curve.get_point_out(curve.point_count - 1) - point_position
curve.add_point(point_position, point_in_position, lesson_button.path_out_position)
points.append([point_position, point_in_position, lesson_button.path_out_position])
curve.add_point(point_position, point_in_position, b.path_out_position)
points.append([point_position, point_in_position, b.path_out_position])
locked_line.points = curve.get_baked_points()
@@ -419,7 +425,7 @@ func _set_progression() -> void:
return
var lesson_ind: = 1
for garden_control in garden_parent.get_children():
for garden_control: Garden in garden_parent.get_children():
var garden_unlocks: = 0.0
var garden_total_unlocks: = 0.0
for i in garden_control.lesson_button_controls.size():
@@ -478,7 +484,7 @@ func _set_progression() -> void:
max_lesson += 1
for i in range(max_lesson):
curve.add_point(points[i][0], points[i][1], points[i][2])
curve.add_point(points[i][0] as Vector2, points[i][1] as Vector2, points[i][2] as Vector2)
unlocked_line.points = curve.get_baked_points()
line_particles.position = unlocked_line.points[unlocked_line.points.size()-1]
@@ -529,10 +535,11 @@ func _on_scroll_container_gui_input(event: InputEvent) -> void:
return
if event.is_action_pressed("left_click"):
is_scrolling = true
@warning_ignore("integer_division")
scroll_beginning_garden = scroll_container.scroll_horizontal / garden_size
if tween:
tween.stop()
tween = null
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
@@ -546,19 +553,23 @@ func _on_scroll_container_gui_input(event: InputEvent) -> void:
target_scroll += garden_size
is_garden_changed = true
right_audio_stream_player.play()
tween = create_tween()
tween.set_ease(Tween.EASE_OUT)
tween.set_trans(Tween.TRANS_SPRING)
tween.tween_property(scroll_container, "scroll_horizontal", target_scroll, 1)
scroll_tween = create_tween()
scroll_tween.set_ease(Tween.EASE_OUT)
scroll_tween.set_trans(Tween.TRANS_SPRING)
scroll_tween.tween_property(scroll_container, "scroll_horizontal", target_scroll, 1)
if is_garden_changed:
@warning_ignore("integer_division")
var garden_ind: int = target_scroll / garden_size
garden_parent.get_child(garden_ind).pop_animation()
var garden: Garden = garden_parent.get_child(garden_ind)
garden.pop_animation()
await tween.finished
await scroll_tween.finished
@warning_ignore("integer_division")
scroll_beginning_garden = scroll_container.scroll_horizontal / garden_size
if is_scrolling and event is InputEventMouseMotion:
scroll_container.scroll_horizontal -= event.relative.x
var motion_event: InputEventMouseMotion = event
scroll_container.scroll_horizontal -= int(motion_event.relative.x)
func _on_back_button_pressed() -> void:
@@ -566,6 +577,6 @@ func _on_back_button_pressed() -> void:
get_tree().change_scene_to_file("res://sources/menus/brain/brain.tscn")
func _on_area_2d_input_event(viewport, event, shape_idx):
func _on_area_2d_input_event(_viewport: Node, event: InputEvent, _shape_idx: int) -> void:
if event.is_action_pressed("left_click") and in_minigame_selection:
_close_minigames_layout()