summaryrefslogtreecommitdiff
path: root/engine/CoreObjects/Scene.go
diff options
context:
space:
mode:
authorphyscik <mynameisgennadiy@vk.com>2026-04-06 18:29:34 +0500
committerphyscik <mynameisgennadiy@vk.com>2026-04-06 18:29:34 +0500
commite211798077de88fe39d1e1c0add7a0f460d1da5a (patch)
treede3163568818116a2ca43d31c66947d918cea2fd /engine/CoreObjects/Scene.go
parente75d107899617446add49f00fb03837cb46d2543 (diff)
Experimental async update functionHEADmain
Diffstat (limited to 'engine/CoreObjects/Scene.go')
-rw-r--r--engine/CoreObjects/Scene.go44
1 files changed, 2 insertions, 42 deletions
diff --git a/engine/CoreObjects/Scene.go b/engine/CoreObjects/Scene.go
index b6b886c..8a11e29 100644
--- a/engine/CoreObjects/Scene.go
+++ b/engine/CoreObjects/Scene.go
@@ -2,54 +2,14 @@ package coreobjects
import rl "github.com/gen2brain/raylib-go/raylib"
-type SceneManager struct {
- OverlayScene Scene
- SelectedScene Scene
-}
+type UpdateFunction func()
type Scene interface {
Create(*SceneManager)
Destroy()
Update()
+ GetUpdateFunctions() []UpdateFunction
Draw()
GetMousePosition() rl.Vector2
}
-func InitSceneManager() SceneManager {
- return SceneManager{
- OverlayScene: &OveralyScene{},
- SelectedScene: nil,
- }
-}
-
-func (base *SceneManager) ChangeScene(newScene Scene) {
- if base.SelectedScene != nil {
- base.SelectedScene.Destroy()
- }
- base.SelectedScene = newScene
- base.SelectedScene.Create(base)
-}
-
-func (base *SceneManager) Update() {
- if (base.SelectedScene != nil) {
- base.SelectedScene.Update()
- }
-
- if (base.OverlayScene != nil) {
- base.OverlayScene.Update()
- }
-
- if rl.IsKeyDown(rl.KeyF11) {
- rl.ToggleFullscreen()
- }
-}
-
-func (base *SceneManager) Draw() {
- if (base.SelectedScene != nil) {
- base.SelectedScene.Draw()
- }
-
- if (base.OverlayScene != nil) {
- base.OverlayScene.Draw()
- }
-}