Refactor wall zoning, remove streaming
This commit is contained in:
@@ -5,9 +5,8 @@ module Dodge.WallCreatureCollisions
|
||||
, pushCreatureOutFromWalls
|
||||
, crOnWall
|
||||
) where
|
||||
import Dodge.Zoning.Wall
|
||||
import Dodge.Data
|
||||
--import Dodge.Data.DamageType
|
||||
--import Dodge.Creature.State.Data
|
||||
import Dodge.Zone
|
||||
import Dodge.Base
|
||||
import Geometry
|
||||
@@ -47,8 +46,8 @@ colCrWall w c
|
||||
p2 = _crPos c
|
||||
ls = _wlLine <$> wls
|
||||
ls' = filter (uncurry $ isLHS p1) ls
|
||||
wls' = S.filter (not . _wlWalkable) $ wlsNearPoint p2 w
|
||||
wls = runIdentity . S.toList_ . S.filter (not . _wlWalkable) $ wlsNearPoint p2 w
|
||||
wls' = filter (not . _wlWalkable) $ wlsNearPoint p2 w
|
||||
wls = filter (not . _wlWalkable) $ wlsNearPoint p2 w
|
||||
--wallPoints = map fst ls
|
||||
|
||||
-- the amount to push creatures out from walls, extra to their radius
|
||||
@@ -85,9 +84,8 @@ pushOrCrush wls cr = case mapMaybe (pushOutFromWall (_crRad cr) cpos) wls of
|
||||
|
||||
-- note the inclusion of endpoints in circOnSeg
|
||||
crOnWall :: Creature -> World -> Bool
|
||||
crOnWall cr = runIdentity
|
||||
. S.any_ (uncurry (circOnSeg p r) . _wlLine)
|
||||
. S.filter (not . _wlWalkable)
|
||||
crOnWall cr = any (uncurry (circOnSeg p r) . _wlLine)
|
||||
. filter (not . _wlWalkable)
|
||||
. wlsNearPoint p
|
||||
where
|
||||
p = _crPos cr
|
||||
|
||||
Reference in New Issue
Block a user