{-# LANGUAGE LambdaCase #-} module Dodge.Base.CardinalPoint where import Dodge.Data.Room import Geometry cardList :: [CardinalPoint] cardList = [North, East, South, West] cardVec :: CardinalPoint -> Point2 cardVec cp = case cp of North -> V2 0 1 South -> V2 0 (-1) East -> V2 1 0 West -> V2 (-1) 0 card8Vec :: Cardinal8 -> Point2 card8Vec cp = case cp of North8 -> V2 0 1 NorthEast8 -> V2 1 1 East8 -> V2 1 0 SouthEast8 -> V2 1 (-1) South8 -> V2 0 (-1) SouthWest8 -> V2 (-1) (-1) West8 -> V2 (-1) 0 NorthWest8 -> V2 (-1) 1 cardinalBetweenAdj :: CardinalPointBetween -> (CardinalPoint,CardinalPoint) cardinalBetweenAdj = \case NorthEast -> (North,East) SouthEast -> (South,East) SouthWest -> (South,West) NorthWest -> (North,West)