Items/SmokeDetector.cs
using System;

namespace Clover.Items;

[Category( "Clover/Items" )]
public class SmokeDetector : Component
{
	[Property] public SoundEvent Sound { get; set; }

	[Property] public float TimeBetweenSounds { get; set; }

	private TimeSince _timeSinceLastSound;

	protected override void OnStart()
	{
		_timeSinceLastSound = TimeBetweenSounds + Random.Shared.Float( 0, 10 );
	}

	protected override void OnFixedUpdate()
	{
		if ( _timeSinceLastSound >= TimeBetweenSounds )
		{
			GameObject.PlaySound( Sound );
			_timeSinceLastSound = 0;
		}
	}
}