module BuildingData (Building(..), BuildingType(..), buildingOccupies) where data Building = Building deriving (Read,Show) data BuildingType = Monolith | Portal deriving (Eq,Ord,Read,Show) -- | Get a list of squares, relative to the center of the building (0,0), -- that a building occupies. These squares must be free of unfriendly terrain -- (mountains, trees, water, lava, etc.) and no other objects can co-occupy these squares. -- -- A goal is that every building type has a unique occupation signature, -- so that it can be identified by it's shape alone. buildingOccupies :: BuildingType -> [(Integer,Integer)] -- Monolith: X buildingOccupies Monolith = [(0,0)] -- Portal: XXX buildingOccupies Portal = [(0,0),(-1,0),(1,0)]