namespace Syntriax.Engine.Core.Abstract; /// <summary> /// Indicates the object is an <see cref="IAssignable"/> with an assignable <see cref="ITransform"/> field. /// </summary> public interface IAssignableTransform : IAssignable { /// <summary> /// Event triggered when the <see cref="ITransform"/> value has has been assigned a new value. /// </summary> event OnTransformAssignedEventHandler? OnTransformAssigned; /// <inheritdoc cref="ITransform" /> ITransform Transform { get; } /// <summary> /// Assign a value to the <see cref="ITransform"/> field of this object. /// </summary> /// <param name="transform">New <see cref="ITransform"/> to assign.</param> /// <returns> /// <see cref="true"/>, if the value given assigned successfully assigned, <see cref="false"/> if not. /// </returns> bool Assign(ITransform transform); delegate void OnTransformAssignedEventHandler(IAssignableTransform sender); }