module Dodge.Render.InfoBox ( renderInfoListAt , renderInfoListsAt ) where import Dodge.Base import Dodge.Data.CamPos import Dodge.Data.Config import Dodge.Render.Connectors import Dodge.Render.List import Geometry import Picture renderInfoListAt :: Float -> Float -> Configuration -> CamPos -> (Point2, [String]) -> Picture renderInfoListAt x y cfig cam (p, ss) = renderListAt x y cfig (zip ss (repeat white)) <> winScale cfig (color white $ lConnect (V2 (x - hw) (hh -25 - y)) (worldPosToScreen cam p)) <> listCursorNSW x y cfig 0 0 white 19 (length ss) where hw = halfWidth cfig hh = halfHeight cfig renderInfoListsAt :: Float -> Float -> Configuration -> CamPos -> [(Point2, [String])] -> Picture renderInfoListsAt x y cfig w = fst . foldr f (mempty, 0) where f (p, ss) (pic, offset) = ( pic <> renderInfoListAt x (y + offset) cfig w (p, ss) , offset + 20 * fromIntegral (length ss) )