diff options
Diffstat (limited to 'engine/Dynamic/Package.go')
| -rw-r--r-- | engine/Dynamic/Package.go | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/engine/Dynamic/Package.go b/engine/Dynamic/Package.go index 2d8cc72..fe03aae 100644 --- a/engine/Dynamic/Package.go +++ b/engine/Dynamic/Package.go @@ -42,6 +42,7 @@ type Package struct { Description PackageDescription Textures *descriptors.TexturesDescriptor + Objects map[string]*descriptors.ObjectDescriptor Worlds map[string]*descriptors.WorldDescriptor location string @@ -108,7 +109,7 @@ func (base *Package) ReadWorlds() { if base.Description.Type != "story" { return } - var worlds, loadErr = loadWorldsFromDir(utils.JoinFileLocation(base.location, "Worlds")) + var worlds, loadErr = loadWorldsFromDir(utils.JoinFileLocation(base.location, descriptors.WorldsDirName)) if loadErr != nil { rl.TraceLog(rl.LogWarning, "Failed to load world from the module %s: %s", base.location, loadErr) } else { @@ -116,6 +117,7 @@ func (base *Package) ReadWorlds() { } } +// Loads worlds in the resource manager func (base *Package) LoadWorlds() { if base.Description.Type != "story" { return @@ -126,6 +128,27 @@ func (base *Package) LoadWorlds() { } } +func (base *Package) ReadObjects() { + var loaded, err = loadObjectsFromDir(utils.JoinFileLocation(base.location, descriptors.ObjectsDirName)) + if err != nil { + rl.TraceLog(rl.LogWarning, "Failed to load objects from the module %s: %s", base.location, err) + return + } + base.Objects = loaded +} + +// Loads objects in the resource manager +func (base *Package) LoadObjects() { + rl.TraceLog(rl.LogInfo, "%s", base.Objects) + for _, v := range base.Objects { + var parsed = v.Parse() + var err = components.Resources.RegisterObject(base.Description.Name, v.Name, &parsed) + if err != nil { + rl.TraceLog(rl.LogWarning, "Failed to register object %s: %s", v.Name, err.Error()) + } + } +} + func loadWorldsFromDir(dirLocation string) (map[string]*descriptors.WorldDescriptor, error) { var loaded, err = loadAssetsFromDir(dirLocation, func() *descriptors.WorldDescriptor{ return &descriptors.WorldDescriptor{} }) if err != nil { @@ -134,11 +157,12 @@ func loadWorldsFromDir(dirLocation string) (map[string]*descriptors.WorldDescrip return descriptors.MapWorldDescriptors(loaded), nil } -// Deprecated -func loadTilesFromDir(dirLocation string) (map[uint64]*descriptors.TileDescriptor, error) { - var loaded, err = loadAssetsFromDir(dirLocation, func() *descriptors.TileDescriptor{ return &descriptors.TileDescriptor{} }) +func loadObjectsFromDir(dir string) (map[string]*descriptors.ObjectDescriptor, error) { + var loaded, err = loadAssetsFromDir(dir, func() *descriptors.ObjectDescriptor { + return &descriptors.ObjectDescriptor{} + }) if err != nil { return nil, err } - return descriptors.MapTileDescriptors(loaded), nil + return descriptors.MapObjectDescriptors(loaded), nil } |
