From 754c860540660f004d09f1634ff62a56c481972e Mon Sep 17 00:00:00 2001 From: Physcik Date: Sat, 10 Jan 2026 21:34:07 +0500 Subject: texturs hanlding diff --- README.md | 4 +++- engine/CoreObjects/ResourceManager.go | 11 +++++++++++ engine/Dynamic/Descriptors/Textures.go | 12 ++++++++++++ engine/Dynamic/Descriptors/World.go | 2 +- engine/Dynamic/Manager.go | 1 + engine/Dynamic/Package.go | 22 +++++++++++++--------- engine/Packages/TestPackage/Textures/Meta.json | 1 + engine/Packages/TestPackage/Textures/common.png | Bin 0 -> 377 bytes engine/Packages/TestPackage/Textures/tree.png | Bin 0 -> 1033 bytes engine/Packages/TestPackage/Textures/water.png | Bin 0 -> 384 bytes engine/Packages/TestPackage/Worlds/Main.json | 7 ++----- engine/assets/tile.png | Bin 377 -> 0 bytes engine/assets/tree.png | Bin 1033 -> 0 bytes engine/assets/water.png | Bin 384 -> 0 bytes 14 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 engine/CoreObjects/ResourceManager.go create mode 100644 engine/Dynamic/Descriptors/Textures.go create mode 100644 engine/Packages/TestPackage/Textures/common.png create mode 100644 engine/Packages/TestPackage/Textures/tree.png create mode 100644 engine/Packages/TestPackage/Textures/water.png delete mode 100644 engine/assets/tile.png delete mode 100644 engine/assets/tree.png delete mode 100644 engine/assets/water.png diff --git a/README.md b/README.md index a1d0955..71c188c 100644 --- a/README.md +++ b/README.md @@ -5,5 +5,7 @@ ``` PackageName |-Description.json -|-Worlds +|--Textures +| |- Meta.json +|--Worlds ``` diff --git a/engine/CoreObjects/ResourceManager.go b/engine/CoreObjects/ResourceManager.go new file mode 100644 index 0000000..d493bc2 --- /dev/null +++ b/engine/CoreObjects/ResourceManager.go @@ -0,0 +1,11 @@ +package coreobjects + +import rl "github.com/gen2brain/raylib-go/raylib" + +type ResourceManager struct { + Textures TextrueManager +} + +type TextrueManager struct { + Textures map[uint64]rl.Texture2D +} diff --git a/engine/Dynamic/Descriptors/Textures.go b/engine/Dynamic/Descriptors/Textures.go new file mode 100644 index 0000000..9d480ee --- /dev/null +++ b/engine/Dynamic/Descriptors/Textures.go @@ -0,0 +1,12 @@ +package descriptors + +const TexturesDescriptorDirectoryName string = "Textures" +const TexturesDescriptorFileName string = "Meta.json" + +type TexturesDescriptor struct { + Avaliable []string +} + +func IsValid() error { + return nil +} diff --git a/engine/Dynamic/Descriptors/World.go b/engine/Dynamic/Descriptors/World.go index 00e17f3..5116a0d 100644 --- a/engine/Dynamic/Descriptors/World.go +++ b/engine/Dynamic/Descriptors/World.go @@ -24,5 +24,5 @@ func MapWorldDescriptors(data []*WorldDescriptor) map[string]*WorldDescriptor { type FloorPiece struct { Position rl.Vector2 - TextureId uint64 + Texture string } diff --git a/engine/Dynamic/Manager.go b/engine/Dynamic/Manager.go index 7e5a567..7a6e341 100644 --- a/engine/Dynamic/Manager.go +++ b/engine/Dynamic/Manager.go @@ -33,6 +33,7 @@ func loadPackages() (*PackageManager, error) { newPackage.location = packagePath // newPackage.LoadTiles() + newPackage.LoadTextures() newPackage.LoadWorlds() outp.AvaliablePackages[newPackage.Description.Name] = *newPackage diff --git a/engine/Dynamic/Package.go b/engine/Dynamic/Package.go index 8cabc91..2108d7b 100644 --- a/engine/Dynamic/Package.go +++ b/engine/Dynamic/Package.go @@ -38,6 +38,8 @@ func (base *PackageDescription) IsValid() error { // The dynamic collection of the things type Package struct { Description PackageDescription + + Textures *descriptors.TexturesDescriptor Worlds map[string]*descriptors.WorldDescriptor location string @@ -91,15 +93,17 @@ func (base *Package) LoadWorlds() { base.Worlds = worlds } } - -// func (base *Package) LoadTiles() { - // var tiles, loadErr = loadTilesFromDir(ConcantinateFileLocation(base.location, "Worlds")) - // if loadErr != nil { - // rl.TraceLog(rl.LogWarning, "Failed to load tiles from the module %s: %s", base.location, loadErr) - // } else { - // base.Tiles = tiles - // } -// } + +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 loadWorldsFromDir(dirLocation string) (map[string]*descriptors.WorldDescriptor, error) { var loaded, err = loadAssetsFromDir(dirLocation, func() *descriptors.WorldDescriptor{ return &descriptors.WorldDescriptor{} }) diff --git a/engine/Packages/TestPackage/Textures/Meta.json b/engine/Packages/TestPackage/Textures/Meta.json index 6ca8df9..f5eff7f 100644 --- a/engine/Packages/TestPackage/Textures/Meta.json +++ b/engine/Packages/TestPackage/Textures/Meta.json @@ -1,4 +1,5 @@ { "Avaliable": [ + "common.png" ] } diff --git a/engine/Packages/TestPackage/Textures/common.png b/engine/Packages/TestPackage/Textures/common.png new file mode 100644 index 0000000..b7fefb2 Binary files /dev/null and b/engine/Packages/TestPackage/Textures/common.png differ diff --git a/engine/Packages/TestPackage/Textures/tree.png b/engine/Packages/TestPackage/Textures/tree.png new file mode 100644 index 0000000..b2452b1 Binary files /dev/null and b/engine/Packages/TestPackage/Textures/tree.png differ diff --git a/engine/Packages/TestPackage/Textures/water.png b/engine/Packages/TestPackage/Textures/water.png new file mode 100644 index 0000000..f1e9fed Binary files /dev/null and b/engine/Packages/TestPackage/Textures/water.png differ diff --git a/engine/Packages/TestPackage/Worlds/Main.json b/engine/Packages/TestPackage/Worlds/Main.json index afaa4df..aff684a 100644 --- a/engine/Packages/TestPackage/Worlds/Main.json +++ b/engine/Packages/TestPackage/Worlds/Main.json @@ -2,11 +2,8 @@ "Name": "MainWorld", "FloorMap": [ { - "Position": { - "X": 1, - "Y": 0 - }, - "TextureId": 1 + "Position": { "X": 1, "Y": 0 }, + "Texture": "testPackage/common" } ] } diff --git a/engine/assets/tile.png b/engine/assets/tile.png deleted file mode 100644 index b7fefb2..0000000 Binary files a/engine/assets/tile.png and /dev/null differ diff --git a/engine/assets/tree.png b/engine/assets/tree.png deleted file mode 100644 index b2452b1..0000000 Binary files a/engine/assets/tree.png and /dev/null differ diff --git a/engine/assets/water.png b/engine/assets/water.png deleted file mode 100644 index f1e9fed..0000000 Binary files a/engine/assets/water.png and /dev/null differ -- cgit v1.3