Godot-RTS-Template/assetloader/assetloader.gd
2025-07-31 19:35:47 +02:00

38 lines
1.1 KiB
GDScript

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