using UnityEngine;
using UnityEngine.UI;
using TMPro;  // Import TextMeshPro namespace

public class SpeedometerController : MonoBehaviour
{
    public Image fullSpeedometerImage;      // Reference to the full speedometer UI
    public TextMeshProUGUI speedText;       // Reference to the speed display (TextMeshPro)
    public GameObject playerVehicle;        // Reference to the player's vehicle

    private Rigidbody vehicleRigidbody;     // Reference to the vehicle's Rigidbody
    public float maxSpeed = 10f;          // Maximum speed (adjust as needed)

    void Start()
    {
        // Get the Rigidbody from the assigned player GameObject
        if (playerVehicle != null)
        {
            vehicleRigidbody = playerVehicle.GetComponent<Rigidbody>();
            if (vehicleRigidbody == null)
            {
                Debug.LogError("No Rigidbody found on the player GameObject! Please make sure it has one.");
            }
        }
        else
        {
            Debug.LogError("Player GameObject is not assigned in the Inspector!");
        }
    }

    void Update()
    {
        // Get the vehicle's speed in units per second (you can customize if needed)
        float speed = vehicleRigidbody.linearVelocity.magnitude;  // Convert to km/h if needed

        // Clamp speed to maxSpeed
        float clampedSpeed = Mathf.Clamp(speed, 0, maxSpeed);

        // Update the fill amount (0 to 1)
        fullSpeedometerImage.fillAmount = clampedSpeed / maxSpeed;

        // Update the speed text (e.g., "0V" to "120V")
        speedText.text = Mathf.RoundToInt(clampedSpeed) + "V";
    }
}