You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AgVaccumEffector.cs 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using uqac_ia_aspirobot.Agent.Interfaces.Effectors;
  2. using uqac_ia_aspirobot.Agent.Interfaces.Sensors;
  3. using uqac_ia_aspirobot.Common;
  4. using uqac_ia_aspirobot.Extensions;
  5. using uqac_ia_aspirobot.Interfaces;
  6. namespace uqac_ia_aspirobot.Agent.FakeEnv.Effectors
  7. {
  8. public class AgVaccumEffector : IAgVaccumEffector
  9. {
  10. private readonly IAgEngineEffector _engineEffector;
  11. private readonly ArClient _arClient;
  12. private readonly IEnvironment _environment;
  13. private readonly IAgBatterySensor _agBatterySensor;
  14. private readonly IAgVaccumSensor _agVaccumSensor;
  15. private readonly IAgPickedSensor _agPickedSensor;
  16. public AgVaccumEffector(IAgEngineEffector engineEffector, ArClient arClient, IEnvironment environment,
  17. IAgBatterySensor agBatterySensor, IAgVaccumSensor agVaccumSensor, IAgPickedSensor agPickedSensor)
  18. {
  19. _engineEffector = engineEffector;
  20. _arClient = arClient;
  21. _environment = environment;
  22. _agBatterySensor = agBatterySensor;
  23. _agVaccumSensor = agVaccumSensor;
  24. _agPickedSensor = agPickedSensor;
  25. }
  26. public void Vaccum()
  27. {
  28. _agBatterySensor.Add(1);
  29. _agVaccumSensor.Increase();
  30. _environment.RemoveDust(_engineEffector.X, _engineEffector.Y);
  31. }
  32. public void Pick()
  33. {
  34. _agBatterySensor.Add(1);
  35. _agPickedSensor.Increase();
  36. _arClient.RemoveJewel(_engineEffector.X, _engineEffector.Y);
  37. }
  38. }
  39. }