private void OnContextEntityComponentRemoved(FissureEntity changedEntity, BaseComponent removedComponent) { if (CompatibleComponents.Any(x => x == removedComponent.GetType())) { _entitiesToActOn.Remove(changedEntity); } }
protected override void Execute(FissureEntity entity) { var msg = entity.GetComponent <ExampleComponent>(); var num = entity.GetComponent <ExampleComponent2>(); Console.WriteLine($"{msg.Message} : {num.Number}"); }
private void OnContextEntityRemoved(FissureEntity removedEntity) { if (_entitiesToActOn.Select(x => x.Id).Contains(removedEntity.Id)) { _entitiesToActOn.Remove(removedEntity); } }
private void OnContextEntityAdded(FissureEntity addedEntity) { if (addedEntity.Components.Select(x => x.GetType()).Intersect(CompatibleComponents).Count() == CompatibleComponents.Count) { //if (addedEntity.Components.Any(component => CompatibleComponents.Contains(component.GetType()))) _entitiesToActOn.Add(addedEntity); } }
private void OnContextEntityComponentAdded(FissureEntity changedEntity, BaseComponent addedComponent) { if (CompatibleComponents.Contains(addedComponent.GetType()) && changedEntity.Components .Select(x => x.GetType()).Intersect(CompatibleComponents).Count() == CompatibleComponents.Count) { _entitiesToActOn.Add(changedEntity); } }
public void DestroyEntity(ref FissureEntity entity) { if (HasEntity(entity.Id)) { throw new EntityNotFoundException($"Cannot destroy Entity with the id {entity.Id} as it does not exist"); } Entities.Remove(entity); OnEntityRemoved(entity); entity = null; }
public FissureEntity CreateEntity(string entityId) { if (HasEntity(entityId)) { throw new EntityAlreadyExistsException(); } var newEntity = new FissureEntity(entityId); newEntity.ComponentAdded += OnEntityComponentAdded; newEntity.ComponentRemoved += OnEntityComponentRemoved; Entities.Add(newEntity); OnEntityAdded(newEntity); return(newEntity); }
protected override void Execute(FissureEntity entity) { var num = entity.GetComponent <ExampleComponent2>(); Console.WriteLine(num.Number); }
private void OnEntityComponentRemoved(FissureEntity entity, BaseComponent component) { EntityComponentRemoved?.Invoke(entity, component); }
private void OnEntityRemoved(FissureEntity entity) { EntityRemoved?.Invoke(entity); }
private void OnEntityAdded(FissureEntity entity) { EntityAdded?.Invoke(entity); }
protected abstract void Execute(FissureEntity entity);
protected override void Execute(FissureEntity entity) { var messageComponent = entity.GetComponent <ExampleComponent>(); Console.WriteLine(messageComponent.Message); }