diff --git a/COPYRIGHT.md b/COPYRIGHT.md index 6588a76..9f4e557 100644 --- a/COPYRIGHT.md +++ b/COPYRIGHT.md @@ -24,6 +24,10 @@ Portions of this software are copyright © 2022 The FreeType Project (www.freety The app uses the Noto Sans font family, for which the full Open Font License is available here. +## Audio + +The app uses Kenney's Digital Audio Pack. Whilst distributed under CC0 and attribution is not required, I felt it only fair to mention it here. + ## Internet module Mbed TLS (as part of Godot) Copyright The Mbed TLS Contributors diff --git a/godot/Assets/audio/no_score.ogg b/godot/Assets/audio/no_score.ogg new file mode 100644 index 0000000..5970e43 Binary files /dev/null and b/godot/Assets/audio/no_score.ogg differ diff --git a/godot/Assets/audio/scored.ogg b/godot/Assets/audio/scored.ogg new file mode 100644 index 0000000..e62e78c Binary files /dev/null and b/godot/Assets/audio/scored.ogg differ diff --git a/godot/Assets/audio/time_to_score.ogg b/godot/Assets/audio/time_to_score.ogg new file mode 100644 index 0000000..09b578f Binary files /dev/null and b/godot/Assets/audio/time_to_score.ogg differ diff --git a/godot/ObservationWindow.gd b/godot/ObservationWindow.gd index b7d7563..2197d45 100644 --- a/godot/ObservationWindow.gd +++ b/godot/ObservationWindow.gd @@ -21,6 +21,10 @@ var time_lefts : int var toggle_observation : bool = false var observation_button_pressed : bool = false +var sound_scored = preload("res://Assets/audio/scored.ogg") +var sound_time_to_score = preload("res://Assets/audio/time_to_score.ogg") +var sound_no_score = preload("res://Assets/audio/no_score.ogg") + @onready var styleBox_highlight : StyleBoxFlat = $"%OneInstrPanel".get_theme_stylebox("panel").duplicate() @onready var styleBox_orig : StyleBoxFlat = $"%TwoNamesPanel".get_theme_stylebox("panel").duplicate() @@ -74,6 +78,8 @@ func _process(_delta) -> void: print("We're at the five second mark!") toggle_observation = true $"Panel/BehaviourButtons".show() + $AudioPlayer.stream = sound_time_to_score + $AudioPlayer.play() func calculate_percentages() -> void: @@ -102,6 +108,8 @@ func on_interval_moment() -> void: if observation_button_pressed == false: global_ints.six_behaviour_score += 1 global_ints.total_behaviours += 1 + $AudioPlayer.stream = sound_no_score + $AudioPlayer.play() observation_button_pressed = false @@ -135,6 +143,8 @@ func _on_BehaviourOne_pressed() -> void: global_ints.one_behaviour_score += 1 global_ints.total_behaviours += 1 observation_button_pressed = true + $AudioPlayer.stream = sound_scored + $AudioPlayer.play() $"Panel/BehaviourButtons".hide() print(str(global_ints.one_behaviour_score)) @@ -143,6 +153,8 @@ func _on_BehaviourTwo_pressed() -> void: global_ints.two_behaviour_score += 1 global_ints.total_behaviours += 1 observation_button_pressed = true + $AudioPlayer.stream = sound_scored + $AudioPlayer.play() $"Panel/BehaviourButtons".hide() @@ -150,6 +162,8 @@ func _on_BehaviourThree_pressed() -> void: global_ints.three_behaviour_score += 1 global_ints.total_behaviours += 1 observation_button_pressed = true + $AudioPlayer.stream = sound_scored + $AudioPlayer.play() $"Panel/BehaviourButtons".hide() @@ -157,6 +171,8 @@ func _on_BehaviourFour_pressed() -> void: global_ints.four_behaviour_score += 1 global_ints.total_behaviours += 1 observation_button_pressed = true + $AudioPlayer.stream = sound_scored + $AudioPlayer.play() $"Panel/BehaviourButtons".hide() @@ -164,6 +180,8 @@ func _on_BehaviourFive_pressed() -> void: global_ints.five_behaviour_score += 1 global_ints.total_behaviours += 1 observation_button_pressed = true + $AudioPlayer.stream = sound_scored + $AudioPlayer.play() $"Panel/BehaviourButtons".hide() diff --git a/godot/global_ints.gd b/godot/global_ints.gd index ee5e57b..9e6a3e0 100644 --- a/godot/global_ints.gd +++ b/godot/global_ints.gd @@ -69,7 +69,7 @@ var four_behaviour_percent : float var five_behaviour_percent : float func reset_all_vars() -> void: - observation_minutes = 15 + observation_minutes = 10 generate_results = false diff --git a/godot/main_screen.gd b/godot/main_screen.gd index 7f06ff0..3d9d6ef 100644 --- a/godot/main_screen.gd +++ b/godot/main_screen.gd @@ -24,6 +24,8 @@ var update_text : String var text_buffer : String var os_list : Array = ["Linux", "Windows", "macOS", "OSX", "UWP", "X11", "FreeBSD", "NetBSD", "OpenBSD", "BSD"] +var test_sound = preload("res://Assets/audio/time_to_score.ogg") + @onready var minute_label = $"StartScreen/InstructionPanel/MinuteBox/MinuteLabel" @onready var styleBox_highlight : StyleBoxFlat = $"%OneInstrPanel".get_theme_stylebox("panel").duplicate() @onready var styleBox_orig : StyleBoxFlat = $"%TwoNamesPanel".get_theme_stylebox("panel").duplicate() @@ -312,3 +314,18 @@ func _on_save_edit_pressed() -> void: $"%EditPanel".hide() $"%EditResult".hide() $"%EditMenu".hide() + + +func _on_test_menu_id_pressed(id: int) -> void: + # At some point, I'd like to add shortcuts such as Command-R or Command-Q + # https://github.com/godotengine/godot/issues/82854 + if id == 0: + global_ints.reset_all_vars() + var _ignore = get_tree().reload_current_scene() + if id == 1: + get_tree().quit() + + +func _on_test_sound_pressed() -> void: + $StartScreen/AudioPlay.stream = test_sound + $StartScreen/AudioPlay.play() diff --git a/godot/main_screen.tscn b/godot/main_screen.tscn index 5cefaee..f4bb36e 100644 --- a/godot/main_screen.tscn +++ b/godot/main_screen.tscn @@ -1205,11 +1205,9 @@ unique_name_in_owner = true unique_name_in_owner = true [node name="StartScreen" type="CanvasLayer" parent="."] -visible = false [node name="InstructionPanel" type="Panel" parent="StartScreen"] unique_name_in_owner = true -visible = false anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 @@ -1336,6 +1334,12 @@ size_flags_horizontal = 3 theme = ExtResource("1") text = "BUT_EDIT_NM" +[node name="TestSound" type="Button" parent="StartScreen/InstructionPanel/BottomButtons"] +layout_mode = 2 +size_flags_horizontal = 3 +theme = ExtResource("1") +text = "BUT_TEST_SND" + [node name="Start" type="Button" parent="StartScreen/InstructionPanel/BottomButtons"] layout_mode = 2 size_flags_horizontal = 3 @@ -1485,6 +1489,7 @@ text = "The pupil is otherwise distracted and not on task" [node name="NameChangePanel" type="Panel" parent="StartScreen"] unique_name_in_owner = true +visible = false anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 @@ -1694,6 +1699,8 @@ offset_bottom = 432.0 theme = ExtResource("1") text = "UPD_TEXT2" +[node name="AudioPlay" type="AudioStreamPlayer2D" parent="StartScreen"] + [node name="EditScreen" type="CanvasLayer" parent="."] unique_name_in_owner = true visible = false @@ -1864,6 +1871,7 @@ text = "BUT_CLEAR" [node name="ObservationWindow" type="CanvasLayer" parent="."] unique_name_in_owner = true +visible = false script = ExtResource("7") [node name="Panel" type="Panel" parent="ObservationWindow"] @@ -2095,6 +2103,8 @@ script = ExtResource("11") unique_name_in_owner = true wait_time = 20.0 +[node name="AudioPlayer" type="AudioStreamPlayer2D" parent="ObservationWindow"] + [node name="Results" type="CanvasLayer" parent="."] unique_name_in_owner = true visible = false @@ -2462,6 +2472,21 @@ theme_override_font_sizes/font_size = 14 text = "LAB_RESULTS" horizontal_alignment = 1 +[node name="AppMenuBar" type="MenuBar" parent="."] +visible = false +offset_left = 130.0 +offset_top = 68.0 +offset_right = 1253.0 +offset_bottom = 109.0 + +[node name="FileMenu" type="PopupMenu" parent="AppMenuBar"] +title = "File" +item_count = 2 +item_0/text = "Reset" +item_0/id = 0 +item_1/text = "Quit" +item_1/id = 1 + [connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"] [connection signal="request_completed" from="HTTPRequest2" to="." method="_on_HTTPRequest2_request_completed"] [connection signal="button_down" from="StartScreen/InstructionPanel/MinuteBox/MinuteMinus" to="." method="_on_MinuteMinus_button_down"] @@ -2471,6 +2496,7 @@ horizontal_alignment = 1 [connection signal="pressed" from="StartScreen/InstructionPanel/BottomButtons/Manual" to="." method="_on_Manual_pressed"] [connection signal="pressed" from="StartScreen/InstructionPanel/BottomButtons/ChangeItems" to="." method="_on_ChangeItems_pressed"] [connection signal="pressed" from="StartScreen/InstructionPanel/BottomButtons/PupilName" to="." method="_on_PupilName_pressed"] +[connection signal="pressed" from="StartScreen/InstructionPanel/BottomButtons/TestSound" to="." method="_on_test_sound_pressed"] [connection signal="pressed" from="StartScreen/InstructionPanel/BottomButtons/Start" to="." method="_on_Start_pressed"] [connection signal="pressed" from="StartScreen/NameChangePanel/NameContainer/OkButton" to="." method="_on_ok_button_pressed"] [connection signal="pressed" from="StartScreen/InstructionScreen/InstructionContainer/InsOkButton" to="." method="_on_InsOkButton_pressed"] @@ -2492,3 +2518,4 @@ horizontal_alignment = 1 [connection signal="pressed" from="Results/Panel/ResultMenu/SaveReport" to="Results" method="_on_SaveReport_pressed"] [connection signal="pressed" from="Results/Panel/EditMenu/CancelEdit" to="." method="_on_cancel_edit_pressed"] [connection signal="pressed" from="Results/Panel/EditMenu/SaveEdit" to="." method="_on_save_edit_pressed"] +[connection signal="id_pressed" from="AppMenuBar/FileMenu" to="." method="_on_test_menu_id_pressed"] diff --git a/godot/translation.csv b/godot/translation.csv index db85575..2c27da8 100644 --- a/godot/translation.csv +++ b/godot/translation.csv @@ -33,4 +33,5 @@ LAB_INSTR,Instructions,x LAB_NAMES,Names,x LAB_CONFIG,Configure,x LAB_OBS,Observe,x -LAB_RESULTS,Results,x \ No newline at end of file +LAB_RESULTS,Results,x +BUT_TEST_SND,Test Audio, \ No newline at end of file