Files
loop/src/Dodge/Data/CWorld.hs
T
2025-07-30 09:20:41 +01:00

53 lines
1.1 KiB
Haskell

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.CWorld (
module Dodge.Data.CWorld,
module Dodge.Data.LWorld,
module Dodge.Data.Camera,
) where
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Data.Graph.Inductive
import Data.Tile
import Dodge.Data.Camera
import Dodge.Data.LWorld
import Dodge.GameRoom
import Geometry.ConvexPoly
import Geometry.Data
data CWorld = CWorld
{ _lWorld :: LWorld
, _cwGen :: CWGen
, _cClock :: Int
, _cwTiles :: [Tile]
, _pathGraph :: Gr Point2 PathEdge
, _numberFloorVerxs :: Int
, _chasms :: [[Point2]]
, _numberChasmVerxs :: Int
}
data CWGen = CWGen
{ _cwgParams :: GenParams
, _cwgWorldBounds :: Bounds
, _cwgGameRooms :: [GameRoom] -- consider using an IntMap
, _cwgRoomClipping :: [ConvexPoly]
, _cwgSeed :: Int
}
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''CWorld
makeLenses ''CWGen
concat
<$> mapM
(deriveJSON defaultOptions)
[ ''CWGen
, ''CWorld
-- , ''TimeFlowStatus
]