Tweak mouse pointer display

This commit is contained in:
2024-11-04 09:32:36 +00:00
parent 1ed09fa8de
commit df08dc8ab5
7 changed files with 154 additions and 131 deletions
+18 -2
View File
@@ -78,9 +78,18 @@ drawMouseCursor u =
mouseCursorType :: Universe -> Picture
mouseCursorType u
| null (u ^. uvScreenLayers) = rotate a (drawPlus 5)
| otherwise = drawPlus 5
| isselect = drawPlus 5
| Just csel <- u ^? uvWorld . hud . hudElement . subInventory . ciSelection
= if (csel == u ^? uvWorld . hud . hudElement . subInventory . ciMouseOver . _Just
|| null (u ^? uvWorld . hud . hudElement . subInventory . ciMouseOver . _Just))
&& null (u ^? uvWorld . hud . hudElement . diMouseOver . _Just)
&& fmap fst csel /= Just (-1)
then drawDoublePlus 5
else drawPlus 5
| otherwise = rotate a (drawPlus 5)
where
isselect = not (null $ u ^. uvScreenLayers)
|| not (null $ u ^? uvWorld . hud . hudElement . diMouseOver . _Just)
w = u ^. uvWorld
a = fromMaybe 0 $ do
cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
@@ -91,6 +100,13 @@ mouseCursorType u
drawPlus :: Float -> Picture
drawPlus x = fold [line [V2 (- x) 0, V2 x 0], line [V2 0 (- x), V2 0 x]]
drawDoublePlus :: Float -> Picture
drawDoublePlus x = fold [line [V2 (- (1.5*x)) 0, V2 (1.5*x) 0]
, line [V2 (0.5 * x) (- x), V2 (0.5 * x) x]
, line [V2 (negate 0.5 * x) (- x), V2 (negate 0.5 * x) x]
]
aimDelaySweep :: World -> Picture
aimDelaySweep w = fromMaybe mempty $ do
cr <- w ^? cWorld . lWorld . creatures . ix 0