diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-02-16 18:57:15 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:50:10 +0200 |
| commit | 63ad22242562b1e66353694f2a17df6d1c64a8fd (patch) | |
| tree | f91a3a98e554e58a30d5bb0a34b021c7fb206311 /go/client/sealed.go | |
| parent | c0ab1110429be3a2a1664084469952ea082961c1 (diff) | |
| download | muhqs-game-63ad22242562b1e66353694f2a17df6d1c64a8fd.tar.gz muhqs-game-63ad22242562b1e66353694f2a17df6d1c64a8fd.zip | |
move more ui logic into Collection
* Generalize hover detection and move it into ui.Collection
* Implement transparencu for the prompt banner
Diffstat (limited to 'go/client/sealed.go')
| -rw-r--r-- | go/client/sealed.go | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/go/client/sealed.go b/go/client/sealed.go index ab0f0296..c219dbf6 100644 --- a/go/client/sealed.go +++ b/go/client/sealed.go @@ -3,6 +3,9 @@ package main import ( "strings" + "github.com/hajimehoshi/ebiten/v2" + "github.com/hajimehoshi/ebiten/v2/inpututil" + "muhq.space/muhqs-game/go/game" "muhq.space/muhqs-game/go/ui" ) @@ -13,27 +16,29 @@ const ( type Sealed struct { ui.Collection - app *app - width, height int + app *app pool game.PileOfCards deck game.PileOfCards } func NewSealed(width, height int, app *app) *Sealed { - s := &Sealed{app: app, width: width, height: height} + s := &Sealed{ + app: app, + Collection: ui.Collection{Width: width, Height: height}, + } s.AddWidget(ui.NewFixedTextBox( - (s.width-START_BUTTON_WIDTH)/2-START_BUTTON_WIDTH, - (s.height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT, + (s.Width-START_BUTTON_WIDTH)/2-START_BUTTON_WIDTH, + (s.Height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT, START_BUTTON_WIDTH, START_BUTTON_HEIGHT, "sets:", ).Centering(true)) setInput := ui.NewTextInput( - (s.width-START_BUTTON_WIDTH)/2, - (s.height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT, + (s.Width-START_BUTTON_WIDTH)/2, + (s.Height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT, START_BUTTON_WIDTH, START_BUTTON_HEIGHT, "set list", @@ -41,8 +46,8 @@ func NewSealed(width, height int, app *app) *Sealed { s.AddWidget(setInput) s.AddWidget(ui.NewSimpleButton( - (s.width-START_BUTTON_WIDTH)/2, - (s.height-START_BUTTON_HEIGHT)/2, + (s.Width-START_BUTTON_WIDTH)/2, + (s.Height-START_BUTTON_HEIGHT)/2, START_BUTTON_WIDTH, START_BUTTON_HEIGHT, "Start", @@ -53,8 +58,20 @@ func NewSealed(width, height int, app *app) *Sealed { return s } +func (s *Sealed) Update() error { + if err := s.Collection.Update(); err != nil { + return err + } + + if inpututil.IsKeyJustPressed(ebiten.KeyEscape) { + s.app.popActivity() + } + + return nil +} + func (s *Sealed) Layout(width, height int) (int, int) { - return s.width, s.height + return s.Width, s.Height } func (s *Sealed) startSealed(_sets string) { @@ -75,11 +92,11 @@ func (s *Sealed) startSealed(_sets string) { setDeck.MoveInto(s.pool) } - deckList := ui.NewPocList(s.width-SIDEBARD_WIDTH/2, s.height-START_BUTTON_HEIGHT-20, s.deck) + deckList := ui.NewPocList(s.Width-SIDEBARD_WIDTH/2, s.Height-START_BUTTON_HEIGHT-20, s.deck) deckList.Bg(ui.Gray) s.AddWidget(deckList) - grid := ui.NewCardGrid(0, 0, s.width-SIDEBARD_WIDTH, s.height, 0.5, s.pool).Columns(3) + grid := ui.NewCardGrid(0, 0, s.Width-SIDEBARD_WIDTH, s.Height, 0.5, s.pool).Columns(3) selectCard := func(x, y int) { _card := grid.FindObjectAt(x, y) if _card == nil { @@ -94,8 +111,8 @@ func (s *Sealed) startSealed(_sets string) { s.AddWidget(ui.NewClickWrapper(grid, selectCard)) s.AddWidget(ui.NewSimpleButton( - s.width-SIDEBARD_WIDTH/2-START_BUTTON_WIDTH/2, - s.height-START_BUTTON_HEIGHT, + s.Width-SIDEBARD_WIDTH/2-START_BUTTON_WIDTH/2, + s.Height-START_BUTTON_HEIGHT, START_BUTTON_WIDTH, START_BUTTON_HEIGHT, "Done", |
