{-# LANGUAGE DeriveGeneric #-} --{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.Item.Use.Consumption.LoadAction where 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 = SortInventory | SelectedItem { _imSelectedItem :: NewInt InvInt , _imRootSelectedItem :: NewInt InvInt , _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