Tweak debug display

This commit is contained in:
2025-10-15 12:17:44 +01:00
parent 365821e969
commit e139499ed2
7 changed files with 174 additions and 137 deletions
+18 -14
View File
@@ -4,14 +4,13 @@ module Dodge.Menu (
splashMenu,
) where
import Dodge.Combine.Graph
import System.Directory
import qualified Data.Text.IO as TIO
import Control.Monad
import qualified Data.Aeson.Encode.Pretty as AEP
import Data.ByteString.Lazy.Char8 (unpack)
import Data.Maybe
import qualified Data.Text.IO as TIO
import Dodge.Base.Coordinate
import Dodge.Combine.Graph
import Dodge.Concurrent
import Dodge.Config
import Dodge.Data.Universe
@@ -28,6 +27,7 @@ import Padding
import Preload.Update
import qualified SDL
import System.Clipboard
import System.Directory
import Text.Read
splashMenu :: Universe -> ScreenLayer
@@ -96,13 +96,12 @@ seedStartOptions =
trySeedFromClipboard :: Universe -> IO Universe
trySeedFromClipboard u = do
mcstr <- getClipboardString
case mcstr >>= readMaybe of
return $ case mcstr >>= readMaybe of
Nothing ->
return $
pushScreen
(seedStartMenu "CLIPBOARD UNUSABLE, NEED INTEGER")
(u & uvScreenLayers %~ tail)
Just i -> return $ startSeedGame 0 i u
pushScreen
(seedStartMenu "CLIPBOARD UNUSABLE, NEED INTEGER")
(u & uvScreenLayers %~ tail)
Just i -> startSeedGame 0 i u
titleOptionsMenu :: String -> [MenuOption] -> Universe -> ScreenLayer
titleOptionsMenu = initializeOptionMenuBO "BACK" (popScreen . writeConfig)
@@ -141,8 +140,9 @@ debugMenuOptions =
g bd _ = (show bd, "True")
logOptions :: [MenuOption]
logOptions =
[ Toggle (uvIOEffects %~ \f u -> generateGraphs >> f u)
logOptions =
[ Toggle
(uvIOEffects %~ \f u -> generateGraphs >> f u)
(const $ MODString "Create item combination graph")
]
@@ -151,7 +151,6 @@ generateGraphs = do
createDirectoryIfMissing True "generated/graph"
TIO.writeFile "generated/graph/itemCombinations.gv" combinationsDotGraph
gameplayMenu :: Universe -> ScreenLayer
gameplayMenu = titleOptionsMenu "OPTIONS:GAMEPLAY" gameplayMenuOptions
@@ -229,8 +228,13 @@ unpause u' =
-- note that this won't update after it is first loaded
displayConfig :: Universe -> ScreenLayer
displayConfig u = titleOptionsNoWrite "CONFIG" (map (Toggle id . const . MODString)
$ listConfig u) u
displayConfig u =
titleOptionsNoWrite
"CONFIG"
( map (Toggle id . const . MODString) $
listConfig u
)
u
listConfig :: Universe -> [String]
listConfig =