From 8be2749edf97b200281a2c67f97ed8835f5c6d88 Mon Sep 17 00:00:00 2001 From: troido Date: Fri, 7 Feb 2020 19:54:35 +0100 Subject: spawn is also loaded from room template --- src/systems/controlinput.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/systems/controlinput.rs') diff --git a/src/systems/controlinput.rs b/src/systems/controlinput.rs index b25c336..27ef5cf 100644 --- a/src/systems/controlinput.rs +++ b/src/systems/controlinput.rs @@ -11,10 +11,9 @@ use specs::{ Join }; -use crate::pos::Pos; use crate::components::{Controller, Player}; use crate::controls::{Control, Action}; -use crate::resources::{Input, NewEntities}; +use crate::resources::{Input, NewEntities, Spawn}; use crate::hashmap; use crate::template::Template; use crate::parameter::Parameter; @@ -24,15 +23,15 @@ use crate::parameter::Parameter; pub struct ControlInput; impl <'a> System<'a> for ControlInput { - type SystemData = (Entities<'a>, Read<'a, Input>, WriteStorage<'a, Controller>, ReadStorage<'a, Player>, Write<'a, NewEntities>); - fn run(&mut self, (entities, input, mut controllers, players, mut new): Self::SystemData) { + type SystemData = (Entities<'a>, Read<'a, Input>, WriteStorage<'a, Controller>, ReadStorage<'a, Player>, Write<'a, NewEntities>, Read<'a, Spawn>); + fn run(&mut self, (entities, input, mut controllers, players, mut new, spawn): Self::SystemData) { let mut playercontrols: HashMap<&str, Control> = HashMap::new(); let mut leaving = HashSet::new(); for action in &input.actions { match action { Action::Join(name) => { new.templates.push(( - Pos{x:10, y:10}, + spawn.pos, Template::new("player", hashmap!("name".to_string() => Parameter::String(name.to_string()))) )); } -- cgit