public void Should_behave_correctly_when_key_changed() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Entity entity = world.CreateEntity(); entity.Set(42); Check.That(map.TryGetEntities(42, out ReadOnlySpan <Entity> result)).IsTrue(); Check.That(result.ToArray()).ContainsExactly(entity); entity.Set(1337); Check.That(map.TryGetEntities(42, out result)).IsFalse(); Check.That(map.TryGetEntities(1337, out result)).IsTrue(); Check.That(result.ToArray()).ContainsExactly(entity); entity.Get <int>() = 42; entity.NotifyChanged <int>(); Check.That(map.TryGetEntities(1337, out result)).IsFalse(); Check.That(map.TryGetEntities(42, out result)).IsTrue(); Check.That(result.ToArray()).ContainsExactly(entity); }
public void Optimize_Should_sort_inner_storages() { using World world = new World(); using EntitySet set = world.GetEntities().With <int>().AsSet(); using EntitiesMap <bool> map = world.GetEntities().With <int>().AsMultiMap <bool>(); Entity e1 = world.CreateEntity(); Entity e2 = world.CreateEntity(); Entity e3 = world.CreateEntity(); Entity e4 = world.CreateEntity(); e4.Set(true); e4.Set(4); e3.Set(true); e3.Set(3); e2.Set(true); e2.Set(2); e1.Set(true); e1.Set(1); Check.That(set.GetEntities().ToArray()).ContainsExactly(e4, e3, e2, e1); Check.That(world.Get <int>().ToArray()).ContainsExactly(4, 3, 2, 1); Check.That(map[true].ToArray()).ContainsExactly(e4, e3, e2, e1); world.Optimize(); Check.That(set.GetEntities().ToArray()).ContainsExactly(e1, e2, e3, e4); Check.That(world.Get <int>().ToArray()).ContainsExactly(1, 2, 3, 4); Check.That(map[true].ToArray()).ContainsExactly(e1, e2, e3, e4); }
public void TryGetEntities_Should_return_weither_a_key_is_in_or_not() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Entity entity = world.CreateEntity(); Check.That(map.TryGetEntities(42, out ReadOnlySpan <Entity> result)).IsFalse(); entity.Set(42); Check.That(map.TryGetEntities(42, out result)).IsTrue(); Check.That(result.ToArray()).ContainsExactly(entity); entity.Disable <int>(); Check.That(map.TryGetEntities(42, out result)).IsFalse(); entity.Enable <int>(); Check.That(map.TryGetEntities(42, out result)).IsTrue(); Check.That(result.ToArray()).ContainsExactly(entity); entity.Remove <int>(); Check.That(map.TryGetEntities(42, out result)).IsFalse(); }
public void Keys_Should_return_keys() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Entity entity = world.CreateEntity(); entity.Set(42); Check.That(map.Keys as IEnumerable).ContainsExactly(42); entity.Remove <int>(); Check.That(map.Keys).IsEmpty(); entity.Set(42); using IEnumerator <int> enumerator = (map.Keys as IEnumerable <int>)?.GetEnumerator(); Check.That(enumerator.MoveNext()).IsTrue(); Check.That(enumerator.Current).IsEqualTo(42); enumerator.Reset(); Check.That(enumerator.MoveNext()).IsTrue(); Check.That(enumerator.Current).IsEqualTo(42); }
public void World_Should_return_world() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Check.That(map.World).IsEqualTo(world); }
internal KeyEnumerator(EntitiesMap <TKey> map) { _map = map; _enumerator = map._entities.GetEnumerator(); Current = default; }
public void Dispose_Should_not_throw_When_world_already_disposed() { World world = new World(4); EntitiesMap <int> set = world.GetEntities().AsMultiMap <int>(); world.Dispose(); Check.ThatCode(set.Dispose).DoesNotThrow(); }
public void This_Should_return_entities() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Entity entity = world.CreateEntity(); entity.Set(42); Check.That(map[42].ToArray()).ContainsExactly(entity); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { ApplicationSettingMap.Map(modelBuilder.Entity <ApplicationSetting>()); ApplicationEntitiesMap.Map(modelBuilder.Entity <ApplicationEntities>()); ApplicationProcessMap.Map(modelBuilder.Entity <ApplicationProcess>()); ApplicationsMap.Map(modelBuilder.Entity <Applications>()); DataPropertiesMap.Map(modelBuilder.Entity <DataProperties>()); DataTypesMap.Map(modelBuilder.Entity <DataTypes>()); EntitiesMap.Map(modelBuilder.Entity <EF.Entities.Entities>()); EntityPropertiesMap.Map(modelBuilder.Entity <EntityProperties>()); EntityRelationshipsMap.Map(modelBuilder.Entity <EntityRelationships>()); EntityViewMap.Map(modelBuilder.Entity <EntityView>()); EntityViewEntityPropertiesMap.Map(modelBuilder.Entity <EntityViewEntityProperties>()); EntityViewPropertiesMap.Map(modelBuilder.Entity <EntityViewProperties>()); EntityViewPropertyFunctionMap.Map(modelBuilder.Entity <EntityViewPropertyFunction>()); EntityViewPropertyFunctionParameterMap.Map(modelBuilder.Entity <EntityViewPropertyFunctionParameter>()); EntityViewViewPropertiesMap.Map(modelBuilder.Entity <EntityViewViewProperties>()); FunctionBodyMap.Map(modelBuilder.Entity <FunctionBody>()); FunctionParametersMap.Map(modelBuilder.Entity <FunctionParameters>()); FunctionReturnTypeMap.Map(modelBuilder.Entity <FunctionReturnType>()); FunctionsMap.Map(modelBuilder.Entity <Functions>()); FunctionSetFunctionsMap.Map(modelBuilder.Entity <FunctionSetFunctions>()); FunctionSetsMap.Map(modelBuilder.Entity <FunctionSets>()); LayersMap.Map(modelBuilder.Entity <Layers>()); LayoutMap.Map(modelBuilder.Entity <Layout>()); ModelTypesMap.Map(modelBuilder.Entity <ModelTypes>()); OperatorsMap.Map(modelBuilder.Entity <Operators>()); ParametersMap.Map(modelBuilder.Entity <Parameters>()); PartsMap.Map(modelBuilder.Entity <Parts>()); PresentationPropertiesMap.Map(modelBuilder.Entity <PresentationProperties>()); PrimaryKeyOptionsMap.Map(modelBuilder.Entity <PrimaryKeyOptions>()); ProcessMap.Map(modelBuilder.Entity <Process>()); ProcessStepsMap.Map(modelBuilder.Entity <ProcessSteps>()); ProcessStepScreensMap.Map(modelBuilder.Entity <ProcessStepScreens>()); ProjectsMap.Map(modelBuilder.Entity <Projects>()); RelationshipTypesMap.Map(modelBuilder.Entity <RelationshipTypes>()); ScreenLayoutsMap.Map(modelBuilder.Entity <ScreenLayouts>()); ScreenPartsMap.Map(modelBuilder.Entity <ScreenParts>()); ScreensMap.Map(modelBuilder.Entity <Screens>()); ScreenViewsMap.Map(modelBuilder.Entity <ScreenViews>()); SettingsMap.Map(modelBuilder.Entity <Settings>()); SettingsNamesMap.Map(modelBuilder.Entity <SettingsNames>()); StateMachinesMap.Map(modelBuilder.Entity <StateMachines>()); StateMachineStatesMap.Map(modelBuilder.Entity <StateMachineStates>()); StateMachineTriggersMap.Map(modelBuilder.Entity <StateMachineTriggers>()); StatesMap.Map(modelBuilder.Entity <States>()); StepsMap.Map(modelBuilder.Entity <Steps>()); TestValuesMap.Map(modelBuilder.Entity <TestValues>()); TriggersMap.Map(modelBuilder.Entity <Triggers>()); ViewEntityMap.Map(modelBuilder.Entity <ViewEntity>()); ViewsMap.Map(modelBuilder.Entity <Views>()); }
public void Count_Should_return_the_number_of_entities() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Entity entity = world.CreateEntity(); Check.That(map.Count(42)).IsZero(); entity.Set(42); Check.That(map.Count(42)).IsEqualTo(1); }
public void ContainsKey_Should_return_weither_a_key_is_in_or_not() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Entity entity = world.CreateEntity(); Check.That(map.ContainsKey(42)).IsFalse(); entity.Set(42); Check.That(map.ContainsKey(42)).IsTrue(); }
private HierarchyLevelSetter(World world) { _map = world.GetEntities().AsMultiMap <Parent>(); _addedSubscription = world.SubscribeComponentAdded <Parent>(OnAdded); _changedSubscription = world.SubscribeComponentChanged <Parent>(OnChanged); _removedSubscription = world.SubscribeComponentRemoved <Parent>(OnRemoved); using EntitySet entities = world.GetEntities().With <Parent>().AsSet(); foreach (ref readonly Entity entity in entities.GetEntities()) { OnAdded(entity, entity.Get <Parent>()); } }
public void Keys_Should_return_keys() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().AsMultiMap <int>(); Entity entity = world.CreateEntity(); entity.Set(42); Check.That(map.Keys.AsEnumerable()).ContainsExactly(42); entity.Remove <int>(); Check.That(map.Keys).IsEmpty(); }
public void Complete_Should_empty_When_reative() { using World world = new World(); using EntitiesMap <int> map = world.GetEntities().WhenAddedEither <int>().AsMultiMap <int>(); Entity entity = world.CreateEntity(); entity.Set(42); Check.That(map.TryGetEntities(42, out ReadOnlySpan <Entity> result)).IsTrue(); Check.That(result.ToArray()).ContainsExactly(entity); map.Complete(); Check.That(map.TryGetEntities(42, out result)).IsFalse(); entity.Set(1337); Check.That(map.TryGetEntities(42, out result)).IsFalse(); }
internal KeyEnumerable(EntitiesMap <TKey> map) { _map = map; }
public System(EntitiesMap <T> map) : base(map) { }
public BehaviorSystem(World world, IParallelRunner runner) : base(world, runner) { _world = world; _grid = world.GetEntities().With <CellId>().With <Velocity>().With <DrawInfo>().AsMultiMap <CellId>(); }