module RPGEngine.Render.LevelSelection ( renderLevelSelection ) where import RPGEngine.Render.Core (Renderer) import RPGEngine.Config (resolution, zoom, uizoom, textColor, selectionColor ) import RPGEngine.Data (State (..)) import Graphics.Gloss ( pictures, color, text, translate, blank ) import Graphics.Gloss.Data.Color (red) import Graphics.Gloss.Data.Picture (scale) import RPGEngine.Input.Core (ListSelector(..)) ------------------------------ Exported ------------------------------ renderLevelSelection :: Renderer State renderLevelSelection state = result where result = renderLevelList state ---------------------------------------------------------------------- renderLevelList :: Renderer State renderLevelList (LevelSelection list selector) = everything where everything = pictures $ map render entries sel = selection selector entries = zip [0::Int .. ] list render (i, path) | i == sel = color selectionColor $ make (i, path) | otherwise = color textColor $ make (i, path) make (i, path) = scale uizoom uizoom $ translate 0 (offset i) $ text path offset i = negate (250 * uizoom * fromIntegral i) renderLevelList _ = blank