Work on inventory management
This commit is contained in:
+18
-4
@@ -1,5 +1,7 @@
|
||||
module Dodge.InputFocus
|
||||
( inTermFocus
|
||||
, inInvRegex
|
||||
, inSubInvRegex
|
||||
, inputFocus
|
||||
) where
|
||||
|
||||
@@ -15,13 +17,25 @@ inTermFocus w = fromMaybe False $ do
|
||||
connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus
|
||||
return $ hasfocus && connectionstatus == TerminalReady
|
||||
|
||||
inputFocus :: World -> Bool
|
||||
inputFocus w = inTermFocus w || inregexfocus
|
||||
where
|
||||
inregexfocus = fromMaybe False $ do
|
||||
inInvRegex :: World -> Bool
|
||||
inInvRegex w = fromMaybe False $ do
|
||||
sss <- w ^? hud . hudElement . diSections
|
||||
i <- sss ^? sssSelPos . _Just
|
||||
ss <- sss ^? sssSections . ix i
|
||||
j <- ss ^? ssCursor . _Just . scurSel
|
||||
si <- ss ^? ssItems . ix j
|
||||
return $ case si of
|
||||
SelectionRegex {} -> True
|
||||
_ -> False
|
||||
|
||||
inSubInvRegex :: World -> Bool
|
||||
inSubInvRegex w = fromMaybe False $ do
|
||||
sm <- w ^? hud . hudElement . subInventory . subInvMap
|
||||
i <- sm ^? smSelPos . _Just
|
||||
si <- sm ^? smShownItems . ix i
|
||||
case si of
|
||||
SelectionRegex {} -> return True
|
||||
_ -> return False
|
||||
|
||||
inputFocus :: World -> Bool
|
||||
inputFocus w = inTermFocus w || inSubInvRegex w || inInvRegex w
|
||||
|
||||
Reference in New Issue
Block a user