diff options
Diffstat (limited to 'engine/Components/World.go')
| -rw-r--r-- | engine/Components/World.go | 18 |
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() |
