summaryrefslogtreecommitdiff
path: root/engine/Components/World.go
diff options
context:
space:
mode:
Diffstat (limited to 'engine/Components/World.go')
-rw-r--r--engine/Components/World.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/engine/Components/World.go b/engine/Components/World.go
index 0c322ba..26c1a83 100644
--- a/engine/Components/World.go
+++ b/engine/Components/World.go
@@ -27,6 +27,9 @@ type World struct {
func (base *World) Create(manager coreobjects.SceneManager) {
base.Manager = manager
base.Player.Init(manager)
+ for _, v := range base.StaticObjects {
+ v.Init(manager)
+ }
base.layersStatic = layering{}
base.generateStaticLayers()
}
@@ -36,6 +39,9 @@ func (base *World) Destroy() {
}
func (base *World) Update() {
+ for _, v := range base.StaticObjects {
+ v.Update()
+ }
base.Player.Update()
base.Player.SnapCamera(base.Camera)
base.handleZoom()
@@ -68,7 +74,10 @@ func (base *World) Draw() {
for _, v := range base.Floor {
v.Draw()
}
+ base.drawObjects()
+}
+func (base *World) drawObjects() {
var playerDrawn = false
var layer = base.layersStatic.firstLayer
var i = 0
@@ -78,7 +87,6 @@ func (base *World) Draw() {
}
if !playerDrawn && base.Player.Position.Y < layer.Index {
playerDrawn = true
- // fmt.Printf("Player drawn at layer %d\n", i)
base.Player.Draw()
}
for _, v := range layer.Objects {
@@ -99,6 +107,10 @@ func (base *World) generateStaticLayers() {
}
}
+func (base *World) GetMousePosition() rl.Vector2 {
+ return rl.GetScreenToWorld2D(rl.GetMousePosition(), *base.Camera)
+}
+
// The single texture drawn at level 0 of the world
type FloorTile struct {
Position rl.Vector2