Add write_temporary_file() method
This commit is contained in:
parent
06b83a0589
commit
aa3c1ecd30
1 changed files with 20 additions and 9 deletions
|
@ -18,6 +18,7 @@ extends Node
|
|||
|
||||
const version: int = 1
|
||||
const version_float: float = float(version)
|
||||
const temporary_file: String = "user://temporary_file"
|
||||
|
||||
@onready var core: Core = get_node("/root/CORE")
|
||||
@onready var logger: CoreLoggerInstance = core.logger.get_instance("src/presenloader.gd", self)
|
||||
|
@ -209,16 +210,9 @@ func load_entrypoint() -> String:
|
|||
if is_file:
|
||||
# Workaround (we can't load resources from buffer. why? idk)
|
||||
# -> Remove temporary file (if exists)
|
||||
if FileAccess.file_exists("user://entrypoint.gd"):
|
||||
DirAccess.remove_absolute("user://entrypoint.gd")
|
||||
# -> Write entrypoint file (buffer from ZIPReader) into temporary file
|
||||
var file: FileAccess = FileAccess.open("user://entrypoint.gd", FileAccess.WRITE)
|
||||
if file == null:
|
||||
return core.misc.stringify_variables("Can't write temporary entrypoint: %error_string% (%error%)", { "error": FileAccess.get_open_error(), "error_string": error_string(FileAccess.get_open_error()) })
|
||||
file.store_buffer(reader.read_file("src/" + manifest["entrypoint"]))
|
||||
file.close()
|
||||
write_temporary_file(reader.read_file("src/" + manifest["entrypoint"]))
|
||||
# -> Load temporary file
|
||||
entrypoint = ResourceLoader.load("user://entrypoint.gd")
|
||||
entrypoint = ResourceLoader.load(temporary_file)
|
||||
else:
|
||||
# Load entrypoint
|
||||
entrypoint = ResourceLoader.load(path + "/src/" + manifest["entrypoint"])
|
||||
|
@ -243,3 +237,20 @@ func inject_entrypoint() -> void:
|
|||
|
||||
# Execute initialize()
|
||||
await entrypoint_node.initialize()
|
||||
|
||||
# +++ etc +++
|
||||
func write_temporary_file(bytes: PackedByteArray) -> void:
|
||||
# Check if exists, if so delete the file
|
||||
if FileAccess.file_exists(temporary_file):
|
||||
logger.diag("Removing temporary file")
|
||||
|
||||
# Open
|
||||
var file: FileAccess = FileAccess.open(temporary_file, FileAccess.WRITE)
|
||||
if file == null:
|
||||
await logger.crash(core.misc.stringify_variables("Can't write temporary file: %error_string% (%error%)", { "error": FileAccess.get_open_error(), "error_string": error_string(FileAccess.get_open_error()) }))
|
||||
|
||||
# Write
|
||||
file.store_buffer(bytes)
|
||||
|
||||
# Close
|
||||
file.close()
|
||||
|
|
Loading…
Reference in a new issue