diff options
| author | troido <troido@protonmail.com> | 2020-02-18 01:11:49 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-18 01:11:49 +0100 |
| commit | c71ecb48fa4368035a852e2d06869a21382a6876 (patch) | |
| tree | 8d5a598fedf4e42bd6d8d1b0d476301dede2f20c /src/resources.rs | |
| parent | c921686355c86afb5bf47e4b6c696057ede01b1f (diff) | |
Players are now saved/loaded too
Diffstat (limited to 'src/resources.rs')
| -rw-r--r-- | src/resources.rs | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/resources.rs b/src/resources.rs index 0e40a00..f50d2bb 100644 --- a/src/resources.rs +++ b/src/resources.rs @@ -3,16 +3,18 @@ use std::collections::{HashMap, HashSet}; use specs::Entity; use super::pos::Pos; -use super::controls::Action; +use super::controls::Control; use super::worldmessages::WorldMessage; -use super::template::Template; +use crate::componentwrapper::PreEntity; use crate::encyclopedia::Encyclopedia; use crate::PlayerId; +use crate::util::Result; +use crate::template::Template; #[derive(Default)] pub struct Input { - pub actions: Vec<Action> + pub actions: HashMap<PlayerId, Control> } #[derive(Default)] @@ -38,6 +40,24 @@ pub struct Ground { #[derive(Default)] pub struct NewEntities { - pub templates: Vec<(Pos, Template)>, + pub to_build: Vec<(Pos, PreEntity)>, pub encyclopedia: Encyclopedia } +impl NewEntities { + pub fn new(encyclopedia: Encyclopedia) -> Self { + Self{ + to_build: Vec::new(), + encyclopedia + } + } + pub fn create(&mut self, pos: Pos, template: Template) -> Result<()> { + let components = self.encyclopedia.construct(&template)?; + self.to_build.push((pos, components)); + Ok(()) + } +} + +#[derive(Default)] +pub struct Players { + pub entities: HashMap<PlayerId, Entity> +} |
