more options yippeee!!

This commit is contained in:
Tabby 2026-06-01 17:10:16 +10:00
parent 960c0277ae
commit 278cddcf22
5 changed files with 120 additions and 20 deletions

View file

@ -10,6 +10,13 @@ enum Position {
Left,
}
enum Styles {
Filling,
Filling_Reversed,
Emptying,
Emptying_Reversed,
}
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
print("looking for save...")

View file

@ -3,6 +3,7 @@ extends Node
func time_to_seconds(hours_value : int, minutes_value : int) -> int:
var hour_seconds : int = hours_value * 60 * 60
var minutes_seconds : int = minutes_value * 60
#print(hour_seconds + minutes_seconds)
return hour_seconds + minutes_seconds
func seconds_to_time(seconds : int) -> Dictionary:

View file

@ -128,7 +128,7 @@ grow_vertical = 2
text = "12:34 Remaining Until Sleepy time, there is alot of space for text you can work with here meow meow meow meow"
label_settings = SubResource("LabelSettings_h2yge")
[node name="Options Window" type="Window" parent="." unique_id=1651073981 node_paths=PackedStringArray("sleep_h", "sleep_m", "duration_h", "duration_m", "size_label", "size_slider", "bar_color", "background_color", "warning_color", "trans_label", "trans_slider")]
[node name="Options Window" type="Window" parent="." unique_id=1651073981 node_paths=PackedStringArray("sleep_h", "sleep_m", "duration_h", "duration_m", "size_label", "size_slider", "bar_color", "background_color", "warning_color", "trans_label", "trans_slider", "warning_h", "warning_m", "flash_check", "before_h", "before_m", "after_h", "after_m", "style_dropdown", "position_dropdown")]
oversampling_override = 1.0
title = "SleepyClock Options"
initial_position = 1
@ -149,6 +149,15 @@ background_color = NodePath("MarginContainer/VBoxContainer/GridContainer/backgro
warning_color = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer4/warningColor")
trans_label = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer7/transLabel")
trans_slider = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer7/transSlider")
warning_h = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer4/warningH")
warning_m = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer4/warningM")
flash_check = NodePath("MarginContainer/VBoxContainer/GridContainer/flashCheck")
before_h = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer5/beforeH")
before_m = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer5/beforeM")
after_h = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer6/afterH")
after_m = NodePath("MarginContainer/VBoxContainer/GridContainer/HBoxContainer6/afterM")
style_dropdown = NodePath("MarginContainer/VBoxContainer/GridContainer/styleDropdown")
position_dropdown = NodePath("MarginContainer/VBoxContainer/GridContainer/positionDropdown")
[node name="MarginContainer" type="MarginContainer" parent="Options Window" unique_id=426909220]
anchors_preset = 15
@ -317,7 +326,6 @@ layout_mode = 2
size_flags_horizontal = 3
max_value = 23.0
value = 1.0
editable = false
suffix = "h"
select_all_on_focus = true
@ -325,7 +333,6 @@ select_all_on_focus = true
layout_mode = 2
size_flags_horizontal = 3
max_value = 59.0
editable = false
suffix = "m"
select_all_on_focus = true
@ -338,7 +345,6 @@ text = "flash bar when time ends 🛈"
[node name="flashCheck" type="CheckButton" parent="Options Window/MarginContainer/VBoxContainer/GridContainer" unique_id=1168112585]
layout_mode = 2
size_flags_horizontal = 4
disabled = true
[node name="Label8" type="Label" parent="Options Window/MarginContainer/VBoxContainer/GridContainer" unique_id=280072151]
layout_mode = 2
@ -349,11 +355,17 @@ text = "Display before time starts 🛈"
[node name="HBoxContainer5" type="HBoxContainer" parent="Options Window/MarginContainer/VBoxContainer/GridContainer" unique_id=2104802150]
layout_mode = 2
[node name="beforeH" type="SpinBox" parent="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer5" unique_id=239006734]
layout_mode = 2
size_flags_horizontal = 3
max_value = 23.0
suffix = "h"
select_all_on_focus = true
[node name="beforeM" type="SpinBox" parent="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer5" unique_id=157077084]
layout_mode = 2
size_flags_horizontal = 3
max_value = 59.0
editable = false
suffix = "m"
select_all_on_focus = true
@ -366,14 +378,39 @@ text = "Display after time ends 🛈"
[node name="HBoxContainer6" type="HBoxContainer" parent="Options Window/MarginContainer/VBoxContainer/GridContainer" unique_id=1503325100]
layout_mode = 2
[node name="afterH" type="SpinBox" parent="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer6" unique_id=514335276]
layout_mode = 2
size_flags_horizontal = 3
max_value = 23.0
suffix = "h"
select_all_on_focus = true
[node name="afterM" type="SpinBox" parent="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer6" unique_id=1517063919]
layout_mode = 2
size_flags_horizontal = 3
max_value = 59.0
editable = false
suffix = "m"
select_all_on_focus = true
[node name="Label12" type="Label" parent="Options Window/MarginContainer/VBoxContainer/GridContainer" unique_id=900821531]
layout_mode = 2
tooltip_text = "Filling or Emptying changed weather the bar grows or shrinks over time. Reversed swaps the diretion of the bars movement"
mouse_filter = 1
text = "Progress Style 🛈"
[node name="styleDropdown" type="OptionButton" parent="Options Window/MarginContainer/VBoxContainer/GridContainer" unique_id=1485870511]
layout_mode = 2
selected = 0
item_count = 4
popup/item_0/text = "Filling"
popup/item_0/id = 0
popup/item_1/text = "Filling Reversed"
popup/item_1/id = 1
popup/item_2/text = "Emptying"
popup/item_2/id = 2
popup/item_3/text = "Emptying Reversed"
popup/item_3/id = 3
[node name="Label2" type="Label" parent="Options Window/MarginContainer/VBoxContainer" unique_id=201796106]
layout_mode = 2
text = "todo:
@ -410,5 +447,12 @@ text = "Save"
[connection signal="color_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/barColor" to="Options Window" method="_on_bar_color_color_changed"]
[connection signal="color_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/backgroundColor" to="Options Window" method="_on_background_color_color_changed"]
[connection signal="color_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer4/warningColor" to="Options Window" method="_on_warning_color_color_changed"]
[connection signal="value_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer4/warningH" to="Options Window" method="_on_warning_value_changed"]
[connection signal="toggled" from="Options Window/MarginContainer/VBoxContainer/GridContainer/flashCheck" to="Options Window" method="_on_flash_check_toggled"]
[connection signal="value_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer5/beforeH" to="Options Window" method="_on_before_value_changed"]
[connection signal="value_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer5/beforeM" to="Options Window" method="_on_before_value_changed"]
[connection signal="value_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer6/afterH" to="Options Window" method="_on_after_value_changed"]
[connection signal="value_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer6/afterM" to="Options Window" method="_on_after_value_changed"]
[connection signal="item_selected" from="Options Window/MarginContainer/VBoxContainer/GridContainer/styleDropdown" to="Options Window" method="_on_style_dropdown_item_selected"]
[connection signal="pressed" from="Options Window/MarginContainer/VBoxContainer/HBoxContainer/cancelButton" to="Options Window" method="_on_cancel_button_pressed"]
[connection signal="pressed" from="Options Window/MarginContainer/VBoxContainer/HBoxContainer/saveButton" to="Options Window" method="_on_save_button_pressed"]

View file

@ -13,6 +13,15 @@ signal options_changed
@export var warning_color: ColorPickerButton
@export var trans_label: Label
@export var trans_slider: HSlider
@export var warning_h: SpinBox
@export var warning_m: SpinBox
@export var flash_check: CheckButton
@export var before_h: SpinBox
@export var before_m: SpinBox
@export var after_h: SpinBox
@export var after_m: SpinBox
@export var style_dropdown: OptionButton
@export var position_dropdown: OptionButton
func _init() -> void:
@ -57,32 +66,38 @@ func _on_save_button_pressed() -> void:
func _on_visibility_changed() -> void:
#populate form
#print(Data.save.end_time)
sleep_h.value = int(Data.save.end_time/(60*60))
sleep_m.value = int((Data.save.end_time-sleep_h.value*60*60)/60)
duration_h.value = int(Data.save.duration/(60*60))
duration_m.value = int((Data.save.duration-duration_h.value*60*60)/60)
var sleep_dict : Dictionary = Tools.seconds_to_time(int(Data.save.end_time))
sleep_h.value = sleep_dict.get("h")
sleep_m.value = sleep_dict.get("m")
var duration_dict : Dictionary = Tools.seconds_to_time(int(Data.save.duration))
duration_h.value = duration_dict.get("h")
duration_m.value = duration_dict.get("m")
var warning_time_dict : Dictionary = Tools.seconds_to_time(int(Data.save.warning_time))
warning_h.value = warning_time_dict.get("h")
warning_m.value = warning_time_dict.get("m")
var before_time_dict : Dictionary = Tools.seconds_to_time(int(Data.save.before_time))
before_h.value = before_time_dict.get("h")
before_m.value = before_time_dict.get("m")
var after_time_dict : Dictionary = Tools.seconds_to_time(int(Data.save.after_time))
after_h.value = after_time_dict.get("h")
after_m.value = after_time_dict.get("m")
size_slider.value = Data.save.size
bar_color.color = Data.save.bar_color
background_color.color = Data.save.background_color
warning_color.color = Data.save.warning_color
trans_slider.value = Data.save.bar_transparency
flash_check.button_pressed = Data.save.flashing
position_dropdown.select(Data.save.position)
style_dropdown.select(Data.save.progress_style)
pass # Replace with function body.
func _on_duration_value_changed(value: float) -> void:
var duration_seconds : float = 0
duration_seconds += duration_h.value * 60 * 60
duration_seconds += duration_m.value * 60
Data.save.duration = duration_seconds
pass # Replace with function body.
Data.save.duration = Tools.time_to_seconds(int(duration_h.value),int(duration_m.value))
func _on_sleep_value_changed(value: float) -> void:
var end_seconds : float = 0
end_seconds += sleep_h.value * 60 * 60
end_seconds += sleep_m.value * 60
Data.save.end_time = end_seconds
pass # Replace with function body.
Data.save.end_time = Tools.time_to_seconds(int(sleep_h.value),int(sleep_m.value))
func _on_size_slider_value_changed(value: float) -> void:
@ -116,3 +131,31 @@ func _on_warning_color_color_changed(color: Color) -> void:
func _on_trans_slider_value_changed(value: float) -> void:
Data.save.bar_transparency = value
options_changed.emit()
func _on_warning_value_changed(value: float) -> void:
Data.save.warning_time = Tools.time_to_seconds(int(warning_h.value),int(warning_m.value))
func _on_flash_check_toggled(toggled_on: bool) -> void:
Data.save.flashing = toggled_on
func _on_before_value_changed(value: float) -> void:
Data.save.before_time = Tools.time_to_seconds(int(before_h.value),int(before_m.value))
func _on_after_value_changed(value: float) -> void:
Data.save.after_time = Tools.time_to_seconds(int(after_h.value),int(after_m.value))
func _on_style_dropdown_item_selected(index: int) -> void:
if index == 0:
Data.save.progress_style = Data.Styles.Filling
elif index == 1:
Data.save.progress_style = Data.Styles.Filling_Reversed
elif index == 2:
Data.save.progress_style = Data.Styles.Emptying
elif index == 3:
Data.save.progress_style = Data.Styles.Emptying_Reversed
options_changed.emit()

View file

@ -10,3 +10,8 @@ class_name SleepyclockSave
@export var bar_color : Color = Color.DODGER_BLUE
@export var warning_color : Color = Color.RED
@export var bar_transparency : float = 0.5
@export var warning_time : float = 3600
@export var before_time : float = 86340
@export var after_time : float = 86340
@export var flashing : bool = true
@export var progress_style : Data.Styles = Data.Styles.Filling