73 lines
1.7 KiB
C#
73 lines
1.7 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
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();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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();
|
||
|
}
|
||
|
|
||
|
protected override void SetupPanel()
|
||
|
{
|
||
|
if(this.dynamicPanel)
|
||
|
{
|
||
|
this.dynamicPanel.GetComponent<ChestPanelController>().Setup(gameObject, _items);
|
||
|
}
|
||
|
}
|
||
|
// WARNING
|
||
|
// DANGER - functon override position which may be not free
|
||
|
|
||
|
}
|