extends Control signal SlotNameClicked; var imagesFolder = OS.get_user_data_dir() + "/slotImages/"; var slotNumber; var width = 1920 * 3.0 / 10.0; var height = 1080 * 3.0 / 10.0; var isDisabled; var thread; func Init(slotnumber:String, slotName:String): $SlotName.text = slotName; slotNumber = slotnumber; thread = Thread.new(); thread.start(self, "UpdateImage"); var font = $SlotName.get_font("font").duplicate(); $SlotName.add_font_override("font", font); func CheckIfDisabled(): var folderName; match slotNumber: "AutosaveNormal": folderName = OS.get_user_data_dir() + "/dialogic/AutosaveNormal"; "AutosaveCasual": folderName = OS.get_user_data_dir() + "/dialogic/AutosaveCasual"; _: folderName = OS.get_user_data_dir() + "/dialogic/slot" + slotNumber; var directory = Directory.new(); if not directory.dir_exists(folderName): Disable(); func ResizeForInGame(): width = 384; height = 216; rect_size = Vector2(width, height); $SlotName.rect_size = Vector2(width, height); $Date.rect_size.x = width; $Date.rect_position.y = height - 56; $Date.get_font("font").size = 38; func Disable(): isDisabled = true; $SlotName.set("custom_colors/font_color", Color(0.6, 0.6, 0.6, 255)) func Enable(): isDisabled = false; func UpdateImage(): var imagePath = str(imagesFolder, slotNumber, ".png"); var file = File.new(); if file.file_exists(imagePath): var dateTime = OS.get_datetime_from_unix_time(file.get_modified_time(imagePath)); var utcDiff = OS.get_datetime(false).hour - OS.get_datetime(true).hour; if utcDiff + dateTime.hour >= 24: dateTime.day += 1; dateTime.hour = utcDiff + dateTime.hour - 24; elif utcDiff + dateTime.hour < 0: dateTime.day -= 1; dateTime.hour = utcDiff + dateTime.hour + 24; var strDate = "%1d.%02d.%02d %02d:%02d" % [dateTime.day, dateTime.month, dateTime.year, dateTime.hour + utcDiff, dateTime.minute] $Date.text = str(strDate); var image = Image.new() image.load(imagePath) image.flip_y() var t = ImageTexture.new() t.create_from_image(image) $SlotImage.texture_normal = t; var scaleValue = width / 1920.0; $SlotImage.rect_scale = Vector2(scaleValue, scaleValue); else : $SlotImage.rect_size = Vector2(width, height); func _on_SlotImage_button_up(): if not isDisabled: emit_signal("SlotNameClicked"); func _on_SlotImage_mouse_entered(): if not isDisabled: $SlotName.get("custom_fonts/font").outline_color = Color(213, 55, 29, 255) $SlotName.set("custom_colors/font_color", Color(0, 0, 0, 255)) func _on_SlotImage_mouse_exited(): if not isDisabled: $SlotName.get("custom_fonts/font").outline_color = Color(0, 0, 0, 255) $SlotName.set("custom_colors/font_color", Color(213, 55, 29, 255)); func _exit_tree(): thread.wait_to_finish();