Move wall collisions around

This commit is contained in:
2022-06-26 10:52:46 +01:00
parent ee9523dabb
commit 15b98e38ac
5 changed files with 33 additions and 58 deletions
+24
View File
@@ -0,0 +1,24 @@
module Dodge.Base.Wall where
import Dodge.Data
import Geometry
wlIsOpaque :: Wall -> Bool
wlIsOpaque wl = case _wlOpacity wl of
Opaque -> True
_ -> False
wlIsSeeThrough :: Wall -> Bool
wlIsSeeThrough wl = case _wlOpacity wl of
SeeThrough -> True
_ -> False
reflDirWall :: Point2 -> Point2 -> Wall -> Float
reflDirWall sp ep wl = argV (reflectIn (uncurry (-.-) (_wlLine wl)) (ep -.- sp))
-- point free nonsense
reflVelWallDamp :: Float -> Wall -> Point2 -> Point2
reflVelWallDamp x = reflectInParam x . uncurry (-.-) . _wlLine
-- point free nonsense
reflVelWall :: Wall -> Point2 -> Point2
reflVelWall = reflectIn . uncurry (-.-) . _wlLine