summaryrefslogtreecommitdiff
path: root/engine/Dynamic/Descriptors
diff options
context:
space:
mode:
authorPhyscik <mynameisgennadiy@vk.com>2026-01-11 20:43:46 +0500
committerPhyscik <mynameisgennadiy@vk.com>2026-01-11 20:43:46 +0500
commit4c614ef14ebf4c3cd16c1e96283dc3763b9b0d0a (patch)
tree2e82a07e2b5f782b0991ee824109295784308b59 /engine/Dynamic/Descriptors
parent754c860540660f004d09f1634ff62a56c481972e (diff)
World rendering
Diffstat (limited to 'engine/Dynamic/Descriptors')
-rw-r--r--engine/Dynamic/Descriptors/Textures.go12
-rw-r--r--engine/Dynamic/Descriptors/World.go32
2 files changed, 43 insertions, 1 deletions
diff --git a/engine/Dynamic/Descriptors/Textures.go b/engine/Dynamic/Descriptors/Textures.go
index 9d480ee..f436575 100644
--- a/engine/Dynamic/Descriptors/Textures.go
+++ b/engine/Dynamic/Descriptors/Textures.go
@@ -1,5 +1,9 @@
package descriptors
+import (
+ utils "github.com/DegustatorPonos/RuinesOfRafdolon/Utils"
+)
+
const TexturesDescriptorDirectoryName string = "Textures"
const TexturesDescriptorFileName string = "Meta.json"
@@ -7,6 +11,14 @@ type TexturesDescriptor struct {
Avaliable []string
}
+func (base *TexturesDescriptor) GetTexturePath(packageLocation string, textureName string) string {
+ return utils.JoinFileLocations([]string {
+ packageLocation,
+ TexturesDescriptorDirectoryName,
+ textureName,
+ })
+}
+
func IsValid() error {
return nil
}
diff --git a/engine/Dynamic/Descriptors/World.go b/engine/Dynamic/Descriptors/World.go
index 5116a0d..25e52ef 100644
--- a/engine/Dynamic/Descriptors/World.go
+++ b/engine/Dynamic/Descriptors/World.go
@@ -1,6 +1,9 @@
package descriptors
-import rl "github.com/gen2brain/raylib-go/raylib"
+import (
+ components "github.com/DegustatorPonos/RuinesOfRafdolon/Components"
+ rl "github.com/gen2brain/raylib-go/raylib"
+)
type WorldDescriptor struct {
Name string
@@ -26,3 +29,30 @@ type FloorPiece struct {
Position rl.Vector2
Texture string
}
+
+// Transforms the world descriptor into the game world
+func (base WorldDescriptor) Parse() components.World {
+ var outp = components.World {
+ Name: base.Name,
+ Floor: make([]components.FloorTile, 0, len(base.FloorMap)),
+
+ Camera: &rl.Camera2D{
+ Offset: rl.Vector2 {X: 0, Y: 0},
+ Target: rl.Vector2 {X: 0, Y: 0},
+ Rotation: 0,
+ Zoom: 1,
+ },
+ }
+ for _, v := range base.FloorMap {
+ var texture, textureErr = components.Resources.Textures.GetTextureByName(v.Texture)
+ if textureErr != nil {
+ continue
+ }
+ var new = components.FloorTile {
+ Position: v.Position,
+ Texture: texture,
+ }
+ outp.Floor = append(outp.Floor, new)
+ }
+ return outp
+}