Exemple #1
0
 private static void BodyTypeChanged(
     EntityUid uid,
     DisposalUnitComponent component,
     PhysicsBodyTypeChangedEvent args)
 {
     component.UpdateVisualState();
 }
Exemple #2
0
 private void UnitContains(DisposalUnitComponent unit, bool result, params IEntity[] entities)
 {
     foreach (var entity in entities)
     {
         Assert.That(unit.ContainedEntities.Contains(entity), Is.EqualTo(result));
     }
 }
Exemple #3
0
        private void Flush(DisposalUnitComponent unit, bool result, DisposalEntryComponent?entry = null, params IEntity[] entities)
        {
            Assert.That(unit.ContainedEntities, Is.SupersetOf(entities));
            Assert.That(entities.Length, Is.EqualTo(unit.ContainedEntities.Count));

            Assert.That(result, Is.EqualTo(unit.TryFlush()));
            Assert.That(result || entities.Length == 0, Is.EqualTo(unit.ContainedEntities.Count == 0));
        }
        private void Flush(DisposalUnitComponent unit, bool result, params IEntity[] entities)
        {
            Assert.That(unit.ContainedEntities, Is.SupersetOf(entities));
            Assert.That(entities.Length, Is.EqualTo(unit.ContainedEntities.Count));

            Assert.That(result, Is.EqualTo(EntitySystem.Get <DisposalUnitSystem>().TryFlush(unit)));
            Assert.That(result || entities.Length == 0, Is.EqualTo(unit.ContainedEntities.Count == 0));
        }
        private void UnitInsert(DisposalUnitComponent unit, bool result, params EntityUid[] entities)
        {
            var system = EntitySystem.Get<DisposalUnitSystem>();

            foreach (var entity in entities)
            {
                Assert.That(system.CanInsert(unit, entity), Is.EqualTo(result));
                system.TryInsert(unit.Owner, entity, entity);
            }
        }
Exemple #6
0
        private void UnitInsert(DisposalUnitComponent unit, bool result, params IEntity[] entities)
        {
            foreach (var entity in entities)
            {
                Assert.That(unit.CanInsert(entity), Is.EqualTo(result));
                Assert.That(unit.TryInsert(entity), Is.EqualTo(result));

                if (result)
                {
                    // Not in a tube yet
                    Assert.That(entity.Transform.Parent == unit.Owner.Transform);
                }
            }
        }
        public bool TryInsert(DisposalUnitComponent from)
        {
            var holder          = _entMan.SpawnEntity(HolderPrototypeId, _entMan.GetComponent <TransformComponent>(Owner).MapPosition);
            var holderComponent = _entMan.GetComponent <DisposalHolderComponent>(holder);

            foreach (var entity in from.Container.ContainedEntities.ToArray())
            {
                holderComponent.TryInsert(entity);
            }

            EntitySystem.Get <AtmosphereSystem>().Merge(holderComponent.Air, from.Air);
            from.Air.Clear();

            return(EntitySystem.Get <DisposableSystem>().EnterTube((holderComponent).Owner, Owner, holderComponent, null, this));
        }
        public bool TryInsert(DisposalUnitComponent from)
        {
            var holder          = Owner.EntityManager.SpawnEntity(HolderPrototypeId, Owner.Transform.MapPosition);
            var holderComponent = holder.GetComponent <DisposalHolderComponent>();

            foreach (var entity in from.ContainedEntities.ToArray())
            {
                holderComponent.TryInsert(entity);
            }

            EntitySystem.Get <AtmosphereSystem>().Merge(holderComponent.Air, from.Air);
            from.Air.Clear();

            return(TryInsert(holderComponent));
        }
 private void UnitInsert(DisposalUnitComponent unit, bool result, params IEntity[] entities)
 {
     foreach (var entity in entities)
     {
         var insertTask = unit.TryInsert(entity);
         Assert.That(unit.CanInsert(entity), Is.EqualTo(result));
         insertTask.ContinueWith(task =>
         {
             Assert.That(task.Result, Is.EqualTo(result));
             if (result)
             {
                 // Not in a tube yet
                 Assert.That(entity.Transform.Parent, Is.EqualTo(unit.Owner.Transform));
             }
         });
     }
 }
        private async Task UnitInsert(DisposalUnitComponent unit, bool result, params IEntity[] entities)
        {
            List <Task> insertionTasks = new();

            foreach (var entity in entities)
            {
                Assert.That(EntitySystem.Get <DisposalUnitSystem>().CanInsert(unit, entity), Is.EqualTo(result));
                var insertTask = unit.TryInsert(entity).ContinueWith(task =>
                {
                    Assert.That(task.Result, Is.EqualTo(result));
                    if (result)
                    {
                        // Not in a tube yet
                        Assert.That(entity.Transform.Parent, Is.EqualTo(unit.Owner.Transform));
                    }
                });
                insertionTasks.Add(insertTask);
            }

            await Task.WhenAll(insertionTasks.ToArray());
        }
Exemple #11
0
 private void UnitInsertContains(DisposalUnitComponent unit, bool result, params IEntity[] entities)
 {
     UnitInsert(unit, result, entities);
     UnitContains(unit, result, entities);
 }
Exemple #12
0
 private static void OnUnanchored(EntityUid uid, DisposalUnitComponent component, UnanchoredEvent args)
 {
     component.UpdateVisualState();
     component.TryEjectContents();
 }
Exemple #13
0
 private static void OnAnchored(EntityUid uid, DisposalUnitComponent component, AnchoredEvent args)
 {
     component.UpdateVisualState();
 }