Files
loop/src/Dodge/Data/Item/Misc.hs
T
2022-08-20 17:54:35 +01:00

49 lines
1.1 KiB
Haskell

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Item.Misc where
import Flat
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Geometry.Data
import TH.Derive
import Data.Store
import LinearHelp
data ItemDimension = ItemDimension
{ _dimRad :: Float
, _dimCenter :: Point3
, _dimAttachPos :: Point3
}
deriving (Eq, Show, Read, Generic, Flat)
data ItemPortage
= HeldItem
{ _handlePos :: Float
, _muzPos :: Float
}
| WornItem
| NoPortage
deriving (Eq, Show, Read, Generic, Flat)
data ItemValue = ItemValue
{ _ivInt :: Int
, _ivType :: ItemValueType
}
deriving (Eq, Show, Read, Generic, Flat)
data ItemValueType = MundaneItem | ArtefactItem
deriving (Eq, Show, Read, Generic, Flat)
makeLenses ''ItemDimension
makeLenses ''ItemPortage
makeLenses ''ItemValue
deriveJSON defaultOptions ''ItemDimension
deriveJSON defaultOptions ''ItemPortage
deriveJSON defaultOptions ''ItemValue
deriveJSON defaultOptions ''ItemValueType