// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.

package frc.robot.commands;

import java.util.function.DoubleSupplier;

import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.BasePilotable;
import frc.robot.subsystems.Limelight;

public class Cone extends CommandBase {
  private Limelight limelight;
  private BasePilotable basePilotable;
  private DoubleSupplier doubleSupplier;
  /** Creates a new ConeCube. */
  public Cone(Limelight limelight,BasePilotable basePilotable,DoubleSupplier doubleSupplier) {
    this.basePilotable = basePilotable;
    this.limelight = limelight;
    this.doubleSupplier = doubleSupplier;
    // Use addRequirements() here to declare subsystem dependencies.
    addRequirements(limelight,basePilotable);
  }

  // Called when the command is initially scheduled.
  @Override
  public void initialize() {
    limelight.cone();
  }

  // Called every time the scheduler runs while the command is scheduled.
  @Override
  public void execute() {
    basePilotable.drive(doubleSupplier.getAsDouble(), limelight.getYaw());
  }

  // Called once the command ends or is interrupted.
  @Override
  public void end(boolean interrupted) {
    limelight.pilote();
  }

  // Returns true when the command should end.
  @Override
  public boolean isFinished() {
    return false;
  }
}