diff options
| author | troido <troido@protonmail.com> | 2020-02-11 01:40:44 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-11 01:40:44 +0100 |
| commit | 97850d8c1ee3522ccce30ef31ed91601da8c0730 (patch) | |
| tree | 770761b1f211d47dbc619f9d6922174686bd6fc7 /src/systems | |
| parent | f6d1d4ea258490670ee1605c596a6ba9a49a77db (diff) | |
inventory is now shown
Diffstat (limited to 'src/systems')
| -rw-r--r-- | src/systems/view.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/systems/view.rs b/src/systems/view.rs index a884d35..e0e5650 100644 --- a/src/systems/view.rs +++ b/src/systems/view.rs @@ -12,7 +12,7 @@ use specs::{ }; use super::super::pos::Pos; -use super::super::components::{Visible, Player, Position, New, Moved, Removed}; +use super::super::components::{Visible, Player, Position, Inventory, New, Moved, Removed}; use super::super::resources::{Size, Output, Ground}; use super::super::worldmessages::{WorldMessage, WorldUpdate, FieldMessage}; @@ -24,6 +24,7 @@ impl <'a> System<'a> for View { type SystemData = ( Entities<'a>, ReadStorage<'a, Position>, + ReadStorage<'a, Inventory>, ReadStorage<'a, Visible>, Read<'a, Size>, ReadStorage<'a, Player>, @@ -33,7 +34,7 @@ impl <'a> System<'a> for View { ReadStorage<'a, Removed>, Read<'a, Ground> ); - fn run(&mut self, (entities, positions, visible, size, players, mut output, new, moved, removed, ground): Self::SystemData) { + fn run(&mut self, (entities, positions, inventories, visible, size, players, mut output, new, moved, removed, ground): Self::SystemData) { let mut changed = HashSet::new(); for (pos, _new) in (&positions, &new).join() { @@ -72,6 +73,9 @@ impl <'a> System<'a> for View { } else if has_changed { updates.push(changed_msg.clone()); } + if let Some(inventory) = inventories.get(ent){ + updates.push(WorldUpdate::Inventory(inventory.items.iter().map(|item| item.name.clone()).collect())); + } updates.push(WorldUpdate::Pos(pos.pos)); let message = WorldMessage{updates}; output.output.insert(player.name.clone(), message); |
