using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CzokoŚmieciarka.MonoGameView.DataModels.Enums; using CzokoŚmieciarka.MonoGameView.DataModels.Interfaces; using CzokoŚmieciarka.MonoGameView.DataModels.Interfaces.GarbageCollector; using CzokoŚmieciarka.MonoGameView.DataModels.Interfaces.TrashCans; namespace CzokoŚmieciarka.MonoGameView.DataModels.Models.Steps { public class MoveStep : IStep { public MoveStep(Direction direction) { this._direction = direction; } private Direction _direction; private IGarbageCollector _garbageCollector; public Direction GetDirection() { return _direction; } public bool Invoke(IGarbageCollector _garbageCollector, ICloneable [,] grid) { if(grid[_garbageCollector.Coords.X, _garbageCollector.Coords.Y] is Road1) grid[_garbageCollector.Coords.X, _garbageCollector.Coords.Y] = new Road2(new Coords(_garbageCollector.Coords.X, _garbageCollector.Coords.Y)); var pass = false; switch (_direction) { case Direction.Up: pass = _garbageCollector.MoveUp(); break; case Direction.Down: pass = _garbageCollector.MoveDown(); break; case Direction.Left: pass = _garbageCollector.MoveLeft(); break; case Direction.Right: pass = _garbageCollector.MoveRight(); break; } if (pass) { _garbageCollector.Counter++; } return pass; } } }