Code cleanup. Removes Godot warnings. Removes unused import functions from the Database.
This commit is contained in:
+59
-48
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user