extends CanvasLayer const RATIO = 720.0 / 1280.0 var date_time var check_time_var : int var ddmmyyyy : String var date var csv_url = "https://raw.githubusercontent.com/hobbesjaap/time-sampling-form/main/version_info.csv" var update_text_url = "https://raw.githubusercontent.com/hobbesjaap/time-sampling-form/main/updater/update_text.md" var update_text : String @onready var date_time_display = $"%CurrentTime" @onready var global_ints = $"/root/GlobalInts" @onready var minute_label = $"StartScreen/InstructionPanel/MinuteBox/MinuteLabel" #func set_window_aspect_ratio(): # OS.window_size = Vector2(OS.window_size.x, OS.window_size.x * RATIO) # var screen_size = DisplayServer.screen_get_size() # var window = get_editor_interface().get_window() # window.mode = Window.MODE_WINDOWED # window.position = Vector2i(-8, 0) # window.size = Vector2i(screen_size.x - 66, screen_size.y - 1) func check_for_updates(): var os_check : String os_check = OS.get_name() print(os_check) if os_check == "Linux" and "Windows" and "OSX": 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): 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,".") func _on_HTTPRequest2_request_completed(_result, _response_code, _headers, _body): # Need to find a way to load .txt file contents from a URL into a label. This to show what the update changes are. # var json = JSON.parse(body.get_string_from_utf8()) # update_text = str(json.result) pass func refresh_descriptors(): $"%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_manual_url(): 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 _ready(): 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 set_manual_url() print(TranslationServer.get_locale()) 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) check_for_updates() func _process(_delta): check_time_var += 1 if check_time_var == 10: check_time_var = 0 date_time = Time.get_datetime_dict_from_system() if date_time.minute < 10: date_time_display.text = str(date_time.hour, ":0", date_time.minute) if date_time.minute >= 10: date_time_display.text = str(date_time.hour, ":", date_time.minute) func _on_MinuteMinus_pressed(): if global_ints.observation_minutes >= 2: global_ints.observation_minutes -= 1 minute_label.text = str(global_ints.observation_minutes) func _on_MinutePlus_pressed(): if global_ints.observation_minutes < 60: global_ints.observation_minutes += 1 minute_label.text = str(global_ints.observation_minutes) func _on_Manual_pressed(): var _error = OS.shell_open(global_ints.manual_url) func _on_PupilName_pressed(): $"%NameLine".text = global_ints.observed_person_name $"%InstructionPanel".visible = false $"%NameChangePanel".visible = true func _on_Start_pressed(): $"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(): $"EditScreen".visible = true func _on_InsOkButton_pressed(): $"%InstructionScreen".visible = false func _on_MinuteMinus_button_down(): # if global_ints.observation_minutes >= 2: # global_ints.observation_minutes -= 1 # minute_label.text = str(global_ints.observation_minutes) pass func _on_GoToUpdate_pressed(): var _error = OS.shell_open("https://github.com/hobbesjaap/time-sampling-form/releases") func _on_IgnoreUpdate_pressed(): $"%UpdatePanel".visible = false