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); }