Refactor machines

This commit is contained in:
2022-07-24 20:55:44 +01:00
parent d6a94ec4bc
commit 24531b75a1
10 changed files with 110 additions and 59 deletions
+15
View File
@@ -0,0 +1,15 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.GenParams
where
import Color
import Dodge.Data.Damage.Type
import Control.Lens
import qualified Data.Map.Strict as M
newtype GenParams = GenParams
{ _sensorCoding :: M.Map DamageType (PaletteColor,DecorationShape)
}
deriving (Eq,Ord,Show,Read)
data DecorationShape = PLUS | SQUARE | CIRCLE | THREELINES
deriving (Eq,Ord,Enum,Show,Read)
makeLenses ''GenParams
+49
View File
@@ -0,0 +1,49 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Machine
where
import Dodge.Data.GenParams
import Dodge.Data.Item
import Sound.Data
import Dodge.Data.Object
import Dodge.Data.Damage
import Dodge.Data.Sensor
import Geometry.Data
import Color
import Dodge.Data.Material
import qualified Data.IntSet as IS
import qualified Data.Map.Strict as M
import Control.Lens
data MachineDraw = MachineDrawMempty
| MachineDrawTerminal
| MachineDrawTurret
| MachineDrawDamageSensor Float (PaletteColor,DecorationShape)
data Machine = Machine
{ _mcID :: Int
, _mcWallIDs :: IS.IntSet
, _mcDraw :: MachineDraw --Machine -> SPic
, _mcMaterial :: Material
, _mcPos :: Point2
, _mcDir :: Float
, _mcColor :: Color
, _mcHP :: Int
, _mcSensor :: Sensor
, _mcDamage :: [Damage]
, _mcType :: MachineType
, _mcMounts :: M.Map Object Int
, _mcName :: String
, _mcCloseSound :: Maybe SoundID
}
data MachineType
= StaticMachine
| Turret
{ _tuWeapon :: Item
, _tuTurnSpeed :: Float
, _tuFireTime :: Int
, _tuMCrID :: Maybe Int
}
makeLenses ''Machine
makeLenses ''MachineType