diff options
| author | troido <troido@protonmail.com> | 2020-02-18 02:27:21 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-18 02:27:21 +0100 |
| commit | 32dd60bca02cf2cfccc8d4309691df9f2f84398c (patch) | |
| tree | e6d67140f3f0ca2272f796775a9dc65e5b25484f /src/room.rs | |
| parent | c71ecb48fa4368035a852e2d06869a21382a6876 (diff) | |
refactoring: roomid is now a type, not string anymore
Diffstat (limited to 'src/room.rs')
| -rw-r--r-- | src/room.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/room.rs b/src/room.rs index 83702fe..00decce 100644 --- a/src/room.rs +++ b/src/room.rs @@ -44,7 +44,7 @@ use crate::roomtemplate::RoomTemplate; use crate::savestate::SaveState; use crate::template::Template; use crate::playerstate::PlayerState; -use crate::{Pos, PlayerId, aerr}; +use crate::{Pos, PlayerId, RoomId, aerr}; use crate::util::Result; @@ -52,12 +52,12 @@ use crate::util::Result; pub struct Room<'a, 'b> { world: World, dispatcher: Dispatcher<'a, 'b>, - pub name: String + pub id: RoomId } impl <'a, 'b>Room<'a, 'b> { - pub fn new(name: &str, encyclopedia: Encyclopedia) -> Room<'a, 'b> { + pub fn new(id: RoomId, encyclopedia: Encyclopedia) -> Room<'a, 'b> { let mut world = World::new(); world.insert(NewEntities::new(encyclopedia)); world.insert(Players::default()); @@ -80,7 +80,7 @@ impl <'a, 'b>Room<'a, 'b> { Room { world, dispatcher, - name: name.to_string() + id } } @@ -115,8 +115,8 @@ impl <'a, 'b>Room<'a, 'b> { self.world.fetch_mut::<Input>().actions = actions; } - pub fn add_player(&mut self, id: PlayerId, state: &PlayerState){ - let pre_player = state.construct(id.clone()); + pub fn add_player(&mut self, state: &PlayerState){ + let pre_player = state.construct(); let spawn = self.world.fetch::<Spawn>().pos; let mut builder = self.world.create_entity(); let ent = builder.entity; @@ -124,7 +124,7 @@ impl <'a, 'b>Room<'a, 'b> { builder = comp.build(builder); } builder.with(Position::new(spawn)).with(New).build(); - self.world.fetch_mut::<Players>().entities.insert(id, ent); + self.world.fetch_mut::<Players>().entities.insert(state.id.clone(), ent); } pub fn remove_player(&mut self, id: PlayerId) -> Result<PlayerState>{ @@ -158,8 +158,8 @@ impl <'a, 'b>Room<'a, 'b> { let mut saved = HashMap::new(); for (player, inventory, health) in (&players, &inventories, &healths).join() { saved.insert(player.id.clone(), PlayerState::create( - player.id.name.clone(), - self.name.clone(), + player.id.clone(), + self.id.clone(), inventory.items.iter().map(|item| item.ent.clone()).collect(), inventory.capacity, health.health, @@ -177,8 +177,8 @@ impl <'a, 'b>Room<'a, 'b> { let healths = self.world.read_component::<Health>(); let health = healths.get(ent)?; Some(PlayerState::create( - player.id.name.clone(), - self.name.clone(), + player.id.clone(), + self.id.clone(), inventory.items.iter().map(|item| item.ent.clone()).collect(), inventory.capacity, health.health, |
