private void ThrowItem(EntityUid uid, ThrownItemComponent component, ThrownEvent args)
        {
            if (!EntityManager.TryGetComponent(component.Owner, out FixturesComponent? fixturesComponent) ||
                fixturesComponent.Fixtures.Count != 1)
            {
                return;
            }
            if (!EntityManager.TryGetComponent(component.Owner, out PhysicsComponent? physicsComponent))
            {
                return;
            }

            if (fixturesComponent.Fixtures.ContainsKey(ThrowingFixture))
            {
                Logger.Error($"Found existing throwing fixture on {component.Owner}");
                return;
            }
            var fixture         = fixturesComponent.Fixtures.Values.First();
            var shape           = fixture.Shape;
            var throwingFixture = new Fixture(physicsComponent, shape)
            {
                CollisionMask = (int)CollisionGroup.ThrownItem, Hard = false, ID = ThrowingFixture
            };

            _fixtures.TryCreateFixture(physicsComponent, throwingFixture, manager: fixturesComponent);
        }
        private void ThrowItem(EntityUid uid, ThrownItemComponent component, ThrownEvent args)
        {
            if (!component.Owner.TryGetComponent(out PhysicsComponent? physicsComponent) ||
                physicsComponent.Fixtures.Count != 1)
            {
                return;
            }

            if (physicsComponent.GetFixture(ThrowingFixture) != null)
            {
                Logger.Error($"Found existing throwing fixture on {component.Owner}");
                return;
            }

            var shape = physicsComponent.Fixtures[0].Shape;

            _broadphaseSystem.CreateFixture(physicsComponent, new Fixture(physicsComponent, shape)
            {
                CollisionLayer = (int)CollisionGroup.ThrownItem, Hard = false, ID = ThrowingFixture
            });
        }