Add options page scrolling
This commit is contained in:
@@ -48,6 +48,7 @@ import FoldableHelp
|
||||
import Data.Maybe
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import Control.Lens
|
||||
import Control.Monad
|
||||
import qualified FoldlHelp as L
|
||||
import Data.Monoid
|
||||
import Streaming
|
||||
@@ -149,19 +150,17 @@ orderStreamOn f = S.each . runIdentity . L.purely S.fold_ L.map . S.map g
|
||||
where
|
||||
g x = (f x,x)
|
||||
|
||||
visibleWallWalls :: Point2 -> Point2 -> World -> Stream (Of (Point2,Wall)) Identity ()
|
||||
visibleWallWalls sp ep =
|
||||
join
|
||||
. fmap (S.take 1)
|
||||
. S.span (not . wlIsOpaque . snd)
|
||||
visibleWalls :: Point2 -> Point2 -> World -> Stream (Of (Point2,Wall)) Identity ()
|
||||
visibleWalls sp ep = S.take 1 <=< -- hlint, was using join and fmap
|
||||
( S.span (not . wlIsOpaque . snd)
|
||||
. orderStreamOn (dist sp . fst)
|
||||
. S.mapMaybe f
|
||||
. wallsAlongLineStream sp ep
|
||||
. wallsAlongLineStream sp ep )
|
||||
where
|
||||
f wl = uncurry (intersectSegSeg sp ep) (_wlLine wl) <&> (,wl)
|
||||
|
||||
allVisibleWalls :: World -> Stream (Of (Point2,Wall)) Identity ()
|
||||
allVisibleWalls w = concats $ S.subst (flip (visibleWallWalls vPos) w . (+.+ vPos)) $ S.each (nRays 20)
|
||||
allVisibleWalls w = concats $ S.subst (flip (visibleWalls vPos) w . (+.+ vPos)) $ S.each (nRays 20)
|
||||
where
|
||||
vPos = _cameraViewFrom w
|
||||
|
||||
|
||||
Reference in New Issue
Block a user