X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=Render.hs;h=036944b53b0681e2514198bb2fe7a236d0294978;hb=259904bfc4ca2f8b90381dfdb887750b9bdaf368;hp=fc321f6c46967eeaef1ebde9880a326dcc534956;hpb=c68579ccc2b03996eec6ac5c1526d6e5d20c3c78;p=ekitaihs.git diff --git a/Render.hs b/Render.hs index fc321f6..036944b 100644 --- a/Render.hs +++ b/Render.hs @@ -6,10 +6,14 @@ import Brick.Types import Brick.Widgets.Core import Graphics.Vty.Input.Events +import qualified Data.Vector as V +import Sim + type ResourceName = String -data EkitaiState = - EkitaiState deriving (Show) +data EkitaiState = EkitaiState + { ekitaiStateSim :: Simulation + } deriving (Show) ekitaiApp :: App EkitaiState e ResourceName ekitaiApp = App @@ -20,11 +24,15 @@ ekitaiApp = App , appAttrMap = const $ attrMap mempty [] } -buildInitialState :: IO EkitaiState -buildInitialState = pure EkitaiState +buildInitialState :: Simulation -> IO EkitaiState +buildInitialState sim = + pure EkitaiState + { ekitaiStateSim = sim + } drawEkitai :: EkitaiState -> [Widget ResourceName] -drawEkitai state = [] +-- drawEkitai state = [ vBox $ drawSim $ ekitaiStateSim state ] +drawEkitai state = [ vBox [str $ simToString $ ekitaiStateSim state] ] handleEkitaiEvent :: EkitaiState -> BrickEvent n e -> EventM n (Next EkitaiState) handleEkitaiEvent s e = @@ -32,6 +40,7 @@ handleEkitaiEvent s e = VtyEvent vtye -> case vtye of EvKey (KChar 'q') [] -> halt s + EvKey (KChar 's') [] -> continue s { ekitaiStateSim = physStep $ ekitaiStateSim s } _ -> continue s _ -> continue s