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.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/engine/Components/World.go b/engine/Components/World.go
index 7e6e8e3..2b7954a 100644
--- a/engine/Components/World.go
+++ b/engine/Components/World.go
@@ -14,13 +14,20 @@ type World struct {
Player *Player
Camera *rl.Camera2D
+
+ // ========== Cache ==========
+
+ // the collection of the colliders that belong to static objects - world, buildings, etc
+ staticColliders []*coreobjects.Collider
}
func (base *World) Create(manager coreobjects.SceneManager) {
base.Manager = manager
+ base.Player.Init(manager)
}
func (base *World) Destroy() {
+ base.Player.Destroy()
}
func (base *World) Update() {
@@ -34,6 +41,17 @@ func (base *World) handleZoom() {
base.Camera.Zoom += zoomSpeed * rl.GetMouseWheelMove()
}
+func (base *World) collectStaticColliders() {
+ base.staticColliders = make([]*coreobjects.Collider, 0)
+}
+
+func (base *World) GetStaticColliders() []*coreobjects.Collider {
+ if base.staticColliders == nil {
+ base.collectStaticColliders()
+ }
+ return base.staticColliders
+}
+
func (base *World) Draw() {
rl.BeginMode2D(*base.Camera)
defer rl.EndMode2D()