diff options
| author | troido <troido@protonmail.com> | 2020-02-11 01:53:05 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-11 01:53:05 +0100 |
| commit | 62138ca19acdef140359745ebee41be5e4c5ce09 (patch) | |
| tree | a59c0d70d8b024693b2c57fc42ba3d1665623eb6 /src/systems | |
| parent | 97850d8c1ee3522ccce30ef31ed91601da8c0730 (diff) | |
health is now also shown (but never changed)
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 e0e5650..57e2b28 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, Inventory, New, Moved, Removed}; +use super::super::components::{Visible, Player, Position, Inventory, New, Moved, Removed, Health}; use super::super::resources::{Size, Output, Ground}; use super::super::worldmessages::{WorldMessage, WorldUpdate, FieldMessage}; @@ -25,6 +25,7 @@ impl <'a> System<'a> for View { Entities<'a>, ReadStorage<'a, Position>, ReadStorage<'a, Inventory>, + ReadStorage<'a, Health>, ReadStorage<'a, Visible>, Read<'a, Size>, ReadStorage<'a, Player>, @@ -34,7 +35,7 @@ impl <'a> System<'a> for View { ReadStorage<'a, Removed>, Read<'a, Ground> ); - fn run(&mut self, (entities, positions, inventories, visible, size, players, mut output, new, moved, removed, ground): Self::SystemData) { + fn run(&mut self, (entities, positions, inventories, healths, visible, size, players, mut output, new, moved, removed, ground): Self::SystemData) { let mut changed = HashSet::new(); for (pos, _new) in (&positions, &new).join() { @@ -76,6 +77,9 @@ impl <'a> System<'a> for View { if let Some(inventory) = inventories.get(ent){ updates.push(WorldUpdate::Inventory(inventory.items.iter().map(|item| item.name.clone()).collect())); } + if let Some(health) = healths.get(ent){ + updates.push(WorldUpdate::Health(health.health, health.maxhealth)); + } updates.push(WorldUpdate::Pos(pos.pos)); let message = WorldMessage{updates}; output.output.insert(player.name.clone(), message); |
