One_Eleven_Android/scripts/CustomControls/SaveSlot.gd
2024-11-10 03:34:28 +03:00

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();