diff options
| author | troido <troido@protonmail.com> | 2020-02-17 02:24:14 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-17 02:24:14 +0100 |
| commit | c921686355c86afb5bf47e4b6c696057ede01b1f (patch) | |
| tree | cb55b0d464010e44aeeca16f0f734ac3464da600 /src/main.rs | |
| parent | 625ab5bb37cbe35fd9662a33bc92f73520e59c81 (diff) | |
persistently save the room state
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index 4301a07..5b2bc8a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -40,6 +40,7 @@ use self::room::Room; use self::util::ToJson; use self::roomtemplate::RoomTemplate; use self::defaultencyclopedia::default_encyclopedia; +use self::persistence::{FileStorage, PersistentStorage}; @@ -57,9 +58,16 @@ fn main() { let mut gameserver = GameServer::new(servers); - let mut room = gen_room(); + let storage = FileStorage::new("~/.rustifarm/saves"); + if let Ok(state) = storage.load_room("room".to_string()) { + room.load_saved(&state); + println!("loaded saved state successfully"); + } else { + println!("loading saved state failed"); + } + println!("asciifarm started"); @@ -69,7 +77,8 @@ fn main() { room.set_input(actions); room.update(); - if count % 20 == 0 { + if count % 50 == 0 { + storage.save_room("room".to_string(), room.save()); println!("{}", room.save().to_json()); } let messages = room.view(); |
