summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-03-03 19:52:11 +0100
committertroido <troido@protonmail.com>2020-03-03 19:52:11 +0100
commit42448500c1c2e3dd5d6a0a62c59f1f0367c12b04 (patch)
treed075540851213a90d6d77b582a5216d9f107f8c4 /src/main.rs
parentf844ed18e29465177a339f244800fb7a2e77daa9 (diff)
moved default encyclopedia to data file
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs
index 204926f..4732d77 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,11 +1,10 @@
use std::thread::sleep;
use std::time::Duration;
-use std::path::Path;
-use std::path::PathBuf;
-use std::str::FromStr;
-use std::sync::atomic::{AtomicBool, Ordering};
-use std::sync::Arc;
+use std::path::{Path, PathBuf};
+use std::sync::{Arc, atomic::{AtomicBool, Ordering}};
+use std::fs;
+use serde_json;
mod server;
mod gameserver;
@@ -26,7 +25,6 @@ mod template;
mod roomtemplate;
mod savestate;
mod playerid;
-mod defaultencyclopedia;
mod playerstate;
mod roomid;
mod persistence;
@@ -52,7 +50,6 @@ use self::{
server::unixserver::UnixServer,
server::tcpserver::TcpServer,
server::Server,
- defaultencyclopedia::default_encyclopedia,
persistence::FileStorage,
controls::Action,
worldloader::WorldLoader,
@@ -76,12 +73,22 @@ fn main() -> Result<()>{
let mut gameserver = GameServer::new(servers);
-
- let loader = WorldLoader::new(PathBuf::from_str(&(std::env::var("CARGO_MANIFEST_DIR").unwrap_or(".".to_string()) + "/content/maps/"))?);
+ let content_dir = PathBuf::new().join(std::env::var("CARGO_MANIFEST_DIR").unwrap_or(".".to_string())).join("content/");
+ let loader = WorldLoader::new(content_dir.join("maps"));
let storage = FileStorage::new(FileStorage::savedir().expect("couldn't find any save directory"));
+
+ let encyclopedia = Encyclopedia::from_json(
+ serde_json::from_str(
+ &fs::read_to_string(
+ content_dir
+ .join("encyclopediae")
+ .join("default_encyclopedia.json")
+ )?
+ )?
+ )?;
- let mut world = World::new(default_encyclopedia(), loader, Box::new(storage), RoomId::from_str("room"));
+ let mut world = World::new(encyclopedia, loader, Box::new(storage), RoomId::from_str("room"));
let mut message_cache = MessageCache::default();