Refactor concurrent side effects
This commit is contained in:
+4
-2
@@ -18,6 +18,7 @@ import qualified Data.ByteString.Lazy as BS
|
||||
import Dodge.Data.Universe
|
||||
--import qualified Data.Set as S
|
||||
import System.Directory
|
||||
--import Data.Sequence ((|>))
|
||||
|
||||
|
||||
writeSaveSlot :: SaveSlot -> Universe -> IO (Universe -> Maybe Universe)
|
||||
@@ -52,13 +53,14 @@ saveSlotPath QuicksaveSlot = "saveSlot/QuickSave"
|
||||
saveSlotPath (LevelStartSlot i) = "saveSlot/LevelStart" ++ show i
|
||||
|
||||
saveWorldInSlot :: SaveSlot -> Universe -> Universe
|
||||
saveWorldInSlot slot u = tryConcEffect False "SAVING" (writeSaveSlot slot u) u
|
||||
--saveWorldInSlot slot u = u & uvSideEffects %~ (|> NewSideEffect (writeSaveSlot slot u) "SAVING")
|
||||
saveWorldInSlot slot u = u & addSideEffect (writeSaveSlot slot u) "SAVING"
|
||||
|
||||
reloadLevelStart :: Universe -> Universe
|
||||
reloadLevelStart = loadSaveSlot (LevelStartSlot 0)
|
||||
|
||||
loadSaveSlot :: SaveSlot -> Universe -> Universe
|
||||
loadSaveSlot slot = tryConcEffect True "LOADING" (readSaveSlot slot)
|
||||
loadSaveSlot slot = addSideEffect (readSaveSlot slot) "LOADING"
|
||||
|
||||
doQuicksave :: Universe -> Universe
|
||||
doQuicksave = saveWorldInSlot QuicksaveSlot
|
||||
|
||||
Reference in New Issue
Block a user