Shared Containers (#3331)

* Namespace changes for containers.
Moved ContainerSlot from content to engine.

* Merged client/server ContainerManagerComponents into a single shared version.

* Mapfile and nullability fixes.

* Upgrades map.

* Update engine.
This commit is contained in:
Acruid
2021-03-01 15:24:46 -08:00
committed by GitHub
parent adda1ee404
commit 6c081d9d8d
64 changed files with 796 additions and 1439 deletions

View File

@@ -1,6 +1,7 @@
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Physics;
using Robust.Client.Player;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Map;

View File

@@ -3,7 +3,7 @@ using Content.Client.Utility;
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Utility;
using NUnit.Framework;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
@@ -49,7 +49,7 @@ namespace Content.IntegrationTests.Tests.Interaction
origin = entityManager.SpawnEntity(HumanId, coordinates);
other = entityManager.SpawnEntity(HumanId, coordinates);
container = ContainerManagerComponent.Ensure<Container>("InRangeUnobstructedTestOtherContainer", other);
container = ContainerHelpers.EnsureContainer<Container>(other, "InRangeUnobstructedTestOtherContainer");
component = other.Transform;
entityCoordinates = other.Transform.Coordinates;
mapCoordinates = other.Transform.MapPosition;

View File

@@ -4,7 +4,7 @@ using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Construction;
using Content.Shared.Construction;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
using Robust.Shared.Serialization;
@@ -54,7 +54,7 @@ namespace Content.Server.Construction.Completions
var computer = entityManager.SpawnEntity(boardComponent.Prototype, entity.Transform.Coordinates);
computer.Transform.LocalRotation = entity.Transform.LocalRotation;
var computerContainer = ContainerManagerComponent.Ensure<Container>(Container, computer, out var existed);
var computerContainer = ContainerHelpers.EnsureContainer<Container>(computer, Container, out var existed);
if (existed)
{

View File

@@ -4,7 +4,6 @@ using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Construction;
using Content.Shared.Construction;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
@@ -66,7 +65,7 @@ namespace Content.Server.Construction.Completions
var machine = entityManager.SpawnEntity(boardComponent.Prototype, entity.Transform.Coordinates);
machine.Transform.LocalRotation = entity.Transform.LocalRotation;
var boardContainer = ContainerManagerComponent.Ensure<Container>(MachineFrameComponent.BoardContainer, machine, out var existed);
var boardContainer = ContainerHelpers.EnsureContainer<Container>(machine, MachineFrameComponent.BoardContainer, out var existed);
if (existed)
{
@@ -74,7 +73,7 @@ namespace Content.Server.Construction.Completions
boardContainer.CleanContainer();
}
var partContainer = ContainerManagerComponent.Ensure<Container>(MachineFrameComponent.PartContainer, machine, out existed);
var partContainer = ContainerHelpers.EnsureContainer<Container>(machine, MachineFrameComponent.PartContainer, out existed);
if (existed)
{

View File

@@ -2,7 +2,6 @@
using System.Threading.Tasks;
using Content.Shared.Construction;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;

View File

@@ -3,7 +3,6 @@ using System.Linq;
using System.Threading.Tasks;
using Content.Shared.Construction;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;

View File

@@ -2,7 +2,7 @@
using System.Threading.Tasks;
using Content.Shared.Construction;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;

View File

@@ -13,6 +13,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -40,8 +41,8 @@ namespace Content.Server.GameObjects.Components.Access
{
base.Initialize();
_privilegedIdContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-privilegedId", Owner);
_targetIdContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-targetId", Owner);
_privilegedIdContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-privilegedId");
_targetIdContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-targetId");
Owner.EnsureComponentWarn<AccessReader>();
Owner.EnsureComponentWarn<ServerUserInterfaceComponent>();

View File

@@ -1,4 +1,4 @@
#nullable enable
#nullable enable
using System;
using System.Collections.Generic;
using System.Linq;
@@ -12,6 +12,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces;
using Content.Shared.Utility;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Log;
@@ -49,7 +50,7 @@ namespace Content.Server.GameObjects.Components.ActionBlocking
{
base.Initialize();
Container = ContainerManagerComponent.Ensure<Container>(Name, Owner);
Container = ContainerHelpers.EnsureContainer<Container>(Owner, Name);
Owner.EnsureComponentWarn<HandsComponent>();
}

View File

@@ -11,6 +11,7 @@ using Content.Shared.Utility;
using Robust.Server.Console;
using Robust.Server.GameObjects;
using Robust.Shared.Console;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Log;
@@ -51,7 +52,7 @@ namespace Content.Server.GameObjects.Components.Body
{
base.Initialize();
_partContainer = ContainerManagerComponent.Ensure<Container>($"{Name}-{nameof(BodyComponent)}", Owner);
_partContainer = ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-{nameof(BodyComponent)}");
foreach (var (slot, partId) in PartIds)
{

View File

@@ -14,6 +14,7 @@ using Content.Shared.Utility;
using Robust.Server.Console;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -60,7 +61,7 @@ namespace Content.Server.GameObjects.Components.Body.Part
{
base.Initialize();
_mechanismContainer = ContainerManagerComponent.Ensure<Container>($"{Name}-{nameof(BodyPartComponent)}", Owner);
_mechanismContainer = ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-{nameof(BodyPartComponent)}");
// This is ran in Startup as entities spawned in Initialize
// are not synced to the client since they are assumed to be

View File

@@ -17,6 +17,7 @@ using Content.Shared.Utility;
using Content.Shared.GameObjects.Verbs;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.ViewVariables;
@@ -58,7 +59,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
}
_beakerContainer =
ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-reagentContainerContainer", Owner);
ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-reagentContainerContainer");
//BufferSolution = Owner.BufferSolution
BufferSolution.RemoveAllSolution();
@@ -185,7 +186,11 @@ namespace Content.Server.GameObjects.Components.Chemistry
return;
var beaker = _beakerContainer.ContainedEntity;
_beakerContainer.Remove(_beakerContainer.ContainedEntity);
if(beaker is null)
return;
_beakerContainer.Remove(beaker);
UpdateUserInterface();
if(!user.TryGetComponent<HandsComponent>(out var hands) || !beaker.TryGetComponent<ItemComponent>(out var item))
@@ -198,6 +203,10 @@ namespace Content.Server.GameObjects.Components.Chemistry
{
if (!HasBeaker && _bufferModeTransfer) return;
var beaker = _beakerContainer.ContainedEntity;
if(beaker is null)
return;
var beakerSolution = beaker.GetComponent<SolutionContainerComponent>();
if (isBuffer)
{

View File

@@ -18,6 +18,7 @@ using Content.Shared.GameObjects.Verbs;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -47,7 +48,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
[ViewVariables] private bool HasBeaker => _beakerContainer.ContainedEntity != null;
[ViewVariables] private ReagentUnit _dispenseAmount = ReagentUnit.New(10);
[UsedImplicitly] [ViewVariables] private SolutionContainerComponent? Solution => _beakerContainer.ContainedEntity.GetComponent<SolutionContainerComponent>();
[UsedImplicitly] [ViewVariables] private SolutionContainerComponent? Solution => _beakerContainer.ContainedEntity?.GetComponent<SolutionContainerComponent>();
[ViewVariables] private bool Powered => !Owner.TryGetComponent(out PowerReceiverComponent? receiver) || receiver.Powered;
@@ -78,7 +79,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
}
_beakerContainer =
ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-reagentContainerContainer", Owner);
ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-reagentContainerContainer");
InitializeFromPrototype();
UpdateUserInterface();
@@ -246,7 +247,10 @@ namespace Content.Server.GameObjects.Components.Chemistry
return;
var beaker = _beakerContainer.ContainedEntity;
_beakerContainer.Remove(_beakerContainer.ContainedEntity);
if(beaker is null)
return;
_beakerContainer.Remove(beaker);
UpdateUserInterface();
if(!user.TryGetComponent<HandsComponent>(out var hands) || !beaker.TryGetComponent<ItemComponent>(out var item))
@@ -261,7 +265,10 @@ namespace Content.Server.GameObjects.Components.Chemistry
private void TryClear()
{
if (!HasBeaker) return;
var solution = _beakerContainer.ContainedEntity.GetComponent<SolutionContainerComponent>();
var solution = _beakerContainer.ContainedEntity?.GetComponent<SolutionContainerComponent>();
if(solution is null)
return;
solution.RemoveAllSolution();
UpdateUserInterface();
@@ -275,7 +282,10 @@ namespace Content.Server.GameObjects.Components.Chemistry
{
if (!HasBeaker) return;
var solution = _beakerContainer.ContainedEntity.GetComponent<SolutionContainerComponent>();
var solution = _beakerContainer.ContainedEntity?.GetComponent<SolutionContainerComponent>();
if (solution is null)
return;
solution.TryAddReagent(Inventory[dispenseIndex].ID, _dispenseAmount, out _);
UpdateUserInterface();

View File

@@ -2,6 +2,7 @@ using Content.Server.GameObjects.Components.Construction;
using Content.Server.GameObjects.Components.Power.ApcNetComponents;
using Content.Shared.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
using Robust.Shared.Serialization;
@@ -71,7 +72,7 @@ namespace Content.Server.GameObjects.Components
if (string.IsNullOrEmpty(_boardPrototype))
return;
var container = ContainerManagerComponent.Ensure<Container>("board", Owner, out var existed);
var container = ContainerHelpers.EnsureContainer<Container>(Owner, "board", out var existed);
if (existed)
{

View File

@@ -11,7 +11,7 @@ using Content.Shared.Construction;
using Content.Shared.GameObjects.Components.Interactable;
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -286,7 +286,7 @@ namespace Content.Server.GameObjects.Components.Construction
else
{
_containers.Add(insertStep.Store);
var container = ContainerManagerComponent.Ensure<Container>(insertStep.Store, Owner);
var container = ContainerHelpers.EnsureContainer<Container>(Owner, insertStep.Store);
container.Insert(entityUsing);
}
@@ -425,7 +425,7 @@ namespace Content.Server.GameObjects.Components.Construction
{
foreach (var container in _containers)
{
var otherContainer = ContainerManagerComponent.Ensure<Container>(container, entity);
var otherContainer = ContainerHelpers.EnsureContainer<Container>(entity, container);
var ourContainer = containerComp.GetContainer(container);
foreach (var ent in ourContainer.ContainedEntities.ToArray())

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using Content.Server.Construction;
using Content.Server.Interfaces.GameObjects;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
@@ -28,8 +29,8 @@ namespace Content.Server.GameObjects.Components.Construction
{
base.Initialize();
_boardContainer = ContainerManagerComponent.Ensure<Container>(MachineFrameComponent.BoardContainer, Owner);
_partContainer = ContainerManagerComponent.Ensure<Container>(MachineFrameComponent.PartContainer, Owner);
_boardContainer = ContainerHelpers.EnsureContainer<Container>(Owner, MachineFrameComponent.BoardContainer);
_partContainer = ContainerHelpers.EnsureContainer<Container>(Owner, MachineFrameComponent.PartContainer);
}
protected override void Startup()
@@ -59,8 +60,8 @@ namespace Content.Server.GameObjects.Components.Construction
public void CreateBoardAndStockParts()
{
// Entity might not be initialized yet.
var boardContainer = ContainerManagerComponent.Ensure<Container>(MachineFrameComponent.BoardContainer, Owner, out var existedBoard);
var partContainer = ContainerManagerComponent.Ensure<Container>(MachineFrameComponent.PartContainer, Owner, out var existedParts);
var boardContainer = ContainerHelpers.EnsureContainer<Container>(Owner, MachineFrameComponent.BoardContainer, out var existedBoard);
var partContainer = ContainerHelpers.EnsureContainer<Container>(Owner, MachineFrameComponent.PartContainer, out var existedParts);
if (string.IsNullOrEmpty(BoardPrototype))
return;

View File

@@ -87,8 +87,8 @@ namespace Content.Server.GameObjects.Components.Construction
{
base.Initialize();
_boardContainer = ContainerManagerComponent.Ensure<Container>(BoardContainer, Owner);
_partContainer = ContainerManagerComponent.Ensure<Container>(PartContainer, Owner);
_boardContainer = ContainerHelpers.EnsureContainer<Container>(Owner, BoardContainer);
_partContainer = ContainerHelpers.EnsureContainer<Container>(Owner, PartContainer);
}
protected override void Startup()

View File

@@ -1,6 +1,6 @@
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
namespace Content.Server.GameObjects.Components.ContainerExt
namespace Content.Server.GameObjects
{
public static class ContainerExt
{

View File

@@ -1,6 +1,5 @@
#nullable enable
using Content.Server.GameObjects.EntitySystems;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;

View File

@@ -6,7 +6,6 @@ using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.Interfaces;
using Content.Shared.Atmos;
using Content.Shared.GameObjects.Components.Body;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;
@@ -64,7 +63,7 @@ namespace Content.Server.GameObjects.Components.Disposal
{
base.Initialize();
_contents = ContainerManagerComponent.Ensure<Container>(nameof(DisposalHolderComponent), Owner);
_contents = ContainerHelpers.EnsureContainer<Container>(Owner, nameof(DisposalHolderComponent));
}
public override void OnRemove()

View File

@@ -589,7 +589,7 @@ namespace Content.Server.GameObjects.Components.Disposal
{
base.Initialize();
_container = ContainerManagerComponent.Ensure<Container>(Name, Owner);
_container = ContainerHelpers.EnsureContainer<Container>(Owner, Name);
if (UserInterface != null)
{

View File

@@ -7,6 +7,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces;
using Robust.Server.Console;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -222,7 +223,7 @@ namespace Content.Server.GameObjects.Components.Disposal
{
base.Initialize();
Contents = ContainerManagerComponent.Ensure<Container>(Name, Owner);
Contents = ContainerHelpers.EnsureContainer<Container>(Owner, Name);
Owner.EnsureComponent<AnchorableComponent>();
}

View File

@@ -546,7 +546,7 @@ namespace Content.Server.GameObjects.Components.Disposal
{
base.Initialize();
_container = ContainerManagerComponent.Ensure<Container>(Name, Owner);
_container = ContainerHelpers.EnsureContainer<Container>(Owner, Name);
if (UserInterface != null)
{

View File

@@ -1,5 +1,6 @@
#nullable enable
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;

View File

@@ -10,6 +10,7 @@ using Content.Server.GameObjects.Components.Trigger.TimerTrigger;
using Content.Server.Throw;
using Robust.Server.GameObjects;
using Content.Shared.GameObjects.Components.Explosion;
using Robust.Shared.Containers;
using Robust.Shared.IoC;
using Robust.Shared.Map;
using Robust.Shared.Maths;
@@ -83,7 +84,7 @@ namespace Content.Server.GameObjects.Components.Explosives
{
base.Initialize();
_grenadesContainer = ContainerManagerComponent.Ensure<Container>("cluster-flash", Owner);
_grenadesContainer = ContainerHelpers.EnsureContainer<Container>(Owner, "cluster-flash");
}

View File

@@ -8,6 +8,7 @@ using Content.Shared.GameObjects.Components;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -33,7 +34,7 @@ namespace Content.Server.GameObjects.Components
base.Initialize();
ItemContainer =
ContainerManagerComponent.Ensure<ContainerSlot>("extinguisher_cabinet", Owner, out _);
ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "extinguisher_cabinet", out _);
}
public override void ExposeData(ObjectSerializer serializer)

View File

@@ -457,7 +457,7 @@ namespace Content.Server.GameObjects.Components.GUI
throw new InvalidOperationException($"Hand '{name}' already exists.");
}
var container = ContainerManagerComponent.Create<ContainerSlot>($"hand {_nextHand++}", Owner);
var container = ContainerHelpers.CreateContainer<ContainerSlot>(Owner, $"hand {_nextHand++}");
var hand = new Hand(this, name, container);
_hands.Add(hand);

View File

@@ -1,5 +1,6 @@
using Content.Server.GameObjects.Components.Items.Storage;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefines;

View File

@@ -426,7 +426,7 @@ namespace Content.Server.GameObjects.Components.GUI
Dirty();
_slotContainers[slot] = ContainerManagerComponent.Create<ContainerSlot>(GetSlotString(slot), Owner);
_slotContainers[slot] = ContainerHelpers.CreateContainer<ContainerSlot>(Owner, GetSlotString(slot));
OnItemChanged?.Invoke();

View File

@@ -13,6 +13,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -123,7 +124,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage
public override void Initialize()
{
base.Initialize();
Contents = ContainerManagerComponent.Ensure<Container>(nameof(EntityStorageComponent), Owner);
Contents = ContainerHelpers.EnsureContainer<Container>(Owner, nameof(EntityStorageComponent));
EntityQuery = new IntersectingEntityQuery(Owner);
Contents.ShowContents = _showContents;

View File

@@ -3,7 +3,7 @@ using Content.Server.GameObjects.Components.GUI;
using Content.Server.Interfaces.GameObjects.Components.Items;
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -29,7 +29,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage
public override void Initialize()
{
base.Initialize();
_itemContainer = ContainerManagerComponent.Ensure<ContainerSlot>("stash", Owner, out _);
_itemContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "stash", out _);
}
public override void ExposeData(ObjectSerializer serializer)
{

View File

@@ -16,6 +16,7 @@ using Content.Shared.Utility;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.Enums;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
@@ -350,7 +351,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage
base.Initialize();
// ReSharper disable once StringLiteralTypo
_storage = ContainerManagerComponent.Ensure<Container>("storagebase", Owner);
_storage = ContainerHelpers.EnsureContainer<Container>(Owner, "storagebase");
_storage.OccludesLight = _occludesLight;
}

View File

@@ -4,6 +4,7 @@ using System.Collections.Generic;
using Content.Shared.GameObjects.Components;
using Content.Shared.GameObjects.Components.Tag;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
using Robust.Shared.Serialization;

View File

@@ -22,6 +22,7 @@ using Content.Shared.Kitchen;
using Content.Shared.Prototypes.Kitchen;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -83,7 +84,7 @@ namespace Content.Server.GameObjects.Components.Kitchen
Owner.EnsureComponent<SolutionContainerComponent>();
_storage = ContainerManagerComponent.Ensure<Container>("microwave_entity_container", Owner, out var existed);
_storage = ContainerHelpers.EnsureContainer<Container>(Owner, "microwave_entity_container", out var existed);
_audioSystem = EntitySystem.Get<AudioSystem>();
if (UserInterface != null)

View File

@@ -16,6 +16,7 @@ using Content.Shared.Kitchen;
using Content.Shared.Utility;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -78,11 +79,11 @@ namespace Content.Server.GameObjects.Components.Kitchen
base.Initialize();
//A slot for the beaker where the grounds/juices will go.
_beakerContainer =
ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-reagentContainerContainer", Owner);
ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-reagentContainerContainer");
//A container for the things that WILL be ground/juiced. Useful for ejecting them instead of deleting them from the hands of the user.
_chamber =
ContainerManagerComponent.Ensure<Container>($"{Name}-entityContainerContainer", Owner);
ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-entityContainerContainer");
if (UserInterface != null)
{
@@ -242,7 +243,11 @@ namespace Content.Server.GameObjects.Components.Kitchen
if (!HasBeaker || _heldBeaker == null || _busy)
return;
_beakerContainer.Remove(_beakerContainer.ContainedEntity);
var beaker = _beakerContainer.ContainedEntity;
if(beaker is null)
return;
_beakerContainer.Remove(beaker);
if (user == null || !user.TryGetComponent<HandsComponent>(out var hands) || !_heldBeaker.Owner.TryGetComponent<ItemComponent>(out var item))
return;

View File

@@ -14,6 +14,7 @@ using Content.Shared.Interfaces.GameObjects.Components;
using Content.Shared.Preferences;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
@@ -59,7 +60,7 @@ namespace Content.Server.GameObjects.Components.Medical
UserInterface.OnReceiveMessage += OnUiReceiveMessage;
}
_bodyContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-bodyContainer", Owner);
_bodyContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-bodyContainer");
//TODO: write this so that it checks for a change in power events for GORE POD cases
var newState = GetUserInterfaceState();

View File

@@ -14,6 +14,7 @@ using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -52,7 +53,7 @@ namespace Content.Server.GameObjects.Components.Medical
UserInterface.OnReceiveMessage += OnUiReceiveMessage;
}
_bodyContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-bodyContainer", Owner);
_bodyContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-bodyContainer");
// TODO: write this so that it checks for a change in power events and acts accordingly.
var newState = GetUserInterfaceState();

View File

@@ -1,4 +1,4 @@
#nullable enable
#nullable enable
using Content.Server.GameObjects.Components.GUI;
using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.GameObjects.Components.Paper;
@@ -17,6 +17,7 @@ using Robust.Shared.Utility;
using Robust.Shared.ViewVariables;
using System.Threading.Tasks;
using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Robust.Shared.Containers;
namespace Content.Server.GameObjects.Components.Morgue
{
@@ -37,7 +38,7 @@ namespace Content.Server.GameObjects.Components.Morgue
{
base.Initialize();
_appearance?.SetData(BodyBagVisuals.Label, false);
LabelContainer = ContainerManagerComponent.Ensure<ContainerSlot>("body_bag_label", Owner, out _);
LabelContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "body_bag_label", out _);
}
protected override bool AddToContents(IEntity entity)
@@ -83,14 +84,18 @@ namespace Content.Server.GameObjects.Components.Morgue
{
if (LabelContainer == null) return;
var ent = LabelContainer.ContainedEntity;
if(ent is null)
return;
if (user.TryGetComponent(out HandsComponent? hands))
{
hands.PutInHandOrDrop(LabelContainer.ContainedEntity.GetComponent<ItemComponent>());
hands.PutInHandOrDrop(ent.GetComponent<ItemComponent>());
_appearance?.SetData(BodyBagVisuals.Label, false);
}
else if (LabelContainer.Remove(LabelContainer.ContainedEntity))
else if (LabelContainer.Remove(ent))
{
LabelContainer.ContainedEntity.Transform.Coordinates = Owner.Transform.Coordinates;
ent.Transform.Coordinates = Owner.Transform.Coordinates;
_appearance?.SetData(BodyBagVisuals.Label, false);
}
}

View File

@@ -9,6 +9,7 @@ using Content.Shared.Interfaces.GameObjects.Components;
using Content.Shared.Physics;
using Content.Shared.Utility;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Maths;
@@ -46,7 +47,7 @@ namespace Content.Server.GameObjects.Components.Morgue
{
base.Initialize();
Appearance?.SetData(MorgueVisuals.Open, false);
TrayContainer = ContainerManagerComponent.Ensure<ContainerSlot>("morgue_tray", Owner, out _);
TrayContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "morgue_tray", out _);
}
/// <inheritdoc />

View File

@@ -19,6 +19,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -72,8 +73,8 @@ namespace Content.Server.GameObjects.Components.PDA
public override void Initialize()
{
base.Initialize();
_idSlot = ContainerManagerComponent.Ensure<ContainerSlot>("pda_entity_container", Owner);
_penSlot = ContainerManagerComponent.Ensure<ContainerSlot>("pda_pen_slot", Owner);
_idSlot = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "pda_entity_container");
_penSlot = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "pda_pen_slot");
if (UserInterface != null)
{

View File

@@ -15,6 +15,7 @@ using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.ViewVariables;
@@ -56,7 +57,7 @@ namespace Content.Server.GameObjects.Components.Power.AME
_injecting = false;
InjectionAmount = 2;
_jarSlot = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-fuelJarContainer", Owner);
_jarSlot = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-fuelJarContainer");
}
public override void HandleMessage(ComponentMessage message, IComponent? component)
@@ -84,7 +85,11 @@ namespace Content.Server.GameObjects.Components.Power.AME
return;
}
_jarSlot.ContainedEntity.TryGetComponent<AMEFuelContainerComponent>(out var fuelJar);
var jar = _jarSlot.ContainedEntity;
if(jar is null)
return;
jar.TryGetComponent<AMEFuelContainerComponent>(out var fuelJar);
if(fuelJar != null && _powerSupplier != null)
{
var availableInject = fuelJar.FuelAmount >= InjectionAmount ? InjectionAmount : fuelJar.FuelAmount;
@@ -222,7 +227,10 @@ namespace Content.Server.GameObjects.Components.Power.AME
return;
var jar = _jarSlot.ContainedEntity;
_jarSlot.Remove(_jarSlot.ContainedEntity);
if(jar is null)
return;
_jarSlot.Remove(jar);
UpdateUserInterface();
if (!user.TryGetComponent<HandsComponent>(out var hands) || !jar.TryGetComponent<ItemComponent>(out var item))

View File

@@ -10,6 +10,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -48,7 +49,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece
base.Initialize();
Owner.EnsureComponent<PowerReceiverComponent>();
_container = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-powerCellContainer", Owner);
_container = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-powerCellContainer");
// Default state in the visualizer is OFF, so when this gets powered on during initialization it will generally show empty
}

View File

@@ -15,6 +15,7 @@ using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -219,7 +220,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece
{
base.Initialize();
_lightBulbContainer = ContainerManagerComponent.Ensure<ContainerSlot>("light_bulb", Owner);
_lightBulbContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "light_bulb");
}
public override void HandleMessage(ComponentMessage message, IComponent? component)

View File

@@ -7,6 +7,7 @@ using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Content.Shared.GameObjects.Verbs;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -104,7 +105,7 @@ namespace Content.Server.GameObjects.Components.Power
public override void Initialize()
{
base.Initialize();
_cellContainer = ContainerManagerComponent.Ensure<ContainerSlot>("cellslot_cell_container", Owner, out _);
_cellContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, "cellslot_cell_container", out _);
}
void IExamine.Examine(FormattedMessage message, bool inDetailsRange)

View File

@@ -11,6 +11,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -47,7 +48,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition
public override void Initialize()
{
base.Initialize();
_ammoContainer = ContainerManagerComponent.Ensure<Container>($"{Name}-container", Owner, out var existing);
_ammoContainer = ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-container", out var existing);
if (existing)
{

View File

@@ -9,6 +9,7 @@ using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -62,7 +63,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition
public override void Initialize()
{
base.Initialize();
_ammoContainer = ContainerManagerComponent.Ensure<Container>($"{Name}-magazine", Owner, out var existing);
_ammoContainer = ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-magazine", out var existing);
if (existing)
{

View File

@@ -7,6 +7,7 @@ using Content.Shared.GameObjects.Components.Weapons.Ranged.Barrels;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
@@ -45,7 +46,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition
public override void Initialize()
{
base.Initialize();
_ammoContainer = ContainerManagerComponent.Ensure<Container>($"{Name}-container", Owner, out var existing);
_ammoContainer = ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-container", out var existing);
if (existing)
{

View File

@@ -152,7 +152,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
// TODO: Add existing ammo support on revolvers
base.Initialize();
_spawnedAmmo = new Stack<IEntity>(_capacity - 1);
_ammoContainer = ContainerManagerComponent.Ensure<Container>($"{Name}-ammo-container", Owner, out var existing);
_ammoContainer = ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-ammo-container", out var existing);
if (existing)
{
@@ -163,7 +163,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
}
}
_chamberContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-chamber-container", Owner);
_chamberContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-chamber-container");
if (Owner.TryGetComponent(out AppearanceComponent appearanceComponent))
{

View File

@@ -8,6 +8,7 @@ using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Map;
@@ -105,7 +106,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
base.Initialize();
_ammoContainer =
ContainerManagerComponent.Ensure<Container>($"{Name}-ammo-container", Owner, out var existing);
ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-ammo-container", out var existing);
if (existing)
{
@@ -117,7 +118,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
}
_chamberContainer =
ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-chamber-container", Owner, out existing);
ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-chamber-container", out existing);
if (existing)
{
_unspawnedCount--;

View File

@@ -9,6 +9,7 @@ using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -92,7 +93,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
base.Initialize();
_unspawnedCount = Capacity;
int idx = 0;
_ammoContainer = ContainerManagerComponent.Ensure<Container>($"{Name}-ammoContainer", Owner, out var existing);
_ammoContainer = ContainerHelpers.EnsureContainer<Container>(Owner, $"{Name}-ammoContainer", out var existing);
if (existing)
{
foreach (var entity in _ammoContainer.ContainedEntities)

View File

@@ -13,6 +13,7 @@ using Content.Shared.GameObjects.Verbs;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Localization;
using Robust.Shared.Map;
@@ -102,7 +103,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
public override void Initialize()
{
base.Initialize();
_powerCellContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-powercell-container", Owner, out var existing);
_powerCellContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-powercell-container", out var existing);
if (!existing && _powerCellPrototype != null)
{
var powerCellEntity = Owner.EntityManager.SpawnEntity(_powerCellPrototype, Owner.Transform.Coordinates);
@@ -111,7 +112,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
if (_ammoPrototype != null)
{
_ammoContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-ammo-container", Owner);
_ammoContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-ammo-container");
}
if (Owner.TryGetComponent(out AppearanceComponent appearanceComponent))

View File

@@ -190,8 +190,8 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
_appearanceComponent = appearanceComponent;
}
_chamberContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-chamber", Owner);
_magazineContainer = ContainerManagerComponent.Ensure<ContainerSlot>($"{Name}-magazine", Owner, out var existing);
_chamberContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-chamber");
_magazineContainer = ContainerHelpers.EnsureContainer<ContainerSlot>(Owner, $"{Name}-magazine", out var existing);
if (!existing && _magFillPrototype != null)
{

View File

@@ -1,80 +0,0 @@
using System;
using System.Collections.Generic;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects
{
public class ContainerSlot : BaseContainer
{
[ViewVariables]
public IEntity ContainedEntity
{
get => _containedEntity;
private set
{
_containedEntity = value;
_containedArray[0] = value;
}
}
private readonly IEntity[] _containedArray = new IEntity[1];
private IEntity _containedEntity;
/// <inheritdoc />
public override IReadOnlyList<IEntity> ContainedEntities
{
get
{
if (ContainedEntity == null)
{
return Array.Empty<IEntity>();
}
return _containedArray;
}
}
public ContainerSlot(string id, IContainerManager manager) : base(id, manager)
{
}
/// <inheritdoc />
public override bool CanInsert(IEntity toinsert)
{
if (ContainedEntity != null)
return false;
return base.CanInsert(toinsert);
}
/// <inheritdoc />
public override bool Contains(IEntity contained)
{
if (contained != null && contained == ContainedEntity)
return true;
return false;
}
/// <inheritdoc />
protected override void InternalInsert(IEntity toinsert)
{
ContainedEntity = toinsert;
base.InternalInsert(toinsert);
}
/// <inheritdoc />
protected override void InternalRemove(IEntity toremove)
{
ContainedEntity = null;
base.InternalRemove(toremove);
}
public override void Shutdown()
{
base.Shutdown();
ContainedEntity?.Delete();
}
}
}

View File

@@ -14,7 +14,7 @@ using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Content.Shared.Interfaces;
using Content.Shared.Utility;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
@@ -89,7 +89,7 @@ namespace Content.Server.GameObjects.EntitySystems
private async Task<IEntity?> Construct(IEntity user, string materialContainer, ConstructionGraphPrototype graph, ConstructionGraphEdge edge, ConstructionGraphNode targetNode)
{
// We need a place to hold our construction items!
var container = ContainerManagerComponent.Ensure<Container>(materialContainer, user, out var existed);
var container = ContainerHelpers.EnsureContainer<Container>(user, materialContainer, out var existed);
if (existed)
{
@@ -111,7 +111,7 @@ namespace Content.Server.GameObjects.EntitySystems
while (true)
{
var random = _robustRandom.Next();
var c = ContainerManagerComponent.Ensure<Container>(random.ToString(), user!, out var existed);
var c = ContainerHelpers.EnsureContainer<Container>(user!, random.ToString(), out var existed);
if (existed) continue;
@@ -250,7 +250,7 @@ namespace Content.Server.GameObjects.EntitySystems
// We preserve the containers...
foreach (var (name, cont) in containers)
{
var newCont = ContainerManagerComponent.Ensure<Container>(name, newEntity);
var newCont = ContainerHelpers.EnsureContainer<Container>(newEntity, name);
foreach (var entity in cont.ContainedEntities.ToArray())
{

View File

@@ -12,6 +12,7 @@ using Content.Shared.Interfaces;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Input.Binding;
using Robust.Shared.Localization;

View File

@@ -4,6 +4,7 @@ using Content.Server.GameObjects.EntitySystems.Click;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects.EntitySystems

View File

@@ -6,6 +6,7 @@ using Content.Server.GameObjects.Components.Items.Storage;
using Content.Shared.GameObjects.Components.Items;
using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;

View File

@@ -1,10 +1,10 @@
#nullable enable
using System;
using Content.Server.GameObjects.Components.ContainerExt;
using Content.Server.GameObjects;
using Content.Server.Mobs;
using Content.Server.Objectives.Interfaces;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Log;

View File

@@ -5,6 +5,7 @@ using Content.Shared.GameObjects.Components.Body;
using Content.Shared.GameObjects.Components.Mobs.State;
using Content.Shared.GameObjects.Components.Storage;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Physics;
using Robust.Shared.Serialization;

View File

@@ -2,6 +2,7 @@
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces.GameObjects.Components;
using Content.Shared.Physics;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Map;

View File

@@ -1,6 +1,7 @@
#nullable enable
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Map;

View File

@@ -1993,8 +1993,7 @@ entities:
- powerLoad: 0
type: PowerReceiver
- containers:
light_bulb:
type: Content.Server.GameObjects.ContainerSlot
light_bulb: !type:ContainerSlot {}
type: ContainerContainer
- uid: 238
type: Poweredlight
@@ -2006,8 +2005,7 @@ entities:
- powerLoad: 0
type: PowerReceiver
- containers:
light_bulb:
type: Content.Server.GameObjects.ContainerSlot
light_bulb: !type:ContainerSlot {}
type: ContainerContainer
- uid: 239
type: ApcExtensionCable

File diff suppressed because it is too large Load Diff