diff --git a/Tools.gd b/Tools.gd index 055ea67..523864e 100644 --- a/Tools.gd +++ b/Tools.gd @@ -9,5 +9,6 @@ func time_to_seconds(hours_value : int, minutes_value : int) -> int: func seconds_to_time(seconds : int) -> Dictionary: var hours : int = floori(float(seconds)/3600) var minutes : int = int(float(seconds % 3600)/60) - return {"h":hours,"m":minutes} + var just_seconds : int = int(float(seconds % 60)) + return {"h":hours,"m":minutes,"s":just_seconds} diff --git a/clock.gd b/clock.gd index 89895bc..84ce92a 100644 --- a/clock.gd +++ b/clock.gd @@ -51,6 +51,10 @@ func setup_window(): background.color = Data.save.background_color modulate = Color(1,1,1,Data.save.bar_transparency) + if Data.save.progress_style == Data.Styles.Filling or Data.save.progress_style == Data.Styles.Emptying: + bar.fill_mode = bar.FillMode.FILL_LEFT_TO_RIGHT + else: + bar.fill_mode = bar.FillMode.FILL_RIGHT_TO_LEFT # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: @@ -97,17 +101,35 @@ func _process(delta: float) -> void: bar.max_value = Data.save.duration bar.min_value = 0 - bar.value = Data.save.duration - seconds_left + + if Data.save.progress_style == Data.Styles.Filling or Data.save.progress_style == Data.Styles.Filling_Reversed: + bar.value = Data.save.duration - seconds_left + else: + bar.value = seconds_left #print("bar value: " + str(bar.value)) #label.text = Time.get_datetime_string_from_system() #Time. #print(current_day) - if (seconds_left <= 3600): + if (seconds_left <= Data.save.warning_time): bar.modulate = Data.save.warning_color else: bar.modulate = Data.save.bar_color + if seconds_left > 82800 and Data.save.flashing: + var effect : float = (sin(seconds_left*3)) + modulate = Color(effect,effect,effect,effect) + else: + modulate = Color(1,1,1,Data.save.bar_transparency) + + if seconds_left > Data.save.duration + Data.save.before_time and seconds_left < 86400 - Data.save.after_time: + hide() + else: + show() + + var time_left_dict : Dictionary = Tools.seconds_to_time(int(seconds_left)) + var time_string : String = str(time_left_dict.get("h")) + ":" + str(time_left_dict.get("m")).pad_zeros(2) + ":" + str(time_left_dict.get("s")).pad_zeros(2) + label.text = time_string + " Remaining until sleepytime" #var screen_size : Vector2i = DisplayServer.screen_get_size() #DisplayServer.window_set_size(Vector2i(screen_size.x, 10)) #get_window().size = Vector2i(screen_size.x, 10) diff --git a/main.tscn b/main.tscn index fa37ebc..d965ff8 100644 --- a/main.tscn +++ b/main.tscn @@ -414,8 +414,7 @@ popup/item_3/id = 3 [node name="Label2" type="Label" parent="Options Window/MarginContainer/VBoxContainer" unique_id=201796106] layout_mode = 2 text = "todo: -- warning threshold -- display before/after time +- configure safe zones top/bottom - text to display inside bar" label_settings = SubResource("LabelSettings_1bvp3") @@ -448,6 +447,7 @@ text = "Save" [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="value_changed" from="Options Window/MarginContainer/VBoxContainer/GridContainer/HBoxContainer4/warningM" 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"]