33 lines
737 B
Haskell
33 lines
737 B
Haskell
{-# 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
|