chore: Added Initial Engine Code

This commit is contained in:
2023-11-23 22:07:49 +03:00
parent a47586851c
commit 5fcf63c5a7
40 changed files with 1773 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
using System;
namespace Syntriax.Engine.Core.Abstract;
/// <summary>
/// Indicates the object is an <see cref="IAssignable"/> with an assignable <see cref="IEntity"/> field.
/// </summary>
public interface IAssignableEntity : IAssignable
{
/// <summary>
/// Callback triggered when the <see cref="IEntity"/> value has has been assigned a new value.
/// </summary>
Action<IAssignableEntity>? OnEntityAssigned { get; set; }
/// <inheritdoc cref="IEntity" />
IEntity Entity { get; }
/// <summary>
/// Assign a value to the <see cref="IEntity"/> field of this object
/// </summary>
/// <param name="entity">New <see cref="IEntity"/> to assign.</param>
/// <returns>
/// <see cref="true"/>, if the value given assigned successfully assigned, <see cref="false"/> if not.
/// </returns>
bool Assign(IEntity entity);
}