88 lines
2.1 KiB
C#
88 lines
2.1 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using GUI_Scripts;
|
|
using UnityEngine;
|
|
|
|
public class ChestController : BaseWarehouseController
|
|
{
|
|
[SerializeField] public GameObject chest;
|
|
[SerializeField] public List<Item> developerList = new List<Item>(); // FOR DEVELOPER TESTE - remove later !!!
|
|
|
|
bool isTrigerred = false;
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
chest = gameObject; // set object on current GameObject
|
|
|
|
// FOR DEVELOPER TESTE - remove later !!!
|
|
for(int i = 0; i < developerList.Count; i++)
|
|
{
|
|
SetItemOnPosition(i, developerList[i]);
|
|
}
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
if (this._panel && this.isTrigerred && !this.isOpen) // we can open chest only when its closed
|
|
{
|
|
if (Input.GetKeyDown(KeyCode.E))
|
|
{
|
|
this.OpenPanel();
|
|
InventoryManager.Instance.OpenPanel();
|
|
EquipmentManager.Instance.OpenPanel();
|
|
}
|
|
}
|
|
|
|
if (!InventoryManager.Instance.isOpen)
|
|
{
|
|
if (Input.GetKeyDown(KeyCode.I))
|
|
{
|
|
InventoryManager.Instance.OpenPanel();
|
|
EquipmentManager.Instance.OpenPanel();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
void OnTriggerExit2D(Collider2D collision)
|
|
{
|
|
if (this._panel != null)
|
|
{
|
|
this.ClosePanel();
|
|
}
|
|
|
|
this.isTrigerred = false;
|
|
}
|
|
|
|
private void OnTriggerEnter2D(Collider2D collision)
|
|
{
|
|
if (collision.tag == "Player")
|
|
{
|
|
this.isTrigerred = true;
|
|
}
|
|
}
|
|
|
|
|
|
public override void ClosePanel()
|
|
{
|
|
base.ClosePanel();
|
|
InventoryManager.Instance.ClosePanel();
|
|
EquipmentManager.Instance.ClosePanel();
|
|
}
|
|
|
|
protected override void SetupPanel()
|
|
{
|
|
if(this.dynamicPanel)
|
|
{
|
|
this.dynamicPanel.GetComponent<ChestPanelController>().Setup(gameObject, _items);
|
|
}
|
|
}
|
|
// WARNING
|
|
// DANGER - functon override position which may be not free
|
|
|
|
}
|