Refactor, try to limit dependencies

This commit is contained in:
2022-07-28 00:59:56 +01:00
parent 8aa5c17ab9
commit 160560af5f
418 changed files with 15104 additions and 13342 deletions
+33 -25
View File
@@ -1,26 +1,30 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Room where
import Control.Lens
import qualified Data.Set as S
import Geometry
import qualified Data.Set as S
import Control.Lens
data RoomPos = RoomPos
{ _rpPos :: Point2
{ _rpPos :: Point2
, _rpDir :: Float
, _rpType :: S.Set RoomPosType
, _rpLinkStatus :: RPLinkStatus
, _rpPlacementUse :: Int
}
deriving (Eq,Ord,Show)
deriving (Eq, Ord, Show)
data RoomLink = RoomLink
{ _rlType :: S.Set RoomLinkType
, _rlPos :: Point2
, _rlDir :: Float
} deriving (Eq,Ord)
data RoomType = DefaultRoomType
{ _rlType :: S.Set RoomLinkType
, _rlPos :: Point2
, _rlDir :: Float
}
deriving (Eq, Ord)
data RoomType
= DefaultRoomType
| RectRoomType
{ _numLinkEW :: Int
, _numLinkNS :: Int
@@ -29,7 +33,8 @@ data RoomType = DefaultRoomType
, _rmWidth :: Float
, _rmHeight :: Float
}
deriving (Eq,Ord)
deriving (Eq, Ord)
data RoomLinkType
= OutLink
| InLink
@@ -37,39 +42,42 @@ data RoomLinkType
| OnEdge CardinalPoint
| FromEdge CardinalPoint Int
| BlockedLink
deriving (Eq,Ord,Show)
deriving (Eq, Ord, Show)
data CardinalPoint
= North
| East
| South
| West
deriving (Eq,Ord,Show)
deriving (Eq, Ord, Show)
data RoomWire
= --RoomWire Point2 Float
WallWire Point2 Float Float
WallWire Point2 Float Float
data RPLinkStatus
= UsedOutLink
{ _rplsType :: S.Set RoomLinkType
= UsedOutLink
{ _rplsType :: S.Set RoomLinkType
, _rplsChildNum :: Int
, _rplsOutRoomID :: Int
}
| UsedInLink
{ _rplsType :: S.Set RoomLinkType
| UsedInLink
{ _rplsType :: S.Set RoomLinkType
, _rplsInRoomID :: Int
}
| UnusedLink { _rplsType :: S.Set RoomLinkType }
| UnusedLink {_rplsType :: S.Set RoomLinkType}
| NotLink
deriving (Eq,Ord,Show)
data PathFromEdge = PathFromEdge CardinalPoint Int
deriving (Eq,Ord,Show)
deriving (Eq, Ord, Show)
data RoomPosType
data PathFromEdge = PathFromEdge CardinalPoint Int
deriving (Eq, Ord, Show)
data RoomPosType
= RoomPosOnPath {_onPathFromEdges :: S.Set PathFromEdge}
| RoomPosOffPath {_offPathFromEdges :: S.Set PathFromEdge}
| RoomPosExLink
| RoomPosLab Int
deriving (Eq,Ord,Show)
deriving (Eq, Ord, Show)
makeLenses ''RoomLink
makeLenses ''RoomPos