Prepare for feeding messages
authorJoachim Breitner <mail@joachim-breitner.de>
Sat, 27 Jun 2009 11:48:30 +0000 (13:48 +0200)
committerJoachim Breitner <mail@joachim-breitner.de>
Sat, 27 Jun 2009 11:48:30 +0000 (13:48 +0200)
src/Lseed/Data.hs
src/Lseed/Mainloop.hs

index 4719440..c0345b1 100644 (file)
@@ -104,9 +104,14 @@ data GardenSource = GardenSource {
          getGarden :: IO (Garden ())
        -- | Given a plant, returns the genome to be used for a seedling.
        , getUpdatedCode :: Planted () -> IO GrammarFile
+       -- | Text to display on the screen
+       , getScreenMessage :: IO String
        }
 constGardenSource :: Garden () -> GardenSource
-constGardenSource garden = GardenSource (return garden) (return . genome)
+constGardenSource garden = GardenSource (return garden) (return . genome) (return "")
+
+addMessageSource :: (IO String) -> GardenSource -> GardenSource
+addMessageSource sm gs = gs { getScreenMessage = sm }
 
 -- | A complete grammar file
 type GrammarFile = [ GrammarRule ]
index 6b30876..580e402 100644 (file)
@@ -49,11 +49,12 @@ lseedMainLoop rt obs gardenSource maxDays = do
 
                obState obs tick sampleAngle garden
                when rt $ do
+                       text <- getScreenMessage gardenSource 
                        obGrowingState obs $ \later -> 
                                let tickDiff = timeSpanFraction tickLength tickStart later
                                    dayDiff = (fromIntegral tickOfDay + tickDiff) /
                                              fromIntegral ticksPerDay
-                                   timeInfo = formatTimeInfo day dayDiff ++ " -- Connect now! http://lseed.gpn.entropia.de/ -- Changes auf http://entropia.de/wiki/L-seed"
+                                   timeInfo = formatTimeInfo day dayDiff ++ text
                                    visualizeAngle = lightAngle dayDiff
                                    gardenNow = annotateGarden visualizeAngle $ 
                                                growingGarden tickDiff