20 lines
655 B
C#

namespace Engine.Core;
/// <summary>
/// Represents a behaviour that any object in the engine that might use to interact with itself or other objects.
/// </summary>
public interface IBehaviour : IEntity, IActive, IHasBehaviourController, IHasStateEnable
{
/// <summary>
/// Event triggered when the priority of the <see cref="IBehaviour"/> changes.
/// </summary>
Event<IBehaviour, PriorityChangedArguments> OnPriorityChanged { get; }
/// <summary>
/// The priority of the <see cref="IBehaviour"/>.
/// </summary>
int Priority { get; set; }
readonly record struct PriorityChangedArguments(int PreviousPriority);
}