Syntriax.Engine/Engine.Core/Abstract/Assignable/IAssignableGameObject.cs

27 lines
978 B
C#
Raw Normal View History

2023-11-23 22:07:49 +03:00
namespace Syntriax.Engine.Core.Abstract;
/// <summary>
/// Indicates the object is an <see cref="IAssignable"/> with an assignable <see cref="IGameObject"/> field.
/// </summary>
public interface IAssignableGameObject : IAssignable
{
/// <summary>
2024-02-01 12:06:31 +03:00
/// Event triggered when the <see cref="IGameObject"/> value has has been assigned a new value.
2023-11-23 22:07:49 +03:00
/// </summary>
2024-07-15 01:13:39 +03:00
event OnGameObjectAssignedDelegate? OnGameObjectAssigned;
2023-11-23 22:07:49 +03:00
/// <inheritdoc cref="IGameObject" />
IGameObject GameObject { get; }
/// <summary>
2024-02-01 12:06:31 +03:00
/// Assign a value to the <see cref="IGameObject"/> field of this object.
2023-11-23 22:07:49 +03:00
/// </summary>
/// <param name="gameObject">New <see cref="IGameObject"/> to assign.</param>
/// <returns>
/// <see cref="true"/>, if the value given assigned successfully assigned, <see cref="false"/> if not.
/// </returns>
bool Assign(IGameObject gameObject);
2024-07-15 01:13:39 +03:00
delegate void OnGameObjectAssignedDelegate(IAssignableGameObject sender);
2023-11-23 22:07:49 +03:00
}