public EntityWrapper AddElementToBuffer <T>(T element) where T : struct, IBufferElementData { var buffer = EntityManagerWrapper.GetOrCreateBuffer <T>(Entity); buffer.Add(element); return(this); }
public EntityWrapper UsingWrapper(EntityManagerWrapper wrapper, Action <EntityWrapper> callback) { var newEntityWrapper = new EntityWrapper(Entity, wrapper, Variables); callback.Invoke(newEntityWrapper); return(this); }
public DynamicBuffer <T> GetOrCreateBuffer <T>() where T : struct, IBufferElementData { if (EntityManagerWrapper.HasComponent <T>(Entity)) { return(EntityManagerWrapper.GetBuffer <T>(Entity)); } return(AddBufferAndReturn <T>()); }
public EntityWrapper AddElementsToBuffer <T>(params T[] elements) where T : struct, IBufferElementData { var buffer = EntityManagerWrapper.AddBuffer <T>(Entity); foreach (var element in elements) { buffer.Add(element); } return(this); }
public Entity Build(EntityManagerWrapper wrapper) { m_built = true; foreach (var step in m_steps) { step.Process(wrapper, m_variables, ref data); } return(data.entity); }
public bool TryGetBuffer <T>(out DynamicBuffer <T> output) where T : struct, IBufferElementData { if (EntityManagerWrapper.HasComponent <T>(Entity)) { output = EntityManagerWrapper.GetBuffer <T>(Entity); return(true); } output = default; return(false); }
public bool TryGetComponent <T>(out T output) where T : struct, IComponentData { if (EntityManagerWrapper.HasComponent <T>(Entity)) { output = EntityManagerWrapper.GetComponentData <T>(Entity); return(true); } output = default; return(false); }
public EntityWrapper AddBuffer <T>(int repeat) where T : struct, IBufferElementData { var buffer = EntityManagerWrapper.AddBuffer <T>(Entity); for (var i = 0; i < repeat; i++) { buffer.Add(new T()); } return(this); }
public EntityWrapper ReplaceElementsInBuffer <T>(params T[] elements) where T : struct, IBufferElementData { if (Entity.Index < 0) { return(AddElementsToBuffer(elements)); } var buffer = EntityManagerWrapper.GetOrCreateBuffer <T>(Entity); buffer.Clear(); foreach (var element in elements) { buffer.Add(element); } return(this); }
public virtual Entity Build(EntityManagerWrapper wrapper) { isBuilt = true; var entity = creationStrategy.Create(wrapper, variables); OnPreBuildHandler?.Invoke(); OnPreBuild(wrapper); foreach (var step in steps) { step.Process(wrapper, variables, entity); } OnPostBuildHandler?.Invoke(EntityWrapper.Wrap(entity, wrapper)); return(entity); }
public virtual Entity Build(EntityManagerWrapper wrapper) { m_built = true; var entity = m_creationStrategy.Create(wrapper, m_variables); preBuild?.Invoke(); OnPreBuild(wrapper); foreach (var step in m_steps) { step.Process(wrapper, m_variables, entity); } OnPostBuild(wrapper, entity); postBuild?.Invoke(EntityWrapper.Wrap(entity, wrapper)); return(entity); }
private EntityArchetype GetOrCreateArchetype(EntityManagerWrapper wrapper, Type archetypeType) { if (m_archetypes.ContainsKey(archetypeType)) { return(m_archetypes[archetypeType]); } try { var instance = Activator.CreateInstance(archetypeType) as IArchetypeDescriptor; if (instance == null) { throw new NotImplementedException($"Archetype descriptor {archetypeType} should implement {typeof(IArchetypeDescriptor)} interface and have an empty constructor"); } var archetype = wrapper.CreateArchetype(instance.Components); m_archetypes[archetypeType] = archetype; return(archetype); } catch (Exception e) { throw new NotImplementedException($"Failed to instantiate archetype from archetype descriptor {archetypeType}", e); } }
public static EntityWrapper Instantiate(Entity prefab, EntityCommandBuffer entityCommandBuffer) { var entityManagerWrapper = EntityManagerWrapper.FromCommandBuffer(entityCommandBuffer); return(new EntityWrapper(entityManagerWrapper.Instantiate(prefab), entityManagerWrapper)); }
public static EntityWrapper CreateEntity <T>(int threadId, EntityCommandBuffer.ParallelWriter entityCommandBuffer) where T : IArchetypeDescriptor { var entityManagerWrapper = EntityManagerWrapper.FromJobCommandBuffer(entityCommandBuffer, threadId); return(new EntityWrapper(entityManagerWrapper.CreateEntityFromArchetype <T>(), entityManagerWrapper)); }
public static EntityWrapper CreateEntity(EntityManagerWrapper entityManagerWrapper) { return(new EntityWrapper(entityManagerWrapper.CreateEntity(), entityManagerWrapper)); }
public static EntityWrapper CreateEntity <T>(EntityCommandBuffer entityCommandBuffer) where T : IArchetypeDescriptor { var entityManagerWrapper = EntityManagerWrapper.FromCommandBuffer(entityCommandBuffer); return(new EntityWrapper(entityManagerWrapper.CreateEntityFromArchetype <T>(), entityManagerWrapper)); }
public static EntityWrapper CreateEntity(int threadId, EntityCommandBuffer.ParallelWriter entityCommandBuffer) { var entityManagerWrapper = EntityManagerWrapper.FromJobCommandBuffer(entityCommandBuffer, threadId); return(new EntityWrapper(entityManagerWrapper.CreateEntity(), entityManagerWrapper)); }
public DynamicBuffer <T> AddOrCreateBuffer <T>() where T : struct, IBufferElementData { return(EntityManagerWrapper.HasComponent <T>(Entity) ? EntityManagerWrapper.GetBuffer <T>(Entity) : EntityManagerWrapper.AddBuffer <T>(Entity)); }
public static EntityWrapper CreateEntity(EntityCommandBuffer entityCommandBuffer) { var entityManagerWrapper = EntityManagerWrapper.FromCommandBuffer(entityCommandBuffer); return(new EntityWrapper(entityManagerWrapper.CreateEntity(), entityManagerWrapper)); }
public bool RemoveComponent <T>() where T : struct, IComponentData { return(EntityManagerWrapper.RemoveComponent <T>(Entity)); }
public void AddComponentObject(Component componentObject) { EntityManagerWrapper.AddComponentObject(Entity, componentObject); }
public T GetComponentDataOrDefault <T>() where T : struct, IComponentData { return(EntityManagerWrapper.HasComponent <T>(Entity) ? EntityManagerWrapper.GetComponentData <T>(Entity) : default(T)); }
public bool HasComponent <T>() where T : struct { return(EntityManagerWrapper.HasComponent <T>(Entity)); }
public T GetComponentData <T>() where T : struct, IComponentData { return(EntityManagerWrapper.GetComponentData <T>(Entity)); }
public EntityWrapper AppendToBuffer <T>(T elementData) where T : struct, IBufferElementData { EntityManagerWrapper.AppendToBuffer <T>(Entity, elementData); return(this); }
public static EntityWrapper Instantiate(Entity prefab, int threadId, EntityCommandBuffer.ParallelWriter entityCommandBuffer) { var entityManagerWrapper = EntityManagerWrapper.FromJobCommandBuffer(entityCommandBuffer, threadId); return(new EntityWrapper(entityManagerWrapper.Instantiate(prefab), entityManagerWrapper)); }
public DynamicBuffer <T> GetBuffer <T>() where T : struct, IBufferElementData { return(EntityManagerWrapper.GetBuffer <T>(Entity)); }
public EntityWrapper AddBuffer <T>() where T : struct, IBufferElementData { EntityManagerWrapper.AddBuffer <T>(Entity); return(this); }
public static EntityWrapper Wrap(Entity entity, ComponentSystem componentSystem) { return(new EntityWrapper(entity, EntityManagerWrapper.From(componentSystem))); }
public EntityWrapper Destroy() { EntityManagerWrapper.Destroy(Entity); Entity = Entity.Null; return(this); }