Improve terminal update/display
This commit is contained in:
+10
-11
@@ -159,7 +159,7 @@ drawSubInventory subinv cfig w = case subinv of
|
||||
-- LockedInventory -> mempty -- topInvCursor col cursPos cfig w
|
||||
NoSubInventory{} -> drawRBOptions cfig w
|
||||
ExamineInventory -> drawExamineInventory cfig w
|
||||
DisplayTerminal tid -> drawTerminalDisplay tid cfig (w ^. cWorld . lWorld)
|
||||
DisplayTerminal tid -> foldMap (drawTerminalDisplay cfig) (w ^? cWorld . lWorld . terminals . ix tid)
|
||||
CombineInventory{_ciSections = sss} -> drawCombineInventory cfig sss w
|
||||
MapperInventory _ _ itid -> drawMapperInventory itid w
|
||||
|
||||
@@ -354,26 +354,25 @@ combineInventoryExtra sss msel cfig w = fold $ do
|
||||
sss'
|
||||
(Just (0, i))
|
||||
|
||||
drawTerminalDisplay :: Int -> Configuration -> LWorld -> Picture
|
||||
drawTerminalDisplay tid cfig w = fold $ do
|
||||
tm <- w ^? terminals . ix tid
|
||||
let tsize = getMaxLinesTM + 1
|
||||
return $
|
||||
invHead cfig ("T-" ++ show tid)
|
||||
<> drawSelectionList secondColumnParams cfig (f tm)
|
||||
--drawTerminalDisplay :: Int -> Configuration -> LWorld -> Picture
|
||||
drawTerminalDisplay :: Configuration -> Terminal -> Picture
|
||||
drawTerminalDisplay cfig tm = invHead cfig ("T-" ++ show tid)
|
||||
<> drawSelectionList secondColumnParams cfig f
|
||||
<> color
|
||||
(withAlpha 0.5 green) -- consider integrating termScreenColor somehow
|
||||
(drawSelectionListBackground secondColumnParams cfig tsize)
|
||||
<> color (dark $ _tmExternalColor tm) (drawTitleBackground cfig)
|
||||
where
|
||||
tid = tm ^. tmID
|
||||
tsize = getMaxLinesTM + 1
|
||||
toselitm (str, col) = SelItem [str] 1 55 True col 0 Nothing
|
||||
-- not sure if the width (55) is correct here
|
||||
f tm =
|
||||
map toselitm . displayTermInput tm
|
||||
f =
|
||||
map toselitm . displayTermInput
|
||||
. reverse
|
||||
. take getMaxLinesTM
|
||||
$ _tmDisplayedLines tm
|
||||
displayTermInput tm = case _tmStatus tm of
|
||||
displayTermInput = case _tmStatus tm of
|
||||
TerminalOff -> id
|
||||
TerminalDeactivated -> id
|
||||
TerminalLineRead -> id
|
||||
|
||||
Reference in New Issue
Block a user