From 34c87bf04a9b70809eda125ca180de1d993d410e Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sun, 3 Jun 2018 17:22:22 +0200 Subject: Moved json parsing to be part of a module, with textmap equivalence --- src/input/textmap.rs | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/input/textmap.rs (limited to 'src/input/textmap.rs') diff --git a/src/input/textmap.rs b/src/input/textmap.rs new file mode 100644 index 0000000..dbee60a --- /dev/null +++ b/src/input/textmap.rs @@ -0,0 +1,67 @@ +use std::fs::File; +use std::io::prelude::*; +use std::error::Error; + +use ::engine::*; +use ::engine::settings::*; +use ::engine::geometry::*; + + +pub fn read_state_from_file(filename: &str) -> Result<(GameSettings, GameState), Box> { + let mut file = File::open(filename)?; + let mut content = String::new(); + file.read_to_string(&mut content)?; + + let engine_settings = GameSettings { + size: Point::new(8,4), + energy_income: 5, + energy: BuildingSettings { + price: 20, + health: 5, + construction_time: 2-2, + weapon_damage: 0, + weapon_speed: 0, + weapon_cooldown_period: 0, + energy_generated_per_turn: 3 + }, + defence: BuildingSettings { + price: 30, + health: 20, + construction_time: 4-2, + weapon_damage: 0, + weapon_speed: 0, + weapon_cooldown_period: 0, + energy_generated_per_turn: 0 + }, + attack: BuildingSettings { + price: 30, + health: 5, + construction_time: 2-2, + weapon_damage: 5, + weapon_speed: 2, + weapon_cooldown_period: 3, + energy_generated_per_turn: 0 + } + }; + let engine_state = GameState::new( + Player { + energy: 20, + health: 5, + energy_generated: 5 + }, + Player { + energy: 20, + health: 5, + energy_generated: 5 + }, + Vec::new(), + Vec::new(), + Vec::new(), + Vec::new(), + Vec::new(), + Vec::new(), + &engine_settings + ); + + Ok((engine_settings, engine_state)) +} -- cgit v1.2.3