using System; using System.Collections.Generic; using Robust.Shared.GameObjects; namespace Robust.Shared.Containers { public abstract class SharedContainerSystem : EntitySystem { /// public override void Initialize() { base.Initialize(); SubscribeLocalEvent(HandleParentChanged); } // Eject entities from their parent container if the parent change is done by the transform only. private static void HandleParentChanged(ref EntParentChangedMessage message) { var oldParentEntity = message.OldParent; if (oldParentEntity == null || !oldParentEntity.IsValid()) return; if (oldParentEntity.TryGetComponent(out IContainerManager? containerManager)) containerManager.ForceRemove(message.Entity); } } }