Move towards unifying RoomPos constructors

This commit is contained in:
2022-03-10 16:21:44 +00:00
parent 907cca0ef0
commit 7b1ac2b682
7 changed files with 94 additions and 60 deletions
+43 -21
View File
@@ -116,39 +116,60 @@ data CardinalPoint
data RoomWire
= --RoomWire Point2 Float
WallWire Point2 Float Float
data RPLinkStatus
= UsedAsOutLink
{ _rplsType :: S.Set RoomLinkType
, _rplsChildNum :: Int
, _rplsOutRoomID :: Int
}
| UsedAsInLink
{ _rplsType :: S.Set RoomLinkType
, _rplsInRoomID :: Int
}
| UnusedAsLink { _rplsType :: S.Set RoomLinkType }
| NotLink
deriving (Eq,Ord,Show)
data RoomPos
= UsedOutLink
{_rpChildNum :: Int
,_rpOutRoomID :: Int
,_rpPos :: Point2
,_rpDir :: Float
,_rpLinkType :: S.Set RoomLinkType
{ _rpChildNum :: Int
, _rpOutRoomID :: Int
, _rpPos :: Point2
, _rpDir :: Float
, _rpLinkType :: S.Set RoomLinkType
, _rpLinkStatus :: RPLinkStatus
}
| UsedInLink
{_rpInRoomID :: Int
,_rpPos :: Point2
,_rpDir :: Float
,_rpLinkType :: S.Set RoomLinkType
{ _rpInRoomID :: Int
, _rpPos :: Point2
, _rpDir :: Float
, _rpLinkType :: S.Set RoomLinkType
, _rpLinkStatus :: RPLinkStatus
}
| UnusedLink
{_rpPos :: Point2
,_rpDir ::Float
,_rpLinkType :: S.Set RoomLinkType
{ _rpPos :: Point2
, _rpDir ::Float
, _rpLinkType :: S.Set RoomLinkType
, _rpLinkStatus :: RPLinkStatus
}
| UsedLink
{_rpPos :: Point2
,_rpDir :: Float
,_rpLinkType :: S.Set RoomLinkType
{ _rpPos :: Point2
, _rpDir :: Float
, _rpLinkType :: S.Set RoomLinkType
, _rpLinkStatus :: RPLinkStatus
}
| UsedSpot
{_rpPos :: Point2
,_rpDir :: Float
,_rpType :: S.Set RoomPosType
{ _rpPos :: Point2
, _rpDir :: Float
, _rpType :: S.Set RoomPosType
, _rpLinkStatus :: RPLinkStatus
}
| UnusedSpot
{_rpPos :: Point2
,_rpDir :: Float
,_rpType :: S.Set RoomPosType
{ _rpPos :: Point2
, _rpDir :: Float
, _rpType :: S.Set RoomPosType
, _rpLinkStatus :: RPLinkStatus
}
deriving (Eq,Ord,Show)
@@ -165,6 +186,7 @@ makeLenses ''Placement
makeLenses ''RoomLink
makeLenses ''RoomPos
makeLenses ''RoomPosType
makeLenses ''RPLinkStatus
spNoID :: PlacementSpot -> PSType -> Placement
spNoID ps pst = Placement ps pst Nothing (const Nothing)