diff options
| author | Physcik <mynameisgennadiy@vk.com> | 2026-01-11 20:43:46 +0500 |
|---|---|---|
| committer | Physcik <mynameisgennadiy@vk.com> | 2026-01-11 20:43:46 +0500 |
| commit | 4c614ef14ebf4c3cd16c1e96283dc3763b9b0d0a (patch) | |
| tree | 2e82a07e2b5f782b0991ee824109295784308b59 /engine/Dynamic/Package.go | |
| parent | 754c860540660f004d09f1634ff62a56c481972e (diff) | |
World rendering
Diffstat (limited to 'engine/Dynamic/Package.go')
| -rw-r--r-- | engine/Dynamic/Package.go | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/engine/Dynamic/Package.go b/engine/Dynamic/Package.go index 2108d7b..2d8cc72 100644 --- a/engine/Dynamic/Package.go +++ b/engine/Dynamic/Package.go @@ -5,8 +5,10 @@ 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" rl "github.com/gen2brain/raylib-go/raylib" ) @@ -54,9 +56,9 @@ func (base *Package) String() string { } func ReadPackage(dir os.DirEntry) (*Package, error) { - var dirPath = ConcantinateFileLocation(settings.Current.PackagesLocation, dir.Name()) + var dirPath = utils.JoinFileLocation(settings.Current.PackagesLocation, dir.Name()) var desc = PackageDescription{} - if descErr := ReadValidJSONfromFile(ConcantinateFileLocation(dirPath, "Description.json"), &desc); descErr != nil { + if descErr := ReadValidJSONfromFile(utils.JoinFileLocation(dirPath, "Description.json"), &desc); descErr != nil { return nil, descErr } return &Package{ @@ -72,7 +74,7 @@ func loadAssetsFromDir[T Validatable](dirLocation string, InitializeFunc func()T var outp = make([]T, 0) for _, v := range files { var new = InitializeFunc() - var loadErr = ReadValidJSONfromFile(ConcantinateFileLocation(dirLocation, v.Name()), new) + var loadErr = ReadValidJSONfromFile(utils.JoinFileLocation(dirLocation, v.Name()), new) if loadErr != nil { rl.TraceLog(rl.LogWarning, "Failed to load the asset %s: %s", v.Name(), loadErr) continue @@ -82,11 +84,31 @@ func loadAssetsFromDir[T Validatable](dirLocation string, InitializeFunc func()T return outp, nil } -func (base *Package) LoadWorlds() { +func (base *Package) ReadTextures() { + var textures = &descriptors.TexturesDescriptor{} + var texturesLocation = utils.JoinFileLocation(base.location, descriptors.TexturesDescriptorDirectoryName) + var loadErr = utils.ReadJSONfromFile(utils.JoinFileLocation(texturesLocation, descriptors.TexturesDescriptorFileName), textures) + if loadErr != nil { + rl.TraceLog(rl.LogWarning, "Failed to load texture description from the module %s: %s", base.location, loadErr) + } else { + base.Textures = textures + } +} + +// Loads textures in the resource manager +func (base *Package) LoadTextures() { + for _, v := range base.Textures.Avaliable { + var location = base.Textures.GetTexturePath(base.location, v) + var displayName = fmt.Sprintf("%v/%v", base.Description.Name, v) + components.Resources.Textures.LoadTexture(location, displayName) + } +} + +func (base *Package) ReadWorlds() { if base.Description.Type != "story" { return } - var worlds, loadErr = loadWorldsFromDir(ConcantinateFileLocation(base.location, "Worlds")) + var worlds, loadErr = loadWorldsFromDir(utils.JoinFileLocation(base.location, "Worlds")) if loadErr != nil { rl.TraceLog(rl.LogWarning, "Failed to load world from the module %s: %s", base.location, loadErr) } else { @@ -94,14 +116,13 @@ func (base *Package) LoadWorlds() { } } -func (base *Package) LoadTextures() { - var textures = &descriptors.TexturesDescriptor{} - var texturesLocation = ConcantinateFileLocation(base.location, descriptors.TexturesDescriptorDirectoryName) - var loadErr = ReadJSONfromFile(ConcantinateFileLocation(texturesLocation, descriptors.TexturesDescriptorFileName), textures) - if loadErr != nil { - rl.TraceLog(rl.LogWarning, "Failed to load texture description from the module %s: %s", base.location, loadErr) - } else { - base.Textures = textures +func (base *Package) LoadWorlds() { + if base.Description.Type != "story" { + return + } + for _, v := range base.Worlds { + var parsed = v.Parse() + components.Resources.Worlds[v.Name] = &parsed } } @@ -113,6 +134,7 @@ 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{} }) if err != nil { |
