summaryrefslogtreecommitdiff
path: root/engine/Components/Packages/Manager.go
diff options
context:
space:
mode:
authorPhyscik <mynameisgennadiy@vk.com>2026-01-08 21:14:55 +0500
committerPhyscik <mynameisgennadiy@vk.com>2026-01-08 21:14:55 +0500
commita6abcd529522c6682a4c2a1f25b1eaf6bd74d53d (patch)
treee4a1ac10c5bb43d8129934212746218be748b55d /engine/Components/Packages/Manager.go
parentb2895f2e9f64cf7cc593130980747b045f6abee8 (diff)
Package start
Diffstat (limited to 'engine/Components/Packages/Manager.go')
-rw-r--r--engine/Components/Packages/Manager.go43
1 files changed, 43 insertions, 0 deletions
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
+}