From a6abcd529522c6682a4c2a1f25b1eaf6bd74d53d Mon Sep 17 00:00:00 2001 From: Physcik Date: Thu, 8 Jan 2026 21:14:55 +0500 Subject: Package start --- engine/Components/Packages/Manager.go | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 engine/Components/Packages/Manager.go (limited to 'engine/Components/Packages/Manager.go') diff --git a/engine/Components/Packages/Manager.go b/engine/Components/Packages/Manager.go new file mode 100644 index 0000000..47b0476 --- /dev/null +++ b/engine/Components/Packages/Manager.go @@ -0,0 +1,43 @@ +package packages + +import ( + "fmt" + "os" + + settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings" + rl "github.com/gen2brain/raylib-go/raylib" +) + +type PackageManager struct { + AvaliablePackages map[string]Package +} + +var Manager *PackageManager = nil + +func LoadPackages() (*PackageManager, error) { + var dir, dirErr = os.ReadDir(settings.Current.PackagesLocation) + if dirErr != nil { + return nil, dirErr + } + var outp = PackageManager{ + AvaliablePackages: make(map[string]Package), + } + for _, v := range dir { + var newPackage, packageErr = ReadPackage(v) + if packageErr != nil { + rl.TraceLog(rl.LogWarning, "Failed to load the module %v: %s", v.Name(), packageErr.Error()) + continue + } + _ = newPackage + rl.TraceLog(rl.LogError, "Loaded the module %s", newPackage.Description.Name) + } + return &outp, nil +} + +func Init() { + var manager, err = LoadPackages() + if err != nil { + panic(fmt.Sprintf("Failed to load packages: %v", err.Error())) + } + Manager = manager +} -- cgit v1.3