ccl4/blueberryPeak/Assets/Scripts/BushInteraction.cs

86 lines
2.1 KiB
C#

using System;
using Unity.Mathematics;
using UnityEngine;
using Random = UnityEngine.Random;
using AK.Wwise; // Make sure your Wwise namespace is correct
public class BushInteraction : MonoBehaviour
{
[SerializeField] private int blueberryCount;
#if UNITY_EDITOR
void OnValidate()
{
if (blueberryCount > 0)
{
// If the UID is already set, we don't need to do anything
return;
}
// Generate a new UID based on the position of the object
blueberryCount = Random.Range(1, 5);
}
#endif
[SerializeField] private GameObject emptyBush;
private bool BlueBerriesPicked = false;
// Wwise Events
public AK.Wwise.Event PlayBushesEvent;
public AK.Wwise.Event PlayBerryWithBushEvent;
void Start()
{
}
void OnTriggerEnter(Collider other)
{
if (!BlueBerriesPicked && other.CompareTag("Player"))
{
if (emptyBush == null)
{
PlayBushesEvent.Post(gameObject);
return;
}
// Play the "Play_BerryWithBush" event if bush has berries
PlayBerryWithBushEvent.Post(gameObject);
other.gameObject.GetComponent<PlayerInteraction>().CollectBlueberry(blueberryCount);
ChangeBushAppearance();
blueberryCount = 0;
BlueBerriesPicked = true;
}
}
public int GetBlueberryCount()
{
return blueberryCount;
}
public void SetBlueberryCount(int count)
{
blueberryCount = count;
if (blueberryCount == 0 && BlueBerriesPicked)
{
ChangeBushAppearance();
}
}
public void ChangeBushAppearance()
{
Vector3 currentPosition = transform.position;
Quaternion currentRotation = transform.rotation;
Transform parent = transform.parent;
Destroy(gameObject);
GameObject _emptyBush = Instantiate(emptyBush, currentPosition, currentRotation);
}
public void SetBlueberriesPicked(bool picked)
{
BlueBerriesPicked = picked;
}
public bool AreBlueberriesPicked()
{
return BlueBerriesPicked;
}
}