module Types.ImgId where

import Types.Map

data ImgId
  = ImgEmpty -- TODO: Find better solution thatn empty image.
  | ImgWallAsc
  | ImgWallDesc
  | ImgWallCornerN
  | ImgWallCornerE
  | ImgWallCornerS
  | ImgWallCornerW
  | ImgWallTNE
  | ImgWallTSE
  | ImgWallTSW
  | ImgWallTNW
  | ImgWallCross
  | ImgMiscBox1
  | ImgMiscTable1
  | ImgMiscTable2
  | ImgMiscTable3
  | ImgMiscTable4
  | ImgMiscTableCorner
  -- | ImgIntrNE
  -- | ImgIntrE
  -- | ImgIntrSE
  -- | ImgIntrS
  -- | ImgIntrSW
  -- | ImgIntrW
  -- | ImgIntrNW
  -- | ImgIntrN
  deriving (Show, Eq, Ord, Enum)

isWall :: ImgId -> Bool
isWall ImgMiscBox1 = False
isWall ImgMiscTable1 = False
isWall ImgMiscTable2 = False
isWall ImgMiscTable3 = False
isWall ImgMiscTable4 = False
isWall ImgMiscTableCorner = False
isWall _ = True

imgObstacle :: Maybe ImgId -> [(Boundaries Double)]
imgObstacle (Just ImgMiscBox1) = [Boundaries (0.2, 0.34) (0.8, 1)]
imgObstacle (Just ImgWallAsc) = [Boundaries (0.34, 0) (0.66, 1)]
imgObstacle (Just ImgWallDesc) = [Boundaries (0, 0.34) (1, 0.66)]
imgObstacle (Just ImgWallCornerN) =
  [ Boundaries (0, 0.34) (0.66, 0.66)
  , Boundaries (0.34, 0.34) (0.66, 1)
  ]
imgObstacle (Just ImgWallCornerE) =
  [ Boundaries (0.34, 0.34) (1, 0.66)
  , Boundaries (0.34, 0.34) (0.66, 1)
  ]
imgObstacle (Just ImgWallCornerS) =
  [ Boundaries (0.34, 0.34) (1, 0.66)
  , Boundaries (0.34, 0) (0.66, 0.66)
  ]
imgObstacle (Just ImgWallCornerW) =
  [ Boundaries (0, 0.34) (0.66, 0.66)
  , Boundaries (0.34, 0) (0.66, 0.66)
  ]
imgObstacle (Just ImgWallTNE) =
  [ Boundaries (0, 0.34) (1, 0.66)
  , Boundaries (0.34, 0.34) (0.66, 1)
  ]
imgObstacle (Just ImgWallTSW) =
  [ Boundaries (0, 0.34) (1, 0.66)
  , Boundaries (0.34, 0) (0.66, 0.66)
  ]
imgObstacle (Just ImgWallTSE) =
  [ Boundaries (0.34, 0) (0.66, 1)
  , Boundaries (0.34, 0.34) (1, 0.66)
  ]
imgObstacle (Just ImgWallTNW) =
  [ Boundaries (0.34, 0) (0.66, 1)
  , Boundaries (0, 0.34) (0.66, 0.66)
  ]
imgObstacle (Just ImgWallCross) =
  [ Boundaries (0.34, 0) (0.66, 1)
  , Boundaries (0, 0.34) (1, 0.66)
  ]
imgObstacle (Just ImgMiscTable1) =
  [ Boundaries (0, 0.34) (1, 1)
  ]
imgObstacle (Just ImgMiscTable2) =
  [ Boundaries (0, 0) (0.63, 1)
  ]
imgObstacle (Just ImgMiscTable3) =
  [ Boundaries (0, 0) (1, 0.63)
  ]
imgObstacle (Just ImgMiscTable4) =
  [ Boundaries (0.34, 0) (1, 1)
  ]
imgObstacle (Just ImgMiscTableCorner) =
  [ Boundaries (0, 0) (0.63, 1)
  , Boundaries (0, 0.34) (1, 1)
  ]
imgObstacle _ = []
