Fix dependency loop
This commit is contained in:
parent
b7278d6afc
commit
f529fc5237
25 changed files with 251 additions and 199 deletions
|
@ -2,20 +2,22 @@
|
|||
-- submodules.
|
||||
module RPGEngine.Render
|
||||
( initWindow
|
||||
, initGame
|
||||
, render
|
||||
) where
|
||||
|
||||
import RPGEngine.Render.Core ( Renderer(..) )
|
||||
|
||||
import RPGEngine.Data ( State(..), Game(..), StateBase(..) )
|
||||
import Graphics.Gloss ( Display )
|
||||
import Graphics.Gloss.Data.Display ( Display(InWindow) )
|
||||
import Graphics.Gloss.Data.Picture (Picture)
|
||||
import RPGEngine.Data.Default (defaultLevel, defaultPlayer)
|
||||
import RPGEngine.Input.Playing (spawnPlayer)
|
||||
import RPGEngine.Render.Menu (renderMenu)
|
||||
import RPGEngine.Input.Menu (handleInputMenu)
|
||||
import RPGEngine.Data (Game(..), State (..))
|
||||
import RPGEngine.Render.Menu( renderMenu )
|
||||
import RPGEngine.Render.LevelSelection ( renderLevelSelection )
|
||||
import RPGEngine.Render.Playing ( renderPlaying )
|
||||
import RPGEngine.Render.Paused ( renderPaused )
|
||||
import RPGEngine.Render.Win ( renderWin )
|
||||
import RPGEngine.Render.Lose ( renderLose )
|
||||
|
||||
import Graphics.Gloss (Display)
|
||||
import Graphics.Gloss.Data.Picture (Picture, blank)
|
||||
import Graphics.Gloss.Data.Display (Display(..))
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -23,17 +25,12 @@ import RPGEngine.Input.Menu (handleInputMenu)
|
|||
initWindow :: String -> (Int, Int) -> (Int, Int) -> Display
|
||||
initWindow = InWindow
|
||||
|
||||
-- Initialize the game
|
||||
initGame :: Game
|
||||
initGame = Game {
|
||||
state = Menu{ base = StateBase{
|
||||
renderer = renderMenu,
|
||||
inputHandler = handleInputMenu
|
||||
}}
|
||||
}
|
||||
|
||||
-- Render all different states
|
||||
render :: Game -> Picture
|
||||
render g@Game{ state = state } = renderFunc state
|
||||
where stateBase = base state
|
||||
renderFunc = renderer stateBase
|
||||
render Game{ state = s@Menu } = renderMenu s
|
||||
render Game{ state = s@LevelSelection{} } = renderLevelSelection s
|
||||
render Game{ state = s@Playing{} } = renderPlaying s
|
||||
render Game{ state = s@Paused{} } = renderPaused s
|
||||
render Game{ state = s@Win } = renderWin s
|
||||
render Game{ state = s@Lose{} } = renderLose s
|
||||
render _ = blank
|
Reference in a new issue