Move saved worlds outside of world into universe

This commit is contained in:
2021-11-28 14:42:08 +00:00
parent 1c5abfd6f2
commit 1d9dd3e4e0
8 changed files with 19 additions and 20 deletions
+8 -10
View File
@@ -11,23 +11,21 @@ import Data.Maybe
import Control.Lens
import qualified Data.Set as S
clearSaves :: World -> World
clearSaves :: Universe -> Universe
clearSaves = savedWorlds .~ M.empty
saveWorldInEmptySlot :: SaveSlot -> World -> World
saveWorldInEmptySlot :: SaveSlot -> Universe -> Universe
saveWorldInEmptySlot slot w = case M.lookup slot $ _savedWorlds w of
Nothing -> w & savedWorlds %~ M.insert slot (clearKeys w)
Nothing -> w & savedWorlds %~ M.insert slot (clearKeys (_uvWorld w))
_ -> w
saveWorldInSlot :: SaveSlot -> World -> World
saveWorldInSlot slot w = w & savedWorlds %~ M.insert slot (clearSaves $ clearKeys w)
saveWorldInSlot :: SaveSlot -> Universe -> Universe
saveWorldInSlot slot w = w & savedWorlds %~ M.insert slot (clearKeys (_uvWorld w))
loadSaveSlot :: SaveSlot -> World -> World
loadSaveSlot slot w = fromMaybe w
$ M.lookup slot (_savedWorlds w)
<&> savedWorlds .~ _savedWorlds w -- keep saves from current point, not from save point
loadSaveSlot :: SaveSlot -> Universe -> Universe
loadSaveSlot slot u = maybe u (\w -> u & uvWorld .~ w) $ M.lookup slot (_savedWorlds u)
doQuicksave :: World -> World
doQuicksave :: Universe -> Universe
doQuicksave = saveWorldInSlot QuicksaveSlot
clearKeys :: World -> World