diff options
| author | ewy <ewy0@protonmail.com> | 2026-08-13 15:25:59 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-08-13 15:25:59 +0200 |
| commit | bc3f852ea670e206fa3facc736a230f6b9d23920 (patch) | |
| tree | 198bdb2107108fe0cbe83836c8d14688128ba80c /tree/tree.go | |
| parent | 60f58e548ef745ec072482954ac37c35d88280d4 (diff) | |
clamp mous
Diffstat (limited to 'tree/tree.go')
| -rw-r--r-- | tree/tree.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/tree/tree.go b/tree/tree.go index a48dbc0..d39d296 100644 --- a/tree/tree.go +++ b/tree/tree.go @@ -4,7 +4,6 @@ import ( "github.com/Zyko0/go-sdl3/sdl" "ponger/ecs" "ponger/events" - "ponger/input" "ponger/render" ) @@ -28,16 +27,22 @@ func ParseRecursive(current ecs.IsGameObject, delta uint64, renderer *sdl.Render } func ParseSingle(obj ecs.IsGameObject, delta uint64, renderer *sdl.Renderer, evs ...any) { - switch impl := obj.(type) { - case input.MouseMotionHandler: + if impl, ok := obj.(events.WindowChangeHandler); ok { + for _, e := range events.OfType[events.WindowChange](evs...) { + impl.ProcessWindowChange(e) + } + } + if impl, ok := obj.(events.MouseMotionHandler); ok { for _, e := range events.OfType[events.MouseMotion](evs...) { impl.ProcessMouseMotion(e) } - case input.MousePressHandler: + } + if impl, ok := obj.(events.MousePressHandler); ok { for _, e := range events.OfType[events.MousePress](evs...) { impl.ProcessMousePress(e) } - case render.Renders: + } + if impl, ok := obj.(render.Renders); ok { impl.Render(renderer) } } |
