summaryrefslogtreecommitdiff
path: root/src/systems
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-02-11 01:40:44 +0100
committertroido <troido@protonmail.com>2020-02-11 01:40:44 +0100
commit97850d8c1ee3522ccce30ef31ed91601da8c0730 (patch)
tree770761b1f211d47dbc619f9d6922174686bd6fc7 /src/systems
parentf6d1d4ea258490670ee1605c596a6ba9a49a77db (diff)
inventory is now shown
Diffstat (limited to 'src/systems')
-rw-r--r--src/systems/view.rs8
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);