summaryrefslogtreecommitdiff
path: root/src/systems/exchange.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-09-21 02:33:09 +0200
committertroido <troido@protonmail.com>2020-09-21 02:33:09 +0200
commit455867294cc849bff2c0829a7464e71e79a0dcae (patch)
tree0aebadca7d693f53efa87446222394c9d1387bc1 /src/systems/exchange.rs
parente2281d8c6293b311ccc187e3503093a1120e6215 (diff)
removed unused systems for talk and exchange
Diffstat (limited to 'src/systems/exchange.rs')
-rw-r--r--src/systems/exchange.rs82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/systems/exchange.rs b/src/systems/exchange.rs
deleted file mode 100644
index 9931bdd..0000000
--- a/src/systems/exchange.rs
+++ /dev/null
@@ -1,82 +0,0 @@
-
-use specs::{
- Entities,
- ReadStorage,
- WriteStorage,
- System,
- Join,
- Read,
- Write
-};
-
-use crate::{
- components::{
- Controller,
- Position,
- Exchanger,
- Notification,
- Ear,
- Inventory,
- Visible
- },
- controls::{Control},
- resources::{Ground, NewEntities},
- util::strip_prefix
-};
-
-pub struct Exchange;
-impl <'a> System<'a> for Exchange {
- type SystemData = (
- Entities<'a>,
- ReadStorage<'a, Controller>,
- ReadStorage<'a, Position>,
- Read<'a, Ground>,
- ReadStorage<'a, Exchanger>,
- Write<'a, NewEntities>,
- WriteStorage<'a, Ear>,
- WriteStorage<'a, Inventory>,
- ReadStorage<'a, Visible>
- );
-
- fn run(&mut self, (entities, controllers, positions, ground, exchangers, new, mut ears, mut inventories, visibles): Self::SystemData) {
- for (actor, controller, position) in (&entities, &controllers, &positions).join(){
- let ear = ears.get_mut(actor);
- match &controller.control {
- Control::Interact(directions, arg) => {
- for (ent, exchanger) in ground.components_near(position.pos, directions, &exchangers) {
- let prefix = exchanger.prefix.as_str();
- let name = visibles.get(ent).map(|v| v.name.as_str());
- if let Some(txt) = arg {
- if let (Some(inventory), Some(action)) = (inventories.get_mut(actor), strip_prefix(&txt, prefix)) {
- if let Some(exchange) = exchanger.exchanges.get(action) {
- if exchange.can_trade(inventory){
- exchange.trade(inventory, &new.encyclopedia);
- say(ear, format!("Success! '{}' ({})", txt, exchange.show()), name);
- } else {
- say(ear, format!("You do not have the required items or inventory space for '{}' ({})", txt, exchange.show()), name);
- }
- } else {
- say(ear, format!("Invalid option: {}", action), name);
- }
- break;
- }
- } else if let Some(ear) = ear {
- ear.sounds.push(Notification::Options{
- description: "".to_string(),
- options: exchanger.exchanges.iter().map(|(id, exchange)| (format!("{}{}", prefix, id), exchange.show())).collect()
- });
- break;
- }
- }
- }
- _ => {}
- }
- }
- }
-}
-
-fn say(maybe_ear: Option<&mut Ear>, text: String, source: Option<&str>){
- if let Some(ear) = maybe_ear {
- ear.sounds.push(Notification::Sound{text, source: source.map(|s| s.to_string())});
- }
-}