This commit is contained in:
CortexCore
2023-08-11 23:57:37 +08:00
parent 936a94c84b
commit 75889ec34f
149 changed files with 6524 additions and 1043 deletions

View File

@@ -1,5 +1,5 @@
using System.Threading;
using System;
namespace BITKit.Core.Entites
{
/// <summary>
@@ -21,6 +21,7 @@ namespace BITKit.Core.Entites
/// </summary>
public interface IEntityComponent:IAwake,IStart
{
Type BaseType { get; }
IEntity Entity { get; set; }
}
/// <summary>
@@ -28,6 +29,14 @@ namespace BITKit.Core.Entites
/// </summary>
public interface IEntitiesService
{
/// <summary>
/// 当添加Entity时
/// </summary>
public event Action<IEntity> OnAdd;
/// <summary>
/// 当移除Entity时
/// </summary>
public event Action<IEntity> OnRemove;
/// <summary>
/// 所有Entity
/// </summary>
@@ -45,11 +54,38 @@ namespace BITKit.Core.Entites
/// <returns></returns>
bool UnRegister(IEntity entity);
CancellationToken CancellationToken { get; }
/// <summary>
/// 通过Id获取Entity
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
IEntity Get(ulong id);
/// <summary>
/// 查询Entity,例如
/// </summary>
/// <para>var rotationEntities=EntitiesService.Query&lt;RotationComponent&gt;</para>
IEntity[] Query<T>() where T : IEntityComponent;
/// <summary>
/// 查询1个组件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
T[] QueryComponents<T>() where T : IEntityComponent;
/// <summary>
/// 查询2个组件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T1"></typeparam>
/// <returns></returns>
ValueTuple<T,T1>[] QueryComponents<T,T1>()where T : IEntityComponent where T1 : IEntityComponent;
/// <summary>
/// 查询3个组件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T1"></typeparam>
/// <typeparam name="T2"></typeparam>
/// <returns></returns>
ValueTuple<T,T1,T2>[] QueryComponents<T,T1,T2>() where T : IEntityComponent where T1 : IEntityComponent where T2 : IEntityComponent;
}
}