time-sampling-form/godot/main_screen.gd

163 lines
5.6 KiB
GDScript

extends CanvasLayer
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"
onready var date_time_display = $"%CurrentTime"
onready var global_ints = $"/root/GlobalInts"
onready var minute_label = $"StartScreen/InstructionPanel/MinuteBox/MinuteLabel"
func check_for_updates():
var os_check : String
os_check = OS.get_name()
print(os_check)
if os_check == "X11" and "Windows" and "OSX":
print("We're on desktop. So let's check for updates!")
$"%HTTPRequest".request(csv_url)
func _on_HTTPRequest_request_completed(_result, _response_code, _headers, body):
var json = JSON.parse(body.get_string_from_utf8())
global_ints.web_release_version = json.result
if global_ints.web_release_version > global_ints.release_version:
print("There's an update!")
# elif global_ints.web_release_version == global_ints.release_version:
# print("There is no update!")
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 _ready():
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
global_ints.date = OS.get_date()
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 = OS.get_time()
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("https://www.internationalsengroup.org/resources/time-sampling-form/")
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 = OS.get_time()
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