{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Data.Item where import Geometry.Data import Control.Lens data ItemDimension = ItemDimension { _dimRad :: Float , _dimCenter :: Point3 , _dimAttachPos :: Point3 } data ItemPortage = HeldItem { _handlePos :: Float , _muzPos :: Float } | WornItem | NoPortage data ItemValue = ItemValue { _ivInt :: Int , _ivType :: ItemValueType } data ItemValueType = MundaneItem | ArtefactItem data ItemPos = InInv { _ipCrID :: Int , _ipInvID :: Int } | OnFloor { _ipFlID :: Int } | VoidItm makeLenses ''ItemDimension makeLenses ''ItemPortage makeLenses ''ItemValue makeLenses ''ItemPos