1
Fork 0
This repository has been archived on 2023-12-08. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
2022FuncProg-project2-patience/lib/SelectorRenderer.hs

39 lines
1.2 KiB
Haskell

module SelectorRenderer
( renderSelector
, renderSelected
) where
import Selector
import PNGRenderer
----------------------------- Constants ------------------------------
selectorFilePath :: FilePath
selectorFilePath = "./lib/assets/selector.png"
selectedFilePath :: FilePath
selectedFilePath = "./lib/assets/selected.png"
selectorRenders :: (Picture, Picture)
selectorRenders = (
renderPNG selectorFilePath,
renderPNG selectedFilePath
)
----------------------------------------------------------------------
-- Render the outline of the selector. The offset for every value 1
-- in the coordinate must be given.
renderSelector :: Float -> Float -> Selector -> Picture
renderSelector a b Selector{ position = (x,y) } = translate fx fy render
where fx = fromIntegral x * a
fy = fromIntegral y * b
render = fst selectorRenders
-- Render the selected piece if any.
renderSelected :: Float -> Float -> Selector -> Picture
renderSelected a b Selector{ selected = Just (x, y) } = translate fx fy render
where fx = fromIntegral x * a
fy = fromIntegral y * b
render = snd selectorRenders
renderSelected _ _ _ = blank