diff options
Diffstat (limited to 'go/ui/stateBar.go')
| -rw-r--r-- | go/ui/stateBar.go | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/go/ui/stateBar.go b/go/ui/stateBar.go index d7d86ea9..6914de6e 100644 --- a/go/ui/stateBar.go +++ b/go/ui/stateBar.go @@ -7,16 +7,12 @@ import ( "muhq.space/muhqs-game/go/game" ) -const ( - PHASE_VIEW_WIDTH = 250 -) - type StateBar struct { X, Y int Width, Height int gameState *game.State activePlayer *game.Player - ressourceView *TextBox + resourceView *TextBox phaseView *TextBox } @@ -25,25 +21,25 @@ func NewStateBar(x, y int, width, height int, s *game.State, p *game.Player) *St return sb } -func (sb *StateBar) ressourceLabel() string { - return fmt.Sprintf("%d", sb.activePlayer.Ressource) +func (sb *StateBar) resourceLabel() string { + return fmt.Sprintf("%d", sb.activePlayer.Resource) } func (sb *StateBar) phaseLabel() string { - return fmt.Sprintf("%s: %s", sb.gameState.Players[sb.gameState.ActivePlayerId].Name, + return fmt.Sprintf("%s: %s", sb.gameState.ActivePlayer.Name, sb.gameState.ActivePhase.String()) } func (sb *StateBar) Draw(screen *ebiten.Image) { - if sb.ressourceView == nil { - sb.ressourceView = NewFixedTextBox(sb.X, sb.Y, sb.Height, sb.Height, - sb.ressourceLabel()) + if sb.resourceView == nil { + sb.resourceView = NewCenteringFixedTextBox(sb.X, sb.Y, sb.Height, sb.Height, + sb.resourceLabel()) } - sb.ressourceView.Draw(screen) + sb.resourceView.Draw(screen) if sb.phaseView == nil { - sb.phaseView = NewFixedTextBox(sb.X+sb.ressourceView.Width, sb.Y, - PHASE_VIEW_WIDTH, sb.Height, sb.phaseLabel()) + sb.phaseView = NewFixedTextBox(sb.X+sb.resourceView.Width, sb.Y, + sb.Width-sb.resourceView.Width, sb.Height, sb.phaseLabel(), false) } sb.phaseView.Draw(screen) } @@ -53,9 +49,17 @@ func (sb *StateBar) FindObjectAt(x, y int) interface{} { } func (sb *StateBar) ForceRedraw() { - sb.ressourceView.Text = sb.ressourceLabel() - sb.ressourceView = nil + if sb.resourceView != nil { + sb.resourceView.Text = sb.resourceLabel() + sb.resourceView.ForceRedraw() + } + + if sb.phaseView != nil { + sb.phaseView.Text = sb.phaseLabel() + sb.phaseView.ForceRedraw() + } +} - sb.phaseView.Text = sb.phaseLabel() - sb.phaseView = nil +func (sb *StateBar) Contains(x, y int) bool { + return sb.resourceView.Contains(x, y) || sb.phaseView.Contains(x, y) } |
