extends Object class_name AssetLoader const DEFAULT_ASSETS_PATH = "res://mods" ## Path to the mods folder : [param res://mods] by default ## [br] ## (is not a const but should be treated as such, so the uppercase) var ASSETS_PATH var critical_error := false func _init() -> void: ASSETS_PATH = ProjectSettings.get_setting("game/mods/mod_path", DEFAULT_ASSETS_PATH) var dir := DirAccess.open(ASSETS_PATH) if not dir: push_error("AssetLoader: Mods folder not found at '%s'" % ASSETS_PATH) _show_error_popup("Mods folder not found at '%s'" % ASSETS_PATH) critical_error = true return var mod_folders := dir.get_directories() if mod_folders.is_empty(): push_error("AssetLoader: Mods folder '%s' is empty — no mods to load." % ASSETS_PATH) _show_error_popup("Mods folder '%s' is empty — no mods to load." % ASSETS_PATH) critical_error = true return ## This will show a native MessageBox on Windows, ## a native dialog on macOS, and GTK/QT dialog on Linux. func _show_error_popup(message: String) -> void: OS.alert("AssetLoader:"+message, "AssetLoader:Error") func load_all(): pass