From 754c860540660f004d09f1634ff62a56c481972e Mon Sep 17 00:00:00 2001 From: Physcik Date: Sat, 10 Jan 2026 21:34:07 +0500 Subject: texturs hanlding diff --- 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 13 files changed, 41 insertions(+), 15 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 (limited to 'engine') 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