tracer/src/Types/Collidible.hs

80 lines
2.1 KiB
Haskell

{-# LANGUAGE MultiParamTypeClasses #-}
module Types.Collidible where
import Affection as A
-- internal imports
import Types.Map (Boundaries(..))
import Types.ImgId (ImgId(..))
import Types.Animation (AnimState(..))
class Collidible c where
collisionObstacle :: c -> [(Boundaries Double)]
instance Collidible AnimState where
instance Collidible ImgId where
collisionObstacle ImgMiscBox1 =
[ Boundaries (0.2, 0.34) (0.8, 1)
]
collisionObstacle ImgWallAsc =
[ Boundaries (0.34, 0) (0.66, 1)
]
collisionObstacle ImgWallDesc =
[ Boundaries (0, 0.34) (1, 0.66)
]
collisionObstacle ImgWallCornerN =
[ Boundaries (0, 0.34) (0.66, 0.66)
, Boundaries (0.34, 0.34) (0.66, 1)
]
collisionObstacle ImgWallCornerE =
[ Boundaries (0.34, 0.34) (1, 0.66)
, Boundaries (0.34, 0.34) (0.66, 1)
]
collisionObstacle ImgWallCornerS =
[ Boundaries (0.34, 0.34) (1, 0.66)
, Boundaries (0.34, 0) (0.66, 0.66)
]
collisionObstacle ImgWallCornerW =
[ Boundaries (0, 0.34) (0.66, 0.66)
, Boundaries (0.34, 0) (0.66, 0.66)
]
collisionObstacle ImgWallTNE =
[ Boundaries (0, 0.34) (1, 0.66)
, Boundaries (0.34, 0.34) (0.66, 1)
]
collisionObstacle ImgWallTSW =
[ Boundaries (0, 0.34) (1, 0.66)
, Boundaries (0.34, 0) (0.66, 0.66)
]
collisionObstacle ImgWallTSE =
[ Boundaries (0.34, 0) (0.66, 1)
, Boundaries (0.34, 0.34) (1, 0.66)
]
collisionObstacle ImgWallTNW =
[ Boundaries (0.34, 0) (0.66, 1)
, Boundaries (0, 0.34) (0.66, 0.66)
]
collisionObstacle ImgWallCross =
[ Boundaries (0.34, 0) (0.66, 1)
, Boundaries (0, 0.34) (1, 0.66)
]
collisionObstacle ImgMiscTable1 =
[ Boundaries (0, 0.34) (1, 1)
]
collisionObstacle ImgMiscTable2 =
[ Boundaries (0, 0) (0.63, 1)
]
collisionObstacle ImgMiscTable3 =
[ Boundaries (0, 0) (1, 0.63)
]
collisionObstacle ImgMiscTable4 =
[ Boundaries (0.34, 0) (1, 1)
]
collisionObstacle ImgMiscTableCorner =
[ Boundaries (0, 0) (0.63, 1)
, Boundaries (0, 0.34) (1, 1)
]
collisionObstacle _ = []