Cleanup rendering
This commit is contained in:
@@ -47,7 +47,7 @@ secondColumnParams =
|
|||||||
& ldpCursorSides .~ [North, South, West]
|
& ldpCursorSides .~ [North, South, West]
|
||||||
|
|
||||||
subInvX :: Float
|
subInvX :: Float
|
||||||
subInvX = 9 * fromIntegral topInvW + 50
|
subInvX = 10 * fromIntegral topInvW + 50
|
||||||
|
|
||||||
topInvW :: Int
|
topInvW :: Int
|
||||||
topInvW = 15
|
topInvW = 15
|
||||||
|
|||||||
+5
-59
@@ -3,6 +3,7 @@ module Dodge.Render.HUD (
|
|||||||
drawHUD,
|
drawHUD,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import Dodge.Render.HUD.Carte
|
||||||
import Dodge.ScreenPos
|
import Dodge.ScreenPos
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
@@ -236,21 +237,12 @@ tweakString tp = rightPad 12 ' ' (show $ _tweakType tp) ++ " " ++ showTweak tp
|
|||||||
|
|
||||||
invHead :: Configuration -> String -> Picture
|
invHead :: Configuration -> String -> Picture
|
||||||
invHead cfig =
|
invHead cfig =
|
||||||
translateScreenPos cfig (fromTopLeft (V2 (subInvX + 20) 80))
|
translateScreenPos cfig (fromTopLeft (V2 subInvX 80))
|
||||||
-- (- halfWidth cfig + subInvX + 20) (halfHeight cfig - 80)
|
-- (- halfWidth cfig + subInvX + 20) (halfHeight cfig - 80)
|
||||||
. dShadCol white
|
. dShadCol white
|
||||||
. scale 0.4 0.4
|
. scale 0.4 0.4
|
||||||
. text
|
. textJustifyLeft
|
||||||
|
|
||||||
drawCarte :: Configuration -> World -> Picture
|
|
||||||
drawCarte cfig w =
|
|
||||||
pictures $
|
|
||||||
toTopLeft cfig (renderListAt 0 0 locs) :
|
|
||||||
mapOverlay w
|
|
||||||
++ [mainListCursor white iPos cfig]
|
|
||||||
where
|
|
||||||
iPos = w ^. cWorld . lWorld . selLocation
|
|
||||||
locs = map (\(_, s) -> (s, white)) . IM.elems . _seenLocations . _lWorld $ _cWorld w
|
|
||||||
|
|
||||||
--locPoss = map (cartePosToScreen cfig (w ^. hud) . ($ w) . doWorldPos . fst) . IM.elems . _seenLocations . _lWorld $ _cWorld w
|
--locPoss = map (cartePosToScreen cfig (w ^. hud) . ($ w) . doWorldPos . fst) . IM.elems . _seenLocations . _lWorld $ _cWorld w
|
||||||
--locTexts = map fst locs
|
--locTexts = map fst locs
|
||||||
@@ -263,31 +255,6 @@ drawCarte cfig w =
|
|||||||
-- h :: String -> Point2 -> Point2
|
-- h :: String -> Point2 -> Point2
|
||||||
-- h s (V2 x y) = V2 (x + 9 * fromIntegral (length s)) y
|
-- h s (V2 x y) = V2 (x + 9 * fromIntegral (length s)) y
|
||||||
|
|
||||||
mapOverlay :: World -> [Picture]
|
|
||||||
mapOverlay w =
|
|
||||||
(color (withAlpha 0.5 black) . polygon $ reverse $ rectNSWE 1 (-1) 1 (-1)) :
|
|
||||||
[foldMap (drawMapWall (w ^. hud)) $ IM.restrictKeys (lw ^. walls) (w ^. cWorld . seenWalls)]
|
|
||||||
where
|
|
||||||
lw = w ^. cWorld . lWorld
|
|
||||||
--(mapMaybe (mapWall cfig (w ^. hud)) . IM.elems $ w ^. cWorld . lWorld . walls)
|
|
||||||
|
|
||||||
drawMapWall :: HUD -> Wall -> Picture
|
|
||||||
drawMapWall thehud wl = color c . polygon $ map (cartePosToScreen thehud) [x, x +.+ n2, y +.+ n2, y]
|
|
||||||
where
|
|
||||||
t = normalizeV (y -.- x)
|
|
||||||
n2 = 20 *.* vNormal t
|
|
||||||
(x, y) = _wlLine wl
|
|
||||||
c = _wlColor wl
|
|
||||||
|
|
||||||
--mapWall :: Configuration -> HUD -> Wall -> Maybe Picture
|
|
||||||
--mapWall cfig thehud wl
|
|
||||||
-- | _wlSeen wl = Just . color c . polygon $ map (cartePosToScreen cfig thehud) [x, x +.+ n2, y +.+ n2, y]
|
|
||||||
-- | otherwise = Nothing
|
|
||||||
-- where
|
|
||||||
-- t = normalizeV (y -.- x)
|
|
||||||
-- n2 = 20 *.* vNormal t
|
|
||||||
-- (x, y) = _wlLine wl
|
|
||||||
-- c = _wlColor wl
|
|
||||||
|
|
||||||
--selectedCloseObjectLink :: Configuration -> World -> Picture
|
--selectedCloseObjectLink :: Configuration -> World -> Picture
|
||||||
--selectedCloseObjectLink cfig w = mempty
|
--selectedCloseObjectLink cfig w = mempty
|
||||||
@@ -321,8 +288,6 @@ drawMapWall thehud wl = color c . polygon $ map (cartePosToScreen thehud) [x, x
|
|||||||
-- ( halfHeight cfig - 20* (fromIntegral invPos +1) + 2.5)
|
-- ( halfHeight cfig - 20* (fromIntegral invPos +1) + 2.5)
|
||||||
-- return . winScale cfig . color col $ lConnect p itScreenPos
|
-- return . winScale cfig . color col $ lConnect p itScreenPos
|
||||||
|
|
||||||
mainListCursor :: Color -> Int -> Configuration -> Picture
|
|
||||||
mainListCursor c = openCursorAt 120 c 5 0
|
|
||||||
|
|
||||||
textSelItems :: [String] -> [SelectionItem ()]
|
textSelItems :: [String] -> [SelectionItem ()]
|
||||||
textSelItems = map (picsToSelectable . (: []))
|
textSelItems = map (picsToSelectable . (: []))
|
||||||
@@ -338,32 +303,13 @@ picsToSelectable pics =
|
|||||||
, _siPayload = ()
|
, _siPayload = ()
|
||||||
}
|
}
|
||||||
|
|
||||||
openCursorAt ::
|
|
||||||
-- | Width
|
|
||||||
Float ->
|
|
||||||
Color ->
|
|
||||||
-- | x offset
|
|
||||||
Float ->
|
|
||||||
-- | y offset
|
|
||||||
Float ->
|
|
||||||
-- | y offset (discrete)
|
|
||||||
Int ->
|
|
||||||
Configuration ->
|
|
||||||
Picture
|
|
||||||
openCursorAt wth col xoff yoff yint w =
|
|
||||||
translate (xoff - halfWidth w) (halfHeight w - (20 * fromIntegral yint + yoff) - 20) $
|
|
||||||
lineCol
|
|
||||||
[ (V2 wth 12.5, withAlpha 0 col)
|
|
||||||
, (V2 0 12.5, col)
|
|
||||||
, (V2 0 (-7.5), col)
|
|
||||||
, (V2 wth (-7.5), withAlpha 0 col)
|
|
||||||
]
|
|
||||||
|
|
||||||
displayHP :: Int -> Configuration -> World -> Picture
|
displayHP :: Int -> Configuration -> World -> Picture
|
||||||
displayHP cid cfig =
|
displayHP cid cfig =
|
||||||
translate (halfWidth cfig) (halfHeight cfig -40)
|
translate (halfWidth cfig) (halfHeight cfig -40)
|
||||||
. scale 0.2 0.2
|
. scale 0.2 0.2
|
||||||
. textJustifyRight
|
. textRight
|
||||||
. show
|
. show
|
||||||
. (^?! cWorld . lWorld . creatures . ix cid . crHP)
|
. (^?! cWorld . lWorld . creatures . ix cid . crHP)
|
||||||
|
|
||||||
|
|||||||
+22
-7
@@ -25,7 +25,10 @@ module Picture.Base (
|
|||||||
line,
|
line,
|
||||||
lineCol,
|
lineCol,
|
||||||
text,
|
text,
|
||||||
|
textRight,
|
||||||
|
textJustifyLeft,
|
||||||
textJustifyRight,
|
textJustifyRight,
|
||||||
|
textJustifyCenter,
|
||||||
textVMirror,
|
textVMirror,
|
||||||
drawText,
|
drawText,
|
||||||
centerText,
|
centerText,
|
||||||
@@ -90,7 +93,6 @@ poly3Col = map f . polyToTris
|
|||||||
where
|
where
|
||||||
f (pos, col) = Verx pos col [] BottomLayer polyNum
|
f (pos, col) = Verx pos col [] BottomLayer polyNum
|
||||||
|
|
||||||
|
|
||||||
---- given a one and two zeros of a linear function over x and y,
|
---- given a one and two zeros of a linear function over x and y,
|
||||||
---- determine the function
|
---- determine the function
|
||||||
---- so if f(ox,oy) = 1 and f(ax,ay) = f(bx,by) = 0, determines f
|
---- so if f(ox,oy) = 1 and f(ax,ay) = f(bx,by) = 0, determines f
|
||||||
@@ -201,15 +203,28 @@ stackText :: [String] -> Picture
|
|||||||
{-# INLINE stackText #-}
|
{-# INLINE stackText #-}
|
||||||
stackText = mconcat . zipWith (\y s -> translate 0 y $ centerText s) [0, 100 ..]
|
stackText = mconcat . zipWith (\y s -> translate 0 y $ centerText s) [0, 100 ..]
|
||||||
|
|
||||||
textJustifyRight :: String -> Picture
|
|
||||||
{-# INLINE textJustifyRight #-}
|
|
||||||
textJustifyRight str = translate ((-100) * fromIntegral (length str)) 0 $ text str
|
|
||||||
|
|
||||||
text :: String -> Picture
|
text :: String -> Picture
|
||||||
{-# INLINE text #-}
|
{-# INLINE text #-}
|
||||||
--text = translate (-50) (-100) . drawText (-10)
|
|
||||||
text = drawText 0
|
text = drawText 0
|
||||||
--text = drawText (-10)
|
|
||||||
|
-- lines up the rightmost part of the last character with 0
|
||||||
|
textJustifyRight :: String -> Picture
|
||||||
|
{-# INLINE textJustifyRight #-}
|
||||||
|
textJustifyRight str = translate (12.5 + (-100) * fromIntegral (length str)) 0 $ text str
|
||||||
|
|
||||||
|
-- translate the text so its bottom right coordinate is at (0,0)
|
||||||
|
textRight :: String -> Picture
|
||||||
|
{-# INLINE textRight #-}
|
||||||
|
textRight str = translate ((-100) * fromIntegral (length str)) 0 $ text str
|
||||||
|
|
||||||
|
-- lines up the leftmost part of the first character with 0
|
||||||
|
textJustifyLeft :: String -> Picture
|
||||||
|
{-# INLINE textJustifyLeft #-}
|
||||||
|
textJustifyLeft = translate (-12.5) 0 . text
|
||||||
|
|
||||||
|
textJustifyCenter :: String -> Picture
|
||||||
|
{-# INLINE textJustifyCenter #-}
|
||||||
|
textJustifyCenter str = translate ((-50) * fromIntegral (length str)) 0 $ text str
|
||||||
|
|
||||||
textVMirror :: String -> Picture
|
textVMirror :: String -> Picture
|
||||||
{-# INLINE textVMirror #-}
|
{-# INLINE textVMirror #-}
|
||||||
|
|||||||
Reference in New Issue
Block a user