summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--engine/CoreObjects/ResourceManager.go11
-rw-r--r--engine/Dynamic/Descriptors/Textures.go12
-rw-r--r--engine/Dynamic/Descriptors/World.go2
-rw-r--r--engine/Dynamic/Manager.go1
-rw-r--r--engine/Dynamic/Package.go22
-rw-r--r--engine/Packages/TestPackage/Textures/Meta.json1
-rw-r--r--engine/Packages/TestPackage/Textures/common.png (renamed from engine/assets/tile.png)bin377 -> 377 bytes
-rw-r--r--engine/Packages/TestPackage/Textures/tree.png (renamed from engine/assets/tree.png)bin1033 -> 1033 bytes
-rw-r--r--engine/Packages/TestPackage/Textures/water.png (renamed from engine/assets/water.png)bin384 -> 384 bytes
-rw-r--r--engine/Packages/TestPackage/Worlds/Main.json7
11 files changed, 44 insertions, 16 deletions
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/assets/tile.png b/engine/Packages/TestPackage/Textures/common.png
index b7fefb2..b7fefb2 100644
--- a/engine/assets/tile.png
+++ b/engine/Packages/TestPackage/Textures/common.png
Binary files differ
diff --git a/engine/assets/tree.png b/engine/Packages/TestPackage/Textures/tree.png
index b2452b1..b2452b1 100644
--- a/engine/assets/tree.png
+++ b/engine/Packages/TestPackage/Textures/tree.png
Binary files differ
diff --git a/engine/assets/water.png b/engine/Packages/TestPackage/Textures/water.png
index f1e9fed..f1e9fed 100644
--- a/engine/assets/water.png
+++ b/engine/Packages/TestPackage/Textures/water.png
Binary files 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"
}
]
}