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 void Invoke(IGarbageCollector _garbageCollector, object[,] 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));
            switch (_direction)
            {
                case Direction.Up: _garbageCollector.MoveUp(); break;
                case Direction.Down: _garbageCollector.MoveDown(); break;
                case Direction.Left: _garbageCollector.MoveLeft(); break;
                case Direction.Right: _garbageCollector.MoveRight(); break;
            }
        }
    }
}