package hud import ( "image/color" "github.com/hajimehoshi/ebiten/v2" "github.com/atridad/BigFeelings/internal/status" ) // HUD overlay anchor. type Overlay struct { X int Y int Color color.Color } // Paints the HUD overlay. func (o Overlay) Draw(screen *ebiten.Image, meters []status.Meter) { if o.Color == nil { o.Color = color.White } // Instruction text instructions := Column{ Elements: []Element{ Label{Text: "Big Feelings", Color: o.Color}, Label{Text: "Move with Arrow Keys / WASD", Color: o.Color}, Label{Text: "Hold Shift to Sprint", Color: o.Color}}, Spacing: 7, } instructions.Draw(screen, 16, 16) // Meter column meterElements := make([]Element, 0, len(meters)) for _, meter := range meters { meterElements = append(meterElements, Column{ Elements: []Element{ MeterLabel{Meter: meter, Color: o.Color}, Bar{Meter: meter, MaxWidth: 180, Height: 8, ShowBorder: false}, }, Spacing: 2, }) } meterPanel := Column{ Elements: meterElements, Spacing: 16, } meterPanel.Draw(screen, o.X, o.Y) }