summaryrefslogtreecommitdiff
path: root/engine/Dynamic/Descriptors
diff options
context:
space:
mode:
authorPhyscik <mynameisgennadiy@vk.com>2026-01-10 17:27:55 +0500
committerPhyscik <mynameisgennadiy@vk.com>2026-01-10 17:27:55 +0500
commita364d4330dfd34f953f64e90020f8b8d6f2e82c4 (patch)
treedb71d125f633832b130821f3aec07d4b714ab7bb /engine/Dynamic/Descriptors
parente6ccb74f77d0d03d33c422ca7dc942422074d7dd (diff)
World storage system change
Diffstat (limited to 'engine/Dynamic/Descriptors')
-rw-r--r--engine/Dynamic/Descriptors/Assets.go5
-rw-r--r--engine/Dynamic/Descriptors/Tile.go24
-rw-r--r--engine/Dynamic/Descriptors/World.go28
3 files changed, 57 insertions, 0 deletions
diff --git a/engine/Dynamic/Descriptors/Assets.go b/engine/Dynamic/Descriptors/Assets.go
new file mode 100644
index 0000000..864761d
--- /dev/null
+++ b/engine/Dynamic/Descriptors/Assets.go
@@ -0,0 +1,5 @@
+package descriptors
+
+type AssetsDescriptor struct {
+ Textures map[int]string `json:"textures"`
+}
diff --git a/engine/Dynamic/Descriptors/Tile.go b/engine/Dynamic/Descriptors/Tile.go
new file mode 100644
index 0000000..09c8c62
--- /dev/null
+++ b/engine/Dynamic/Descriptors/Tile.go
@@ -0,0 +1,24 @@
+package descriptors
+
+import rl "github.com/gen2brain/raylib-go/raylib"
+
+// Represents a type of a tile that can be used in the world
+type TileDescriptor struct {
+ Id uint64 `json:"id"`
+ Position rl.Vector2 `json:"position"`
+ TextureId int `json:"textureid"`
+ OveralyTextureId int `json:"overalytextureid"`
+}
+
+func (base *TileDescriptor) IsValid() error {
+ return nil
+}
+
+// Maps the tiles by IDs
+func MapTileDescriptors(data []*TileDescriptor) map[uint64]*TileDescriptor {
+ var outp = make(map[uint64]*TileDescriptor)
+ for _, v := range data {
+ outp[v.Id] = v
+ }
+ return outp
+}
diff --git a/engine/Dynamic/Descriptors/World.go b/engine/Dynamic/Descriptors/World.go
new file mode 100644
index 0000000..00e17f3
--- /dev/null
+++ b/engine/Dynamic/Descriptors/World.go
@@ -0,0 +1,28 @@
+package descriptors
+
+import rl "github.com/gen2brain/raylib-go/raylib"
+
+type WorldDescriptor struct {
+ Name string
+ // Deprecated
+ TileSize rl.Vector2 `json:"-"`
+ FloorMap []FloorPiece
+}
+
+func (base *WorldDescriptor) IsValid() error {
+ return nil
+}
+
+// Maps the world descriptor by IDs
+func MapWorldDescriptors(data []*WorldDescriptor) map[string]*WorldDescriptor {
+ var outp = make(map[string]*WorldDescriptor)
+ for _, v := range data {
+ outp[v.Name] = v
+ }
+ return outp
+}
+
+type FloorPiece struct {
+ Position rl.Vector2
+ TextureId uint64
+}