From c71ecb48fa4368035a852e2d06869a21382a6876 Mon Sep 17 00:00:00 2001 From: troido Date: Tue, 18 Feb 2020 01:11:49 +0100 Subject: Players are now saved/loaded too --- src/resources.rs | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'src/resources.rs') 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 + pub actions: HashMap } #[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 +} -- cgit