summaryrefslogtreecommitdiff
path: root/tree/tree.go
diff options
context:
space:
mode:
authorewy <ewy0@protonmail.com>2026-08-13 15:25:59 +0200
committerewy <ewy0@protonmail.com>2026-08-13 15:25:59 +0200
commitbc3f852ea670e206fa3facc736a230f6b9d23920 (patch)
tree198bdb2107108fe0cbe83836c8d14688128ba80c /tree/tree.go
parent60f58e548ef745ec072482954ac37c35d88280d4 (diff)
clamp mous
Diffstat (limited to 'tree/tree.go')
-rw-r--r--tree/tree.go15
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)
}
}