{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.RightButtonOptions where import Control.Lens import Data.Aeson import Data.Aeson.TH import Dodge.Data.Equipment.Misc data RightButtonOptions = NoRightButtonOptions | EquipOptions { _opSel :: Int } --deriving (Eq, Ord, Show, Read) --Generic, Flat) data EquipmentAllocation = DoNotMoveEquipment | PutOnEquipment { _allocNewPos :: EquipSite } | MoveEquipment { _allocNewPos :: EquipSite , _allocOldPos :: EquipSite } | SwapEquipment { _allocNewPos :: EquipSite , _allocOldPos :: EquipSite , _allocSwapID :: Int } | ReplaceEquipment { _allocNewPos :: EquipSite , _allocRemoveID :: Int } | RemoveEquipment { _allocOldPos :: EquipSite } --deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''RightButtonOptions makeLenses ''EquipmentAllocation deriveJSON defaultOptions ''EquipmentAllocation deriveJSON defaultOptions ''RightButtonOptions