using Content.Shared.Storage; using Content.Client.Animations; namespace Content.Client.Storage; // TODO kill this is all horrid. public sealed class StorageSystem : EntitySystem { public override void Initialize() { base.Initialize(); SubscribeNetworkEvent(HandleAnimatingInsertingEntities); } /// /// Animate the newly stored entities in flying towards this storage's position /// /// public void HandleAnimatingInsertingEntities(AnimateInsertingEntitiesEvent msg) { if (!TryComp(msg.Storage, out ClientStorageComponent? storage)) return; TryComp(msg.Storage, out TransformComponent? transformComp); for (var i = 0; msg.StoredEntities.Count > i; i++) { var entity = msg.StoredEntities[i]; var initialPosition = msg.EntityPositions[i]; if (EntityManager.EntityExists(entity) && transformComp != null) { ReusableAnimations.AnimateEntityPickup(entity, initialPosition, transformComp.LocalPosition, EntityManager); } } } }