{-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.Item.Use.Consumption.LoadAction where import Dodge.Data.AimStance import Dodge.Data.Item.Location import NewInt import qualified Data.IntSet as IS import Control.Lens import Data.Aeson import Data.Aeson.TH --import Sound.Data --data Manipulation -- should be ManipulatedObject? -- = Manipulator {_manObject :: ManipulatedObject } -- | Brute -- deriving (Eq, Ord, Show, Read) --Generic, Flat) data ManipulatedObject = HeldItem { _hiRootSelectedItem :: NewInt InvInt , _hiAimStance :: AimStance , _hiAttachedItems :: IS.IntSet -- this should probably be NewIntSet InvInt also } | HandsFree -- = SortInventory -- | SelectedItem -- { _imRootSelectedItem :: NewInt InvInt -- , _imAimStance :: AimStance -- , _imAttachedItems :: IS.IntSet -- this should probably be NewIntSet InvInt also -- } -- | SelNothing -- | SortCloseItem -- | SelCloseItem {_ispCloseItem :: Int} -- | SortCloseButton -- | SelCloseButton {_ispCloseButton :: Int} -- deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''ManipulatedObject --makeLenses ''Manipulation deriveJSON defaultOptions ''ManipulatedObject --deriveJSON defaultOptions ''Manipulation