private void OnGravityInit(EntityUid uid, GravityComponent component, ComponentInit args)
        {
            // Incase there's already a generator on the grid we'll just set it now.
            var gridId = Transform(component.Owner).GridUid;

            if (gridId == null)
            {
                return;
            }

            GravityChangedEvent message;

            foreach (var generator in EntityManager.EntityQuery <GravityGeneratorComponent>())
            {
                if (Transform(generator.Owner).GridUid == gridId && generator.GravityActive)
                {
                    component.Enabled = true;
                    message           = new GravityChangedEvent(gridId.Value, true);
                    RaiseLocalEvent(message);
                    return;
                }
            }

            component.Enabled = false;
            message           = new GravityChangedEvent(gridId.Value, false);
            RaiseLocalEvent(message);
        }
    private void OnJetpackUserGravityChanged(GravityChangedEvent ev)
    {
        var gridUid      = ev.ChangedGridIndex;
        var jetpackQuery = GetEntityQuery <JetpackComponent>();

        foreach (var(user, transform) in EntityQuery <JetpackUserComponent, TransformComponent>(true))
        {
            if (transform.GridUid == gridUid && ev.HasGravity &&
                jetpackQuery.TryGetComponent(user.Jetpack, out var jetpack))
            {
                if (_timing.IsFirstTimePredicted)
                {
                    _popups.PopupEntity(Loc.GetString("jetpack-to-grid"), user.Jetpack, Filter.Entities(user.Owner));
                }

                SetEnabled(jetpack, false, user.Owner);
            }
        }
    }
        public void DisableGravity(GravityComponent comp)
        {
            if (!comp.Enabled)
            {
                return;
            }

            comp.Enabled = false;
            Dirty(comp);

            var gridId = Transform(comp.Owner).GridUid;

            if (gridId == null)
            {
                return;
            }

            var message = new GravityChangedEvent(gridId.Value, false);

            RaiseLocalEvent(message);
        }