Restructuring, #9
This commit is contained in:
parent
2055ef234e
commit
dab6fadad4
41 changed files with 941 additions and 680 deletions
|
@ -1,24 +1,21 @@
|
|||
module RPGEngine.Render.Core where
|
||||
module RPGEngine.Render.Core
|
||||
( Renderer
|
||||
|
||||
import Graphics.Gloss ( Picture, translate, pictures )
|
||||
import GHC.IO (unsafePerformIO)
|
||||
import Graphics.Gloss.Juicy (loadJuicyPNG)
|
||||
import Data.Maybe (fromJust)
|
||||
import Graphics.Gloss.Data.Picture (scale)
|
||||
import Graphics.Gloss.Data.Bitmap (BitmapData(..))
|
||||
, getRender
|
||||
, setRenderPos
|
||||
, overlay
|
||||
) where
|
||||
|
||||
import RPGEngine.Config
|
||||
|
||||
import Data.Maybe
|
||||
import Graphics.Gloss
|
||||
import GHC.IO
|
||||
import Graphics.Gloss.Juicy
|
||||
|
||||
----------------------------- Constants ------------------------------
|
||||
|
||||
-- Default scale
|
||||
zoom :: Float
|
||||
zoom = 5.0
|
||||
|
||||
-- Resolution of the texture
|
||||
resolution :: Float
|
||||
resolution = 16
|
||||
|
||||
assetsFolder :: FilePath
|
||||
assetsFolder = "assets/"
|
||||
type Renderer a = a -> Picture
|
||||
|
||||
unknownImage :: FilePath
|
||||
unknownImage = "unknown.png"
|
||||
|
@ -54,11 +51,7 @@ library = unknown:entities ++ environment ++ gui ++ items
|
|||
gui = []
|
||||
items = map (\(f, s) -> (f, renderPNG (assetsFolder ++ "items/" ++ s))) allItems
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
-- Turn a path to a .png file into a Picture.
|
||||
renderPNG :: FilePath -> Picture
|
||||
renderPNG path = scale zoom zoom $ fromJust $ unsafePerformIO $ loadJuicyPNG path
|
||||
------------------------------ Exported ------------------------------
|
||||
|
||||
-- Retrieve an image from the library. If the library does not contain
|
||||
-- the requested image, a default is returned.
|
||||
|
@ -82,4 +75,10 @@ overlay = setRenderPos offX offY $ pictures voids
|
|||
height = round $ 4320 / resolution / zoom
|
||||
width = round $ 7680 / resolution / zoom
|
||||
offX = negate (width `div` 2)
|
||||
offY = negate (height `div` 2)
|
||||
offY = negate (height `div` 2)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
-- Turn a path to a .png file into a Picture.
|
||||
renderPNG :: FilePath -> Picture
|
||||
renderPNG path = scale zoom zoom $ fromJust $ unsafePerformIO $ loadJuicyPNG path
|
Reference in a new issue