TheFrontRoomsGame/Assets/Key/KeyScripts/keyHolder.cs
2023-03-24 10:33:36 +00:00

60 lines
No EOL
1.3 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
public class keyHolder : MonoBehaviour
{
public event EventHandler OnKeysChanged;
public bool AllKeys = false;
private List<Key.KeyType> keyList;
private void Awake()
{
keyList = new List<Key.KeyType>();
}
public List<Key.KeyType> GetKeyList()
{
return keyList;
}
public void AddKey(Key.KeyType keyType)
{
keyList.Add(keyType);
OnKeysChanged?.Invoke(this, EventArgs.Empty);
}
public void RemoveKey(Key.KeyType keyType)
{
keyList.Remove(keyType);
OnKeysChanged?.Invoke(this, EventArgs.Empty);
}
public bool ContainsKey(Key.KeyType keyType)
{
return keyList.Contains(keyType);
}
private void OnTriggerEnter(Collider collider)
{
Key key = collider.GetComponent<Key>();
if (key != null)
{
AddKey(key.GetKeyType());
Destroy(key.gameObject);
}
KeyDoor keyDoor = collider.GetComponent<KeyDoor>();
if (keyDoor != null)
{
if (ContainsKey(keyDoor.GetKeyType()))
{
RemoveKey(keyDoor.GetKeyType());
keyDoor.OpenDoor();
}
}
}
}