59 lines
1.4 KiB
Haskell
59 lines
1.4 KiB
Haskell
{-# LANGUAGE DeriveAnyClass #-}
|
|
{-# LANGUAGE DeriveGeneric #-}
|
|
{-# LANGUAGE StrictData #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
|
|
module Dodge.Data.HUD where
|
|
|
|
import Data.IntSet (IntSet)
|
|
import Data.IntMap
|
|
import Control.Lens
|
|
import Dodge.Data.Button
|
|
import Dodge.Data.Combine
|
|
import Dodge.Data.FloorItem
|
|
import Dodge.Data.SelectionList
|
|
import Geometry.Data
|
|
|
|
data HUDElement
|
|
= DisplayInventory
|
|
{ _subInventory :: SubInventory
|
|
, _diSections :: IMSS ()
|
|
, _diSelection :: Maybe (Int, Int)
|
|
, _diInvFilter :: Maybe String
|
|
, _diCloseFilter :: Maybe String
|
|
, _diSelectionExtra :: IntSet
|
|
}
|
|
| DisplayCarte
|
|
|
|
--data MouseInventorySelection
|
|
-- = MouseInvSelect
|
|
-- {_misSelStart :: (Int, Int), _misMaybeEnd :: Maybe (Int, Int)}
|
|
-- | MouseInvDrag
|
|
-- | MouseInvNothing
|
|
|
|
data SubInventory
|
|
= NoSubInventory
|
|
-- { _nsSelected :: MouseInventorySelection
|
|
-- }
|
|
| ExamineInventory
|
|
| CombineInventory
|
|
{ _ciSections :: IntMap (SelectionSection CombinableItem)
|
|
, _ciSelection :: Maybe (Int, Int)
|
|
, _ciFilter :: Maybe String
|
|
}
|
|
| LockedInventory
|
|
| DisplayTerminal {_termID :: Int}
|
|
|
|
data HUD = HUD
|
|
{ _hudElement :: HUDElement
|
|
, _carteCenter :: Point2
|
|
, _carteZoom :: Float
|
|
, _carteRot :: Float
|
|
, _closeObjects :: [Either FloorItem Button]
|
|
}
|
|
|
|
makeLenses ''HUD
|
|
makeLenses ''HUDElement
|
|
makeLenses ''SubInventory
|
|
--makeLenses ''MouseInventorySelection
|