108 lines
2.7 KiB
GDScript
108 lines
2.7 KiB
GDScript
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();
|