private Tile UpdateTileTexture(ExtTileData tileData)
    {
        switch (tileData.State)
        {
        case TileState.Grass:
            return(grass);

        case TileState.Highlighted:
            return(grassHighlight);

        case TileState.Road:
            break;

        case TileState.HoedField:
            break;

        case TileState.Planted:
            break;

        case TileState.GrassSelected:
            return(grassSelected);

        default:
            throw new ArgumentOutOfRangeException();
        }
        return(grass);
    }
 private static void LeftMouseClickOnTile(ExtTileData tileData)
 {
     tileData.IsSelected = !tileData.IsSelected;
     if (tileData.IsSelected)
     {
         tileData.State = TileState.GrassSelected;
     }
     else
     {
         tileData.UndoStateChange();
     }
 }
 private void SetupTiles()
 {
     for (var x = 0; x < XTileCount; x++)
     {
         for (var y = 0; y < YTileCount; y++)
         {
             var p  = new Vector3Int(x, y, 0);
             var td = new ExtTileData {
                 Tile = grass
             };
             _map.Add(p, td);
         }
     }
 }