82 lines
1.8 KiB
C#
82 lines
1.8 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
|
||
|
public class ArtefactControl : MonoBehaviour
|
||
|
{
|
||
|
|
||
|
|
||
|
private bool _show;
|
||
|
private bool _canInteract;
|
||
|
|
||
|
[SerializeField]
|
||
|
private Artefact data;
|
||
|
public int artefactID => _artefactID;
|
||
|
private int _artefactID;
|
||
|
private string _artefactDialogue;
|
||
|
|
||
|
private void Start()
|
||
|
{
|
||
|
_artefactID = data.artefactID;
|
||
|
_artefactDialogue = data.artefactDialogue;
|
||
|
_show = data.show;
|
||
|
_canInteract = data.canInteract;
|
||
|
|
||
|
EventHandler.current.onArtefactTriggerEnter += NearArtefact;
|
||
|
EventHandler.current.onArtefactTriggerExit += AwayArtefact;
|
||
|
EventHandler.current.onArtefactPickUp += PickUp;
|
||
|
}
|
||
|
|
||
|
private void NearArtefact(int id)
|
||
|
{
|
||
|
if (id == this._artefactID)
|
||
|
{
|
||
|
_show = true;
|
||
|
this._canInteract = true;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
private void AwayArtefact(int id)
|
||
|
{
|
||
|
if (id == this._artefactID)
|
||
|
{
|
||
|
_show = false;
|
||
|
this._canInteract = false;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
private void PickUp(int id)
|
||
|
{
|
||
|
if (id == this._artefactID)
|
||
|
{
|
||
|
if (_canInteract == true)
|
||
|
{
|
||
|
ArtefactInventory.addA(data);
|
||
|
foreach (var x in ArtefactInventory.artefactList)
|
||
|
{
|
||
|
Debug.Log(x.ToString());
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//here put 'show artifact dialogue'
|
||
|
if (this.gameObject != null)
|
||
|
Destroy(this.gameObject);
|
||
|
PlayerInputHandler.id = 0;
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
void OnGUI()
|
||
|
{
|
||
|
if (_show)
|
||
|
{
|
||
|
GUI.Label(new Rect(Screen.width / 2 - 50, 5, 100, 100), "Press E to pickup");
|
||
|
}
|
||
|
}
|
||
|
}
|