Files
Fruitomation/Assets/Scripts/Game/Buildings/FanBuilding.cs
2026-04-28 16:54:25 +01:00

58 lines
1.8 KiB
C#

using Fruitomation.Global;
using UnityEngine;
namespace Fruitomation.Game
{
public class FanBuilding : Building
{
[Header("Fan Specific Items")]
[SerializeField] private TriggerDetector TriggerDetector;
[SerializeField] private Animator FanAnimator;
[SerializeField] private Transform FanOrigin;
private void Start()
{
TriggerDetector.SetAction(other =>
{
if (other.transform.parent.TryGetComponent(out Rigidbody2D body))
{
Vector3 start = FanOrigin.position;
Vector3 end = body.gameObject.transform.position;
Vector3 diff = end - start;
Vector3 dir = diff.normalized;
float mag = diff.magnitude;
int mask = LayerMask.GetMask("Buildings");
RaycastHit2D hit = Physics2D.Raycast(start, dir, mag, mask);
if (hit.collider is null)
{
Vector3 force = new(-transform.localScale.x, 0f, 0f);
body.AddForce(force * 5f, ForceMode2D.Impulse);
}
}
}, TriggerType.Stay);
}
private void Update()
{
if (GameStateController.Is(GameState.Simulation))
{
if (FanAnimator.speed == 0)
{
FanAnimator.Play(0, 0, 0f); // Play from beginning
FanAnimator.speed = 1; // Playing
}
}
else
{
if (FanAnimator.speed != 0)
{
FanAnimator.Play(0, 0, 0f); // Jump back to default frame
FanAnimator.speed = 0; // Paused
}
}
}
}
}