Files
AppleHillsProduction/Assets/Scripts/DamianExperiments/SoundBirdPuzzleSection/Sound Generator.cs
2025-10-30 16:31:01 +01:00

61 lines
1.9 KiB
C#

using Core;
using Pixelplacement;
using UnityEngine;
public class SoundGenerator : MonoBehaviour
{
[SerializeField] private Sprite enterSprite;
[SerializeField] private Sprite exitSprite;
[SerializeField] private AudioClip enterSound;
[SerializeField] private AppleAudioSource audioSource;
[SerializeField] private StateMachine soundBirdSMRef;
[SerializeField] private soundBird_CanFly soundbirdHearingCheck;
private bool playerInside = false;
private SpriteRenderer spriteRenderer;
void Awake()
{
spriteRenderer = GetComponent<SpriteRenderer>();
if (spriteRenderer != null && exitSprite != null)
{
spriteRenderer.sprite = exitSprite; // Set to default on start
}
}
private void OnTriggerEnter2D(Collider2D other)
{
if (!playerInside && other.CompareTag("Player"))
{
playerInside = true;
// Logging.Debug("Player entered SoundGenerator trigger!");
if (spriteRenderer != null && enterSprite != null)
{
spriteRenderer.sprite = enterSprite;
}
if (audioSource != null && enterSound != null)
{
audioSource.audioSource.PlayOneShot(enterSound);
}
if (soundBirdSMRef != null && soundBirdSMRef.currentState.name == "SoundBird" && soundbirdHearingCheck.canFly == true)
{
soundBirdSMRef.ChangeState("SoundBirdTakeoff");
}
}
}
private void OnTriggerExit2D(Collider2D other)
{
if (playerInside && other.CompareTag("Player"))
{
playerInside = false;
// Logging.Debug("Player exited SoundGenerator trigger!");
if (spriteRenderer != null && exitSprite != null)
{
spriteRenderer.sprite = exitSprite;
}
}
}
}