using UnityEngine;
public class Interactable : MonoBehaviour
{
public enum Type { PickUp, Door, Battery } // Типы предметов
[Header("Настройки предмета")]
public Type objectType;
[Header("Для дверей (если тип Door)")]
public bool isClosed = true;
public float openAngle = 90f;
[Header("Для батареек (если тип Battery)")]
public float energyRestore = 30f; // Сколько % добавит батарейка
public void Activate(GameObject player)
{
if (objectType == Type.PickUp)
{
if (player.TryGetComponent(out PickUpSystem pickup)) pickup.GrabObject(gameObject);
}
else if (objectType == Type.Door)
{
isClosed = !isClosed;
float targetAngle = isClosed ? 0f : openAngle;
transform.localRotation = Quaternion.Euler(0f, targetAngle, 0f);
if (TryGetComponent(out AudioSource audio)) audio.Play();
}
// НАДЕЖНЫЙ СБОР БАТАРЕЙКИ:
else if (objectType == Type.Battery)
{
// Напрямую ищем фонарик на сцене
PhysicalFlashlight flashlight = FindObjectOfType<PhysicalFlashlight>();
if (flashlight != null)
{
flashlight.Recharge(energyRestore); // Заряжаем
Destroy(gameObject); // Исчезает с пола
}
else
{
Debug.LogError("Не удалось найти фонарик на сцене! Проверьте, есть ли на нем скрипт PhysicalFlashlight");
}
}
}
}