public void TestInsertion() { var owner = EntityManager.SpawnEntity("dummy"); var inserted = EntityManager.SpawnEntity("dummy"); var transform = inserted.Transform; var container = ContainerManagerComponent.Create <Container>("dummy", owner); Assert.That(container.Insert(inserted), Is.True); Assert.That(transform.Parent.Owner, Is.EqualTo(owner)); var container2 = ContainerManagerComponent.Create <Container>("dummy", inserted); Assert.That(container2.Insert(owner), Is.False); var success = container.Remove(inserted); Assert.That(success, Is.True); success = container.Remove(inserted); Assert.That(success, Is.False); container.Insert(inserted); owner.Delete(); // Make sure inserted was detached. Assert.That(transform.IsMapTransform, Is.True); }
public void TestCreation() { var entity = EntityManager.SpawnEntity("dummy"); var container = ContainerManagerComponent.Create <Container>("dummy", entity); Assert.That(container.ID, Is.EqualTo("dummy")); Assert.That(container.Owner, Is.EqualTo(entity)); var manager = entity.GetComponent <IContainerManager>(); Assert.That(container.Manager, Is.EqualTo(manager)); Assert.That(() => ContainerManagerComponent.Create <Container>("dummy", entity), Throws.ArgumentException); Assert.That(manager.HasContainer("dummy2"), Is.False); var container2 = ContainerManagerComponent.Create <Container>("dummy2", entity); Assert.That(container2.Manager, Is.EqualTo(manager)); Assert.That(container2.Owner, Is.EqualTo(entity)); Assert.That(container2.ID, Is.EqualTo("dummy2")); Assert.That(manager.HasContainer("dummy"), Is.True); Assert.That(manager.HasContainer("dummy2"), Is.True); Assert.That(manager.HasContainer("dummy3"), Is.False); Assert.That(manager.GetContainer("dummy"), Is.EqualTo(container)); Assert.That(manager.GetContainer("dummy2"), Is.EqualTo(container2)); Assert.That(() => manager.GetContainer("dummy3"), Throws.TypeOf <KeyNotFoundException>()); entity.Delete(); Assert.That(manager.Deleted, Is.True); Assert.That(container.Deleted, Is.True); Assert.That(container2.Deleted, Is.True); }
public void TestNestedRemovalWithDenial() { var coordinates = new EntityCoordinates(new EntityUid(1), (0, 0)); var entityOne = EntityManager.SpawnEntity("dummy", coordinates); var entityTwo = EntityManager.SpawnEntity("dummy", coordinates); var entityThree = EntityManager.SpawnEntity("dummy", coordinates); var entityItem = EntityManager.SpawnEntity("dummy", coordinates); var container = ContainerManagerComponent.Create <Container>("dummy", entityOne); var container2 = ContainerManagerComponent.Create <ContainerOnlyContainer>("dummy", entityTwo); var container3 = ContainerManagerComponent.Create <Container>("dummy", entityThree); Assert.That(container.Insert(entityTwo), Is.True); Assert.That(entityTwo.Transform.Parent !.Owner, Is.EqualTo(entityOne)); Assert.That(container2.Insert(entityThree), Is.True); Assert.That(entityThree.Transform.Parent !.Owner, Is.EqualTo(entityTwo)); Assert.That(container3.Insert(entityItem), Is.True); Assert.That(entityItem.Transform.Parent !.Owner, Is.EqualTo(entityThree)); Assert.That(container3.Remove(entityItem), Is.True); Assert.That(container.Contains(entityItem), Is.True); Assert.That(entityItem.Transform.Parent !.Owner, Is.EqualTo(entityOne)); entityOne.Delete(); Assert.That(entityTwo.Transform.Deleted, Is.True); }
/// <summary> /// Adds a new slot to this inventory component. /// </summary> /// <param name="slot">The name of the slot to add.</param> /// <exception cref="InvalidOperationException"> /// Thrown if the slot with specified name already exists. /// </exception> public ContainerSlot AddSlot(Slots slot) { if (HasSlot(slot)) { throw new InvalidOperationException($"Slot '{slot}' already exists."); } return(SlotContainers[slot] = ContainerManagerComponent.Create <ContainerSlot>(GetSlotString(slot), Owner)); }
public void TestNestedRemoval() { var owner = EntityManager.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var inserted = EntityManager.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var transform = inserted.Transform; var entity = EntityManager.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var container = ContainerManagerComponent.Create <Container>("dummy", owner); Assert.That(container.Insert(inserted), Is.True); Assert.That(transform.Parent !.Owner, Is.EqualTo(owner)); var container2 = ContainerManagerComponent.Create <Container>("dummy", inserted); Assert.That(container2.Insert(entity), Is.True); Assert.That(entity.Transform.Parent !.Owner, Is.EqualTo(inserted)); Assert.That(container2.Remove(entity), Is.True); Assert.That(container.Contains(entity), Is.True); Assert.That(entity.Transform.Parent !.Owner, Is.EqualTo(owner)); owner.Delete(); Assert.That(transform.Deleted, Is.True); }
public override void OnAdd() { base.OnAdd(); storage = ContainerManagerComponent.Create <Container>("storagebase", Owner); }