private void UpdateEntityKnowledge( GameEntity entity, EntityMatcher <GameEntity> matcher, GameManager manager, Point?additionalCellToTest = null, LevelComponent level = null) { var position = entity.Position; if (position != null) { level = level ?? position.LevelEntity.Level; } SenseType sensedType; if (position != null && ((sensedType = manager.SensorySystem.SensedByPlayer(entity, position.LevelCell)) != SenseType.None || (additionalCellToTest != null && (sensedType = manager.SensorySystem.SensedByPlayer(entity, additionalCellToTest.Value)) != SenseType.None))) { foreach (var conflictingKnowledge in manager.LevelKnowledgeToLevelCellIndex[(position.LevelId, position.LevelX, position.LevelY)])
public void ShouldMatchEntityReceivedFromFilter() { testEntity.AddComponent(new FirstTestComponent()); testFilter.AnyOf(typeof(FirstTestComponent)); Assert.IsTrue(EntityMatcher.GetMatchedEntities(testFilter).Contains(testEntity)); }
public List <Category> GetListOfCategories(EntityMatcher matcher) { var command = $"SELECT * FROM {matcher.TableName}"; var result = _commandContext .ExecuteTypeSqlCommand <Category>(command) .ToList(); return(result); }
private void UpdateAllEntitiesKnowledge( EntityRelationship <GameEntity> levelEntitiesToLevelRelationship, EntityMatcher <GameEntity> matcher, LevelComponent level, GameManager manager) { // TODO: Perf: use interval tree to only get the entities and knowledge within sense range foreach (var levelEntity in levelEntitiesToLevelRelationship[level.EntityId]) { UpdateEntityKnowledge(levelEntity, matcher, manager, level: level); } }
private IEnumerable <EntityMatcher> InitializeEntitymatchers() { var productMatcher = new EntityMatcher(typeof(Product)) { TableName = "Products" }; productMatcher.MatchedTags.UnionWith(new[] { "товар", "продукт", "покупка" }); productMatcher.MatchedBulkTags.UnionWith(new[] { "товары", "продукты", "покупки" }); var categoryMatcher = new EntityMatcher(typeof(Category)) { TableName = "Categories" }; categoryMatcher.MatchedTags.UnionWith(new[] { "категория", "вид", "ассортимент", "разновидность" }); categoryMatcher.MatchedBulkTags.UnionWith(new[] { "категории", "виды", "разновидности" }); return(new[] { productMatcher, categoryMatcher }); }
public void ThrowExceptionWhenPassNullFilter() { EntityMatcher.GetMatchedEntities(null); }
public void ShouldNotDuplicateIds() { EntityMatcher.Subscribe(testEntity); EntityMatcher.Subscribe(testEntity); Assert.AreEqual(1, EntityMatcher.subscribedEntities.Count); }
public void ShouldSubscibeBlankId() { EntityMatcher.Subscribe(testEntity); Assert.AreNotEqual(0, EntityMatcher.subscribedEntities.Count); }
public void ShouldUnsubscribeEntity() { EntityMatcher.Unsubscribe(testEntity); Assert.AreEqual(0, EntityMatcher.subscribedEntities.Count); }
public void ShouldThrowExceptionWhenRemoveNullEntity() { EntityMatcher.Unsubscribe(null); }
public void ShouldThrowExceptionWhenAddNullEntity() { EntityMatcher.Subscribe(null); }