extends CanvasLayer var check_time_var : int var csv_url = "https://raw.githubusercontent.com/hobbesjaap/time-sampling-form/main/updater/version_info.csv" var update_text_url = "https://raw.githubusercontent.com/hobbesjaap/time-sampling-form/main/updater/update_text.md" var update_text : String var text_buffer : String @onready var date_time_display = $"%CurrentTime" @onready var global_ints = $"/root/GlobalInts" @onready var minute_label = $"StartScreen/InstructionPanel/MinuteBox/MinuteLabel" func check_for_updates() -> void: var os_list : Array = ["Linux", "Windows", "macOS", "OSX"] if os_list.has(OS.get_name()): print("We're on desktop. So let's check for updates!") $"%HTTPRequest".request(csv_url) $"%HTTPRequest2".request(update_text_url) func _on_HTTPRequest_request_completed(_result, _response_code, _headers, body) -> void: var test_json_conv = JSON.new() test_json_conv.parse(body.get_string_from_utf8()) var json = test_json_conv.get_data() global_ints.web_release_version = json if global_ints.web_release_version > global_ints.release_version: print("There's an update!") $"%UpdatePanel".visible = true $"%UpdateText".text = str(update_text) $"%UpdateIntro".text = str("You are currently using version ",global_ints.release_version,". The latest version available is ",global_ints.web_release_version,".") if global_ints.web_release_version <= global_ints.release_version: print("No update available!") func _on_HTTPRequest2_request_completed(_result, _response_code, _headers, body) -> void: var test_json_conv = JSON.new() test_json_conv.parse(body.get_string_from_utf8()) var json = test_json_conv.get_data() global_ints.update_text = json func refresh_descriptors() -> void: $"%1Acronym".text = global_ints.one_acronym $"%1AcronymE".text = $"%1Acronym".text $"%2Acronym".text = global_ints.two_acronym $"%2AcronymE".text = $"%2Acronym".text $"%3Acronym".text = global_ints.three_acronym $"%3AcronymE".text = $"%3Acronym".text $"%4Acronym".text = global_ints.four_acronym $"%4AcronymE".text = $"%4Acronym".text $"%5Acronym".text = global_ints.five_acronym $"%5AcronymE".text = $"%5Acronym".text $"%1Item".text = global_ints.one_behaviour $"%1ItemE".text = $"%1Item".text $"%2Item".text = global_ints.two_behaviour $"%2ItemE".text = $"%2Item".text $"%3Item".text = global_ints.three_behaviour $"%3ItemE".text = $"%3Item".text $"%4Item".text = global_ints.four_behaviour $"%4ItemE".text = $"%4Item".text $"%5Item".text = global_ints.five_behaviour $"%5ItemE".text = $"%5Item".text $"%1Explanation".text = global_ints.one_explanation $"%1ExplanationE".text = $"%1Explanation".text $"%2Explanation".text = global_ints.two_explanation $"%2ExplanationE".text = $"%2Explanation".text $"%3Explanation".text = global_ints.three_explanation $"%3ExplanationE".text = $"%3Explanation".text $"%4Explanation".text = global_ints.four_explanation $"%4ExplanationE".text = $"%4Explanation".text $"%5Explanation".text = global_ints.five_explanation $"%5ExplanationE".text = $"%5Explanation".text func set_language() -> void: print(TranslationServer.get_locale()) if TranslationServer.get_locale() != "nl": print("We're not Dutch") global_ints.manual_url = "https://docs.internationalsengroup.org/tsf.html" if TranslationServer.get_locale() == "nl": print("We're Dutch") global_ints.manual_url = "https://www.lerenleukermaken.nl/" func update_date() -> void: global_ints.date = Time.get_datetime_dict_from_system() global_ints.ddmmyyyy = str(global_ints.date.day, "-", global_ints.date.month, "-", global_ints.date.year) func _ready() -> void: DisplayServer.window_set_min_size(Vector2i(1280, 720)) minute_label.text = str(global_ints.observation_minutes) global_ints.observed_person_name = "" refresh_descriptors() $"StartScreen".visible = true $"%NameChangePanel".visible = true $"%InstructionScreen".visible = true $"%WarningLabel".visible = false $"ObservationWindow".visible = false $"Results".visible = false $"EditScreen".visible = false $"%UpdatePanel".visible = false update_date() set_language() check_for_updates() func _process(_delta) -> void: check_time_var += 1 if check_time_var == 10: check_time_var = 0 if global_ints.date.minute < 10: date_time_display.text = str(global_ints.date.hour, ":0", global_ints.date.minute) if global_ints.date.minute >= 10: date_time_display.text = str(global_ints.date.hour, ":", global_ints.date.minute) func _on_MinuteMinus_pressed() -> void: if global_ints.observation_minutes >= 2: global_ints.observation_minutes -= 1 minute_label.text = str(global_ints.observation_minutes) func _on_MinutePlus_pressed() -> void: if global_ints.observation_minutes < 60: global_ints.observation_minutes += 1 minute_label.text = str(global_ints.observation_minutes) func _on_Manual_pressed() -> void: var _error = OS.shell_open(global_ints.manual_url) func _on_PupilName_pressed() -> void: $"%NameLine".text = global_ints.observed_person_name $"%InstructionPanel".visible = false $"%NameChangePanel".visible = true func _on_Start_pressed() -> void: $"StartScreen".visible = false refresh_descriptors() $"ObservationWindow".visible = true $"%BehaviourOne".text = global_ints.one_acronym $"%BehaviourTwo".text = global_ints.two_acronym $"%BehaviourThree".text = global_ints.three_acronym $"%BehaviourFour".text = global_ints.four_acronym $"%BehaviourFive".text = global_ints.five_acronym $"%BTitle1".text = global_ints.one_behaviour $"%BTitle2".text = global_ints.two_behaviour $"%BTitle3".text = global_ints.three_behaviour $"%BTitle4".text = global_ints.four_behaviour $"%BTitle5".text = global_ints.five_behaviour $"%ObsTitle1".text = global_ints.one_behaviour $"%ObsTitle2".text = global_ints.two_behaviour $"%ObsTitle3".text = global_ints.three_behaviour $"%ObsTitle4".text = global_ints.four_behaviour $"%ObsTitle5".text = global_ints.five_behaviour global_ints.locked_observation_minutes = global_ints.observation_minutes global_ints.locked_observation_intervals = global_ints.locked_observation_minutes * 3 global_ints.locked_observations_intervals_remaining = global_ints.locked_observation_intervals $"%ObservationsTotal".text = str(global_ints.locked_observation_intervals) $"%ObservationsRemaining".text = str(global_ints.locked_observations_intervals_remaining) var obs_date_time = Time.get_datetime_dict_from_system() if obs_date_time.minute < 10: global_ints.observation_start_time = str(obs_date_time.hour, ":0", obs_date_time.minute) if obs_date_time.minute >= 10: global_ints.observation_start_time = str(obs_date_time.hour, ":", obs_date_time.minute) $"%TwentySecondTimer".start(global_ints.timer_duration) func _on_ChangeItems_pressed() -> void: $"EditScreen".visible = true func _on_InsOkButton_pressed() -> void: $"%InstructionScreen".visible = false func _on_MinuteMinus_button_down() -> void: # if global_ints.observation_minutes >= 2: # global_ints.observation_minutes -= 1 # minute_label.text = str(global_ints.observation_minutes) pass func _on_GoToUpdate_pressed() -> void: var _error = OS.shell_open("https://github.com/hobbesjaap/time-sampling-form/releases") func _on_IgnoreUpdate_pressed() -> void: $"%UpdatePanel".visible = false