1
0
Fork 0

feat(menu): play "menu enter" sound when button action is triggered

This commit is contained in:
Henrik Hautakoski 2025-10-28 09:52:58 +01:00
parent ef798896c3
commit eb7486f57c

View file

@ -2,6 +2,7 @@ package handlers
import (
"tetris/assets"
"tetris/engine/audio"
"tetris/engine/render"
"tetris/game"
"tetris/game/state"
@ -17,12 +18,19 @@ type MainMenu struct {
list *layouts.ListBox
}
func enterState(fsm state.Transitioner, state string) func() {
return func() {
audio.Play(assets.SFX_MENU_ENTER)
fsm.Switch(state)
}
}
func NewMainMenu(fsm state.Transitioner) *MainMenu {
return &MainMenu{
list: layouts.NewListBox([]ui.InputWidget{
widgets.NewButton("Start", 32, func() { fsm.Switch("gameplay") }),
widgets.NewButton("Options", 32, func() { fsm.Switch("options") }),
widgets.NewButton("Quit", 32, func() { fsm.Switch("quit") }),
widgets.NewButton("Start", 32, enterState(fsm, "gameplay")),
widgets.NewButton("Options", 32, enterState(fsm, "options")),
widgets.NewButton("Quit", 32, enterState(fsm, "quit")),
}).Spacing(10).
OnSelect(uievents.MenuSelect),
}