tracer/src/Types/Interior.hs

60 lines
1.6 KiB
Haskell
Raw Normal View History

2018-03-03 16:03:17 +00:00
module Types.Interior where
import Data.Matrix as M
-- internal imports
import Types.Map
import Types.UserData
data Cluster
= ClusterBox1
2018-03-31 21:22:10 +00:00
| ClusterCornerTable
2018-04-01 02:51:15 +00:00
| ClusterTableGroup
2018-03-03 16:03:17 +00:00
deriving (Enum, Bounded)
clusterMat :: Cluster -> Matrix (Maybe ImgId)
clusterMat ClusterBox1 =
M.fromLists
2018-03-05 20:11:38 +00:00
-- [ [ Nothing]
[ [Just ImgMiscBox1]
-- , [Nothing, Nothing, Nothing]
2018-03-03 16:03:17 +00:00
]
2018-03-31 21:22:10 +00:00
clusterMat ClusterCornerTable =
M.fromLists
[ [Just ImgEmpty, Just ImgMiscTable2, Just ImgMiscTableCorner]
2018-04-01 02:51:15 +00:00
, [Just ImgEmpty, Just ImgEmpty , Just ImgMiscTable1]
, [Just ImgEmpty, Just ImgEmpty , Just ImgEmpty]
]
clusterMat ClusterTableGroup =
M.fromLists
[ [ Just ImgEmpty, Just ImgMiscTable2, Just ImgMiscTableCorner
, Just ImgEmpty, Just ImgMiscTable2, Just ImgMiscTableCorner
]
, [ Just ImgEmpty, Just ImgEmpty, Just ImgMiscTable1
, Just ImgEmpty, Just ImgEmpty, Just ImgMiscTable1
]
, [ Just ImgEmpty, Just ImgEmpty, Just ImgEmpty
, Just ImgEmpty, Just ImgEmpty, Just ImgEmpty
]
, [ Nothing, Nothing, Nothing
, Just ImgEmpty, Just ImgMiscTable2, Just ImgMiscTableCorner
]
, [ Nothing, Nothing, Nothing
, Just ImgEmpty, Just ImgEmpty, Just ImgMiscTable1
]
2018-03-31 21:22:10 +00:00
]
2018-03-03 16:03:17 +00:00
clusterRoom :: Cluster -> TileState
clusterRoom ClusterBox1 = Offi
2018-03-31 21:22:10 +00:00
clusterRoom ClusterCornerTable = Offi
2018-04-01 02:51:15 +00:00
clusterRoom ClusterTableGroup = Offi
2018-03-03 16:03:17 +00:00
instance Size Cluster where
size c =
let mat = clusterMat c
in fromIntegral ((nrows mat) * (ncols mat))
-- class ClusterData c where
-- clusterMat :: c -> Matrix (Maybe ImgId)