extends Node2D

var StartingTime = Time.get_datetime_dict_from_system()
var CurrentTime = Time.get_datetime_dict_from_system()
var SystemTime: int

func _ready():
	if GlobalVars.BusyTimeUpgrades[0] == 1:
		get_node("Seconds").modulate = Color(1, 0, 0, 1)
		get_node("Seconds/Time").modulate = Color(1, 0, 0, 1)
	if GlobalVars.BusyTimeUpgrades[1] == 1:
		get_node("Minutes").modulate = Color(1, 1, 0, 1)
		get_node("Minutes/Time").modulate = Color(1, 1, 0, 1)
	if GlobalVars.BusyTimeUpgrades[2] == 1:
		get_node("Hours").modulate = Color(0, 1, 0, 1)
		get_node("Hours/Time").modulate = Color(0, 1, 0, 1)
	if GlobalVars.BusyTimeUpgrades[3] == 1:
		get_node("Days").modulate = Color(0, 1, 1, 1)
		get_node("Days/Time").modulate = Color(0, 1, 1, 1)
	if GlobalVars.BusyTimeUpgrades[4] == 1:
		get_node("Months").modulate = Color(0, 0, 1, 1)
		get_node("Months/Time").modulate = Color(0, 0, 1, 1)
	if GlobalVars.BusyTimeUpgrades[5] == 1:
		get_node("Years").modulate = Color(1, 0, 1, 1)
		get_node("Years/Time").modulate = Color(1, 0, 1, 1)

func _process(_delta):
	# Calculations to get current time.
	CurrentTime = Time.get_datetime_dict_from_system()
	SystemTime = int((CurrentTime["second"] - StartingTime["second"]) + ((CurrentTime["minute"] - StartingTime["minute"]) * 60) + ((CurrentTime["hour"] - StartingTime["hour"]) * 3600) + ((CurrentTime["day"] - StartingTime["day"]) * 86400) + ((CurrentTime["month"] - StartingTime["month"]) * 2592000) + ((CurrentTime["year"] - StartingTime["year"]) * 933120000))
	
	# Ease-of-use variables
	@warning_ignore("integer_division")
	var Years = int(SystemTime / 933120000)
	if Years > 0:
		SystemTime = int(SystemTime % 933120000)
	@warning_ignore("integer_division")
	var Months = int(SystemTime / 2592000)
	if Months > 0:
		SystemTime = SystemTime % 2592000
	@warning_ignore("integer_division")
	var Days = int(SystemTime / 86400)
	if Days > 0:
		SystemTime = SystemTime % 86400
	@warning_ignore("integer_division")
	var Hours = int(SystemTime / 3600)
	if Hours > 0:
		SystemTime = SystemTime % 3600
	@warning_ignore("integer_division")
	var Minutes = int(SystemTime / 60)
	if Minutes > 0:
		SystemTime = SystemTime % 60
	var Seconds = int(SystemTime)
	
	# Now display everything
	get_node("Seconds/Time").text = str(Seconds)
	get_node("Minutes/Time").text = str(Minutes)
	get_node("Hours/Time").text = str(Hours)
	get_node("Days/Time").text = str(Days)
	get_node("Months/Time").text = str(Months)
	get_node("Years/Time").text = str(Years)

# Controls leaving of the game
func _on_done_pressed():
	GlobalVars.Gold = GlobalVars.LoadSingle("user://Money")
	SystemTime = int((CurrentTime["second"] - StartingTime["second"]) + ((CurrentTime["minute"] - StartingTime["minute"]) * 60) + ((CurrentTime["hour"] - StartingTime["hour"]) * 3600) + ((CurrentTime["day"] - StartingTime["day"]) * 86400) + ((CurrentTime["month"] - StartingTime["month"]) * 2592000) + ((CurrentTime["year"] - StartingTime["year"]) * 933120000))
	@warning_ignore("integer_division")
	GlobalVars.ChangeMoney(int(SystemTime / 100))
	GlobalVars.SaveSingle(GlobalVars.Gold, "user://Money")
	get_tree().change_scene_to_file("res://Menu Stuffs/Scene/Main Menu.tscn")