private static void BodyTypeChanged( EntityUid uid, DisposalUnitComponent component, PhysicsBodyTypeChangedEvent args) { component.UpdateVisualState(); }
private void UnitContains(DisposalUnitComponent unit, bool result, params IEntity[] entities) { foreach (var entity in entities) { Assert.That(unit.ContainedEntities.Contains(entity), Is.EqualTo(result)); } }
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); } }
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()); }
private void UnitInsertContains(DisposalUnitComponent unit, bool result, params IEntity[] entities) { UnitInsert(unit, result, entities); UnitContains(unit, result, entities); }
private static void OnUnanchored(EntityUid uid, DisposalUnitComponent component, UnanchoredEvent args) { component.UpdateVisualState(); component.TryEjectContents(); }
private static void OnAnchored(EntityUid uid, DisposalUnitComponent component, AnchoredEvent args) { component.UpdateVisualState(); }