Mirror of Svelto.ECS because we're a fan of it
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #if UNITY_ECS
- using Unity.Entities;
-
- namespace Svelto.ECS.SveltoOnDOTS
- {
- /// <summary>
- /// If for some reason the user needs the DOTS entities to be grouped like the Svelto Entities, then this descriptor can be extended
- /// which will automatically enable the SveltoOnDOTSHandleLifeTimeEngine synchronization.
- /// This will also handle entities destruction.
- /// </summary>
- public class SveltoOnDotsSynchedEntityDescriptor: GenericEntityDescriptor<DOTSEntityComponent> { }
-
- public interface IEntityComponentForDOTS: IEntityComponent
- {
- public Entity dotsEntity { get; set; }
- }
-
- public struct DOTSEntityComponent:IEntityComponentForDOTS
- {
- public DOTSEntityComponent(Entity entity)
- {
- dotsEntity = entity;
- }
-
- public Entity dotsEntity { get; set; }
- }
-
- //DOTS COMPONENTS:
-
- /// <summary>
- /// DOTS component to keep track of the associated Svelto.ECS entity
- /// </summary>
- public struct DOTSSveltoReference: IComponentData
- {
- public EntityReference entityReference;
-
- public DOTSSveltoReference(EntityReference eEntityReference)
- {
- entityReference = eEntityReference;
- }
- }
-
- /// <summary>
- /// DOTS component to be able to query all the DOTS entities found in a Svelto.ECS group
- /// </summary>
- public readonly struct DOTSSveltoGroupID: ISharedComponentData
- {
- readonly ExclusiveGroupStruct group;
-
- public DOTSSveltoGroupID(ExclusiveGroupStruct exclusiveGroup)
- {
- @group = exclusiveGroup;
- }
-
- public static implicit operator ExclusiveGroupStruct(DOTSSveltoGroupID group)
- {
- return group.@group;
- }
- }
- }
- #endif
|