40 lines
1.1 KiB
Haskell
40 lines
1.1 KiB
Haskell
{-# 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
|