Skip to content

Commit

Permalink
morse-to-text and text-to-morse modes completed
Browse files Browse the repository at this point in the history
  • Loading branch information
GiorgosAthanasopoulos committed Oct 15, 2023
1 parent 61274d5 commit 27cd837
Show file tree
Hide file tree
Showing 19 changed files with 513 additions and 51 deletions.
6 changes: 3 additions & 3 deletions BackgroundMusicScene.gd
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ extends AudioStreamPlayer
@export var masterBusStr : String


func _notification(what):
func _notification(what: int) -> void:
if $"/root/GlobalVariablesScene" != null:
if $"/root/GlobalVariablesScene".muteWhenUnfocused:
if what == MainLoop.NOTIFICATION_APPLICATION_FOCUS_OUT:
AudioServer.set_bus_volume_db(AudioServer.get_bus_index(masterBusStr), linear_to_db(0))
$"/root/UtilsScene".set_master_volume(linear_to_db(0))
elif what == MainLoop.NOTIFICATION_APPLICATION_FOCUS_IN:
AudioServer.set_bus_volume_db(AudioServer.get_bus_index(masterBusStr), linear_to_db(1))
$"/root/UtilsScene".set_master_volume(linear_to_db(1))
5 changes: 4 additions & 1 deletion CopyPracticeScene.gd
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ extends Node2D

@export var lobbyScene : String

func _ready():
$"/root/UtilsScene".pause_music()

func _process(_delta):

func _process(_delta: float) -> void:
if Input.is_key_pressed(KEY_ESCAPE):
get_tree().change_scene_to_file(lobbyScene)
20 changes: 0 additions & 20 deletions GlobalVariables.gd

This file was deleted.

12 changes: 12 additions & 0 deletions GlobalVariablesScene.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
extends Node


@export var frequency : int
@export var wpm : int
@export var musicVolume : float
@export var soundVolume : float
@export var musicBusStr : String
@export var soundBusStr : String
@export var muteWhenUnfocused : bool
@export var sampleRate : int
@export var morseFilename: String
6 changes: 4 additions & 2 deletions GlobalVariablesScene.tscn
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
[gd_scene load_steps=2 format=3 uid="uid://bb4i75ikns07x"]

[ext_resource type="Script" path="res://GlobalVariables.gd" id="1_iec42"]
[ext_resource type="Script" path="res://GlobalVariablesScene.gd" id="1_qk7lj"]

[node name="GlobalVariables" type="Node"]
script = ExtResource("1_iec42")
script = ExtResource("1_qk7lj")
frequency = 800
wpm = 12
musicVolume = 0.3
soundVolume = 0.7
musicBusStr = "Music"
soundBusStr = "Sound"
muteWhenUnfocused = true
sampleRate = 48000
morseFilename = "./morse.wav"
13 changes: 8 additions & 5 deletions LobbyScene.gd
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,29 @@ extends Node2D
@export var sendPracticeScene : String
var freeToGoBack : bool = false

func _ready():
$"/root/UtilsScene".resume_music()

func _process(_delta):

func _process(_delta: float) -> void:
if not Input.is_key_pressed(KEY_ESCAPE):
freeToGoBack = true
else:
if freeToGoBack:
get_tree().change_scene_to_file(mainMenuScene)


func _on_text_to_morse_button_button_up():
func _on_text_to_morse_button_button_up() -> void:
get_tree().change_scene_to_file(textToMorseScene)


func _on_morse_to_text_button_button_up():
func _on_morse_to_text_button_button_up() -> void:
get_tree().change_scene_to_file(morseToTextScene)


func _on_copy_practice_button_button_up():
func _on_copy_practice_button_button_up() -> void:
get_tree().change_scene_to_file(copyPracticeScene)


func _on_send_practice_button_button_up():
func _on_send_practice_button_button_up() -> void:
get_tree().change_scene_to_file(sendPracticeScene)
6 changes: 3 additions & 3 deletions MainMenuScene.gd
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ extends Node2D
@export var optionsScene : PackedScene


func _on_exit_button_button_up():
func _on_exit_button_button_up() -> void:
get_tree().quit()


func _on_options_button_button_up():
func _on_options_button_button_up() -> void:
get_tree().change_scene_to_packed(optionsScene)


func _on_play_button_button_up():
func _on_play_button_button_up() -> void:
get_tree().change_scene_to_packed(lobbyScene)
27 changes: 26 additions & 1 deletion MorseToTextScene.gd
Original file line number Diff line number Diff line change
@@ -1,8 +1,33 @@
extends Node2D

@export var lobbyScene : String
var morsePosition: float = 0.0


func _process(_delta):
func _ready():
$"/root/UtilsScene".pause_music()


func _process(_delta: float) -> void:
if Input.is_key_pressed(KEY_ESCAPE):
get_tree().change_scene_to_file(lobbyScene)


func _on_generate_button_button_up():
$"ParentMarginContainer2/ContentVerticalContainer/IOHorizontalContainer/OutputTextEdit".text = $"/root/UtilsScene".morse_to_text($"ParentMarginContainer2/ContentVerticalContainer/IOHorizontalContainer/InputTextEdit".text)
$"/root/UtilsScene".generate_morse_audio($"ParentMarginContainer2/ContentVerticalContainer/IOHorizontalContainer/OutputTextEdit".text)
$Morse.stream = $"/root/UtilsScene".load_audio_stream_from_file($"/root/GlobalVariablesScene".morseFilename)


func _on_play_button_button_up():
$Morse.play()


func _on_pause_button_button_up():
morsePosition = $Morse.get_playback_position()
$Morse.stop()


func _on_resume_button_button_up():
if not $Morse.playing:
$Morse.play(morsePosition)
121 changes: 117 additions & 4 deletions MorseToTextScene.tscn
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@
[gd_scene load_steps=3 format=3 uid="uid://dc8iowaycxaon"]
[gd_scene load_steps=6 format=3 uid="uid://dc8iowaycxaon"]

[ext_resource type="Script" path="res://MorseToTextScene.gd" id="1_jus22"]
[ext_resource type="FontFile" uid="uid://ddxvv4lqu6s2u" path="res://JetBrainsMonoNerdFontMonoRegular.ttf" id="2_kyvej"]

[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_k62ix"]
bg_color = Color(0, 0, 0, 0.392157)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10

[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v566s"]
bg_color = Color(0, 0, 0, 0.490196)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10

[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6cag6"]
bg_color = Color(0, 0, 0, 0.678431)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10

[node name="MorseToTextScene" type="Node2D"]
script = ExtResource("1_jus22")
lobbyScene = "res://LobbyScene.tscn"
Expand All @@ -12,18 +33,110 @@ offset_right = 1152.0
offset_bottom = 688.0
color = Color(0.192157, 0.192157, 0.317647, 1)

[node name="ParentMarginContainer" type="MarginContainer" parent="."]
[node name="ParentMarginContainer2" type="MarginContainer" parent="."]
offset_right = 1152.0
offset_bottom = 688.0
theme_override_constants/margin_left = 50
theme_override_constants/margin_top = 50
theme_override_constants/margin_right = 50
theme_override_constants/margin_bottom = 100

[node name="ContentVerticalContainer" type="VBoxContainer" parent="ParentMarginContainer"]
[node name="ContentVerticalContainer" type="VBoxContainer" parent="ParentMarginContainer2"]
layout_mode = 2

[node name="TitleLabel" type="Label" parent="ParentMarginContainer/ContentVerticalContainer"]
[node name="TitleLabel" type="Label" parent="ParentMarginContainer2/ContentVerticalContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_kyvej")
theme_override_font_sizes/font_size = 125
text = "Morse to Text"
horizontal_alignment = 1
vertical_alignment = 1

[node name="IOHorizontalContainer" type="HBoxContainer" parent="ParentMarginContainer2/ContentVerticalContainer"]
layout_mode = 2
size_flags_vertical = 3

[node name="InputTextEdit" type="TextEdit" parent="ParentMarginContainer2/ContentVerticalContainer/IOHorizontalContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
placeholder_text = "Enter morse to translate into text"
highlight_all_occurrences = true
highlight_current_line = true
scroll_smooth = true

[node name="OutputTextEdit" type="TextEdit" parent="ParentMarginContainer2/ContentVerticalContainer/IOHorizontalContainer"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Output will appear here"
editable = false
highlight_all_occurrences = true
highlight_current_line = true
scroll_smooth = true

[node name="ButtonsHorizontalContainer" type="HBoxContainer" parent="ParentMarginContainer2/ContentVerticalContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_constants/separation = 50

[node name="GenerateButtonMarginContainer" type="MarginContainer" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer"]
layout_mode = 2

[node name="GenerateButton" type="Button" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/GenerateButtonMarginContainer"]
layout_mode = 2
focus_mode = 0
theme_override_fonts/font = ExtResource("2_kyvej")
theme_override_font_sizes/font_size = 40
theme_override_styles/normal = SubResource("StyleBoxFlat_k62ix")
theme_override_styles/hover = SubResource("StyleBoxFlat_v566s")
theme_override_styles/pressed = SubResource("StyleBoxFlat_6cag6")
text = "Generate"

[node name="PlayButtonMarginContainer" type="MarginContainer" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer"]
layout_mode = 2

[node name="PlayButton" type="Button" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/PlayButtonMarginContainer"]
layout_mode = 2
focus_mode = 0
theme_override_fonts/font = ExtResource("2_kyvej")
theme_override_font_sizes/font_size = 40
theme_override_styles/normal = SubResource("StyleBoxFlat_k62ix")
theme_override_styles/hover = SubResource("StyleBoxFlat_v566s")
theme_override_styles/pressed = SubResource("StyleBoxFlat_6cag6")
text = "Play"

[node name="PauseButtonMarginContainer" type="MarginContainer" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer"]
layout_mode = 2

[node name="PauseButton" type="Button" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/PauseButtonMarginContainer"]
layout_mode = 2
focus_mode = 0
theme_override_fonts/font = ExtResource("2_kyvej")
theme_override_font_sizes/font_size = 40
theme_override_styles/normal = SubResource("StyleBoxFlat_k62ix")
theme_override_styles/hover = SubResource("StyleBoxFlat_v566s")
theme_override_styles/pressed = SubResource("StyleBoxFlat_6cag6")
text = "Pause"

[node name="ResumeButtonMarginContainer" type="MarginContainer" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer"]
layout_mode = 2

[node name="ResumeButton" type="Button" parent="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/ResumeButtonMarginContainer"]
layout_mode = 2
focus_mode = 0
theme_override_fonts/font = ExtResource("2_kyvej")
theme_override_font_sizes/font_size = 40
theme_override_styles/normal = SubResource("StyleBoxFlat_k62ix")
theme_override_styles/hover = SubResource("StyleBoxFlat_v566s")
theme_override_styles/pressed = SubResource("StyleBoxFlat_6cag6")
text = "Resume"

[node name="Morse" type="AudioStreamPlayer" parent="."]
bus = &"Sound"

[connection signal="button_up" from="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/GenerateButtonMarginContainer/GenerateButton" to="." method="_on_generate_button_button_up"]
[connection signal="button_up" from="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/PlayButtonMarginContainer/PlayButton" to="." method="_on_play_button_button_up"]
[connection signal="button_up" from="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/PauseButtonMarginContainer/PauseButton" to="." method="_on_pause_button_button_up"]
[connection signal="button_up" from="ParentMarginContainer2/ContentVerticalContainer/ButtonsHorizontalContainer/ResumeButtonMarginContainer/ResumeButton" to="." method="_on_resume_button_button_up"]
18 changes: 9 additions & 9 deletions OptionsScene.gd
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ extends Node2D
@export var mainMenuScene : String


func _ready():
func _ready() -> void:
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/MusicVolumeSlider.value = $"/root/GlobalVariablesScene".musicVolume
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/SoundVolumeSlider.value = $"/root/GlobalVariablesScene".soundVolume
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/FrequencySlider.value = $"/root/GlobalVariablesScene".frequency
Expand All @@ -16,30 +16,30 @@ func _ready():
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/MuteWhenUnfocusedCheckbox.button_pressed = $"/root/GlobalVariablesScene".muteWhenUnfocused


func _process(_delta):
func _process(_delta: float) -> void:
if Input.is_key_pressed(KEY_ESCAPE):
get_tree().change_scene_to_file(mainMenuScene)


func _on_music_volume_slider_value_changed(value):
$"/root/GlobalVariablesScene".set_music_volume(value)
func _on_music_volume_slider_value_changed(value: float) -> void:
$"/root/UtilsScene".set_music_volume(value)
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/MusicVolumeLabel.text = "Music Volume (" + String.num(value) + ")"


func _on_sound_volume_slider_value_changed(value):
$"/root/GlobalVariablesScene".set_sound_volume(value)
func _on_sound_volume_slider_value_changed(value: float) -> void:
$"/root/UtilsScene".set_sound_volume(value)
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/SoundVolumeLabel.text = "Sound Volume (" + String.num(value) + ")"


func _on_frequency_slider_value_changed(value):
func _on_frequency_slider_value_changed(value: float) -> void:
$"/root/GlobalVariablesScene".frequency = value
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/FrequencyLabel.text = "Frequency (" + String.num(value) + ")"


func _on_wpm_slider_value_changed(value):
func _on_wpm_slider_value_changed(value: float) -> void:
$"/root/GlobalVariablesScene".wpm = value
$ParentMarginContainer/ContentVerticalContainer/SettingsVerticalContainer/WPMLabel.text = "WPM (" + String.num(value) + ")"


func _on_check_box_toggled(button_pressed):
func _on_check_box_toggled(button_pressed: bool) -> void:
$"/root/GlobalVariablesScene".muteWhenUnfocused = button_pressed
6 changes: 5 additions & 1 deletion SendPracticeScene.gd
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ extends Node2D
@export var lobbyScene : String


func _process(_delta):
func _ready():
$"/root/UtilsScene".pause_music()


func _process(_delta: float) -> void:
if Input.is_key_pressed(KEY_ESCAPE):
get_tree().change_scene_to_file(lobbyScene)
Loading

0 comments on commit 27cd837

Please sign in to comment.