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
+38 -33
View File
@@ -1,47 +1,52 @@
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Door where
import GHC.Generics
import Data.Aeson
import Dodge.Data.PathGraph
import Dodge.Data.MountedObject
import Geometry.Data
import Dodge.Data.WorldEffect
import qualified Data.IntSet as IS
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Door (
module Dodge.Data.Door,
module Dodge.Data.MountedObject,
module Dodge.Data.PathGraph,
module Dodge.Data.WorldEffect,
) where
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import qualified Data.IntSet as IS
import Dodge.Data.MountedObject
import Dodge.Data.PathGraph
import Dodge.Data.WorldEffect
import Geometry.Data
data DoorStatus = DoorOpen | DoorClosed | DoorHalfway | DoorInt Int
deriving (Eq, Ord, Show,Read,Generic)
instance ToJSON DoorStatus where
toEncoding = genericToEncoding defaultOptions
instance FromJSON DoorStatus
data PushSource = PushesItself
deriving (Eq, Ord, Show, Read)
data PushSource
= PushesItself
| PushedBy Int
| NotPushed
deriving (Eq,Ord,Show,Read,Generic)
instance ToJSON PushSource where
toEncoding = genericToEncoding defaultOptions
instance FromJSON PushSource
deriving (Eq, Ord, Show, Read)
data Door = Door
{ _drID :: Int
, _drWallIDs :: IS.IntSet
, _drStatus :: DoorStatus
, _drStatus :: DoorStatus
, _drTrigger :: WdBl
, _drMech :: DrWdWd
, _drPos :: (Point2,Point2)
, _drOpenPos :: (Point2,Point2)
, _drClosePos :: (Point2,Point2)
, _drHP :: Int
, _drDeath :: DrWdWd
, _drSpeed :: Float
, _drMech :: DrWdWd
, _drPos :: (Point2, Point2)
, _drOpenPos :: (Point2, Point2)
, _drClosePos :: (Point2, Point2)
, _drHP :: Int
, _drDeath :: DrWdWd
, _drSpeed :: Float
, _drPushedBy :: PushSource
, _drPushes :: Maybe Int
, _drMounts :: [MountedObject]
, _drObstructs :: [(Int,Int,PathEdge)]
, _drObstacleType :: EdgeObstacle
, _drObstructs :: [(Int, Int, PathEdge)]
, _drObstacleType :: EdgeObstacle
}
deriving (Eq,Ord,Show,Read,Generic)
instance ToJSON Door where
toEncoding = genericToEncoding defaultOptions
instance FromJSON Door
deriving (Eq, Ord, Show, Read)
makeLenses ''Door
deriveJSON defaultOptions ''DoorStatus
deriveJSON defaultOptions ''PushSource
deriveJSON defaultOptions ''Door