summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-02-07 19:47:49 +0100
committertroido <troido@protonmail.com>2020-02-07 19:47:49 +0100
commit7dd148f8e0b371cb422f14dfe926e98642c41317 (patch)
tree5fcc1d564f86a18632819ce27284260d6b542973 /src/main.rs
parent940b1c762bb98a56dddc6e3e7f208867abb3ebe5 (diff)
can now load maps in the same format as the python version
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs58
1 files changed, 40 insertions, 18 deletions
diff --git a/src/main.rs b/src/main.rs
index 410a9aa..bf27cdd 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -24,6 +24,7 @@ mod encyclopedia;
mod template;
mod roomtemplate;
+pub use self::pos::Pos;
use self::gameserver::GameServer;
use self::server::unixserver::UnixServer;
use self::server::tcpserver::TcpServer;
@@ -32,7 +33,7 @@ use self::room::Room;
use self::util::ToJson;
use self::encyclopedia::Encyclopedia;
use self::template::Template;
-pub use self::pos::Pos;
+use self::roomtemplate::RoomTemplate;
@@ -50,7 +51,7 @@ fn main() {
let mut gameserver = GameServer::new(servers);
- let mut room = gen_room(50, 40);
+ let mut room = gen_room();
loop {
let actions = gameserver.update();
@@ -65,24 +66,45 @@ fn main() {
}
}
-fn gen_room<'a, 'b>(width: i64, height: i64) -> Room<'a, 'b> {
+fn gen_room<'a, 'b>() -> Room<'a, 'b> {
let assemblages = default_assemblages();
- let mut room = Room::new(assemblages.clone(), (width, height));
- let wall = &Template::empty("wall");
- for x in 0..width {
- room.add_entity(&wall, Pos::new(x, 0)).unwrap();
- room.add_entity(&wall, Pos::new(x, height - 1)).unwrap();
- }
- for y in 1..height-1 {
- room.add_entity(&wall, Pos::new(0, y)).unwrap();
- room.add_entity(&wall, Pos::new(width - 1, y)).unwrap();
- }
- for x in 1..width-1 {
- for y in 1..height-1 {
- let grass = &Template::empty("grass");
- room.add_entity(&grass, Pos::new(x, y)).unwrap();
+ let mut room = Room::new(assemblages.clone());
+
+ let roomtemplate = RoomTemplate::from_json(&json!({
+ "width": 42,
+ "height": 22,
+ "spawn": [5, 5],
+ "field": [
+ "##########################################",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "# ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#",
+ "#####,,,##################################"
+ ],
+ "mapping": {
+ "#": "wall",
+ ",": "grass",
+ " ": []
}
- }
+ })).unwrap();
+ room.load_from_template(&roomtemplate);
room
}