Restructuring, #9
This commit is contained in:
parent
2055ef234e
commit
dab6fadad4
41 changed files with 941 additions and 680 deletions
33
lib/RPGEngine/Render/LevelSelection.hs
Normal file
33
lib/RPGEngine/Render/LevelSelection.hs
Normal 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
|
Reference in a new issue