using UnityEngine;
public class ItemInteraction : MonoBehaviour
{
public enum InteractionType { PickupBattery, InsertSocket }
[Header("Тип этого объекта")]
public InteractionType objectType;
[Header("Для щитка (Socket)")]
public GameObject batteryInSocket; // Ссылка на скрытую батарейку в щитке
public ElevatorController elevatorController; // Ссылка на лифт
// Статическая переменная — общая память для всей игры
public static bool hasBattery = false;
private bool isPlayerNear = false;
void Start()
{
// Если этот объект — щиток, прячем батарейку в нем на старте
if (objectType == InteractionType.InsertSocket && batteryInSocket != null)
{
batteryInSocket.SetActive(false);
}
}
void Update()
{
if (isPlayerNear && Input.GetKeyDown(KeyCode.E))
{
Interact();
}
}
void Interact()
{
// 1. ЛОГИКА ПОДБОРА БАТАРЕЙКИ НА БАЛКОНЕ
if (objectType == InteractionType.PickupBattery)
{
if (!hasBattery)
{
hasBattery = true;
Debug.Log("Батарейка взята!");
Destroy(gameObject); // Удаляем батарейку с балкона
}
}
// 2. ЛОГИКА ВСТАВКИ В ЩИТОК У ЛИФТА
else if (objectType == InteractionType.InsertSocket)
{
if (hasBattery)
{
hasBattery = false; // Забираем у игрока
if (batteryInSocket != null)
batteryInSocket.SetActive(true); // Включаем видимость в щитке
Debug.Log("Батарейка вставлена в щиток!");
if (elevatorController != null)
elevatorController.CollectBattery(); // Даем лифту сигнал
}
else
{
Debug.Log("У вас нет батарейки! Найдите её.");
}
}
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
isPlayerNear = true;
}
private void OnTriggerExit(Collider other)
{
if (other.CompareTag("Player"))
isPlayerNear = false;
}
}