2023-10-05 22:52:48 +00:00
extends CanvasLayer
const RATIO = 720.0 / 1280.0
var date_time
var check_time_var : int
var ddmmyyyy : String
var date
2023-10-08 02:02:37 +00:00
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 "
2023-10-05 22:52:48 +00:00
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
$ " %1E xplanation " . text = global_ints . one_explanation
$ " %1E xplanationE " . text = $ " %1E xplanation " . text
$ " %2E xplanation " . text = global_ints . two_explanation
$ " %2E xplanationE " . text = $ " %2E xplanation " . text
$ " %3E xplanation " . text = global_ints . three_explanation
$ " %3E xplanationE " . text = $ " %3E xplanation " . text
$ " %4E xplanation " . text = global_ints . four_explanation
$ " %4E xplanationE " . text = $ " %4E xplanation " . text
$ " %5E xplanation " . text = global_ints . five_explanation
$ " %5E xplanationE " . text = $ " %5E xplanation " . 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