Restructuring, #9

This commit is contained in:
Tibo De Peuter 2022-12-21 23:30:59 +01:00
parent 2055ef234e
commit dab6fadad4
41 changed files with 941 additions and 680 deletions

View file

@ -0,0 +1,33 @@
module RPGEngine.Render.LevelSelection
( renderLevelSelection
) where
import RPGEngine.Config ( resolution, zoom )
import RPGEngine.Data ( Game (..), State (..) )
import RPGEngine.Data.Level ( getLevelList )
import RPGEngine.Render.Core ( Renderer )
import Graphics.Gloss
( pictures, text, translate, blank, Picture, color )
import Graphics.Gloss.Data.Picture (scale)
import RPGEngine.Input.Core (ListSelector (..))
import Graphics.Gloss.Data.Color (red)
------------------------------ Exported ------------------------------
renderLevelSelection :: Renderer Game
renderLevelSelection Game{ state = state } = result
where result = renderLevelList state
----------------------------------------------------------------------
renderLevelList :: Renderer State
renderLevelList LevelSelection{ levelList = list, selector = selector } = everything
where everything = pictures $ map render entries
sel = selection selector
entries = zip [0::Int .. ] list
render (i, path) | i == sel = color red $ scale zoomed zoomed $ translate 0 (offset i) $ text path
| otherwise = scale zoomed zoomed $ translate 0 (offset i) $ text path
zoomed = 0.1 * zoom
offset i = negate (2 * resolution * zoom * fromIntegral i)
renderLevelList _ = blank