summaryrefslogtreecommitdiff
path: root/engine/Dynamic/Manager.go
diff options
context:
space:
mode:
Diffstat (limited to 'engine/Dynamic/Manager.go')
-rw-r--r--engine/Dynamic/Manager.go22
1 files changed, 20 insertions, 2 deletions
diff --git a/engine/Dynamic/Manager.go b/engine/Dynamic/Manager.go
index 924b4c3..4a5f70f 100644
--- a/engine/Dynamic/Manager.go
+++ b/engine/Dynamic/Manager.go
@@ -4,6 +4,7 @@ import (
"fmt"
"os"
+ components "github.com/DegustatorPonos/RuinesOfRafdolon/Components"
descriptors "github.com/DegustatorPonos/RuinesOfRafdolon/Dynamic/Descriptors"
settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings"
utils "github.com/DegustatorPonos/RuinesOfRafdolon/Utils"
@@ -47,7 +48,7 @@ func loadPackages() (*PackageManager, error) {
}
// Loads the packages from the specified in settings directory. Panics on serious error
-func Init() {
+func ReadPackages() {
descriptors.InitUIParser()
var manager, err = loadPackages()
if err != nil {
@@ -58,6 +59,23 @@ func Init() {
func (base *PackageManager) GetPackage(packageName string) (*Package, error) {
var pack, exists = base.AvaliablePackages[packageName]
- if !exists { return nil, fmt.Errorf("Failed to load package: no such package") }
+ if !exists {
+ return nil, fmt.Errorf("Failed to load package: package %s does not exist", packageName)
+ }
return &pack, nil
}
+
+func (base *PackageManager) IsPackageAvaliable(PkgName string) bool {
+ var _, exists = base.AvaliablePackages[PkgName]
+ return exists
+}
+
+func (base *PackageManager) LoadPackage(PkgName string) error {
+ var pkg, err = base.GetPackage(PkgName)
+ if err != nil {
+ return err
+ }
+ components.Resources.LoadedPackages[pkg.Description.Name] = pkg.Description.Version
+ pkg.Load()
+ return nil
+}