fix jetpack popups, minor refactoring (#17289)

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2023-06-13 00:27:05 +00:00
committed by GitHub
parent 7cbf08ea9e
commit 5776512021

View File

@@ -15,12 +15,10 @@ namespace Content.Shared.Movement.Systems;
public abstract class SharedJetpackSystem : EntitySystem public abstract class SharedJetpackSystem : EntitySystem
{ {
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly INetManager _network = default!;
[Dependency] protected readonly MovementSpeedModifierSystem MovementSpeedModifier = default!; [Dependency] protected readonly MovementSpeedModifierSystem MovementSpeedModifier = default!;
[Dependency] protected readonly SharedAppearanceSystem Appearance = default!; [Dependency] protected readonly SharedAppearanceSystem Appearance = default!;
[Dependency] protected readonly SharedContainerSystem Container = default!; [Dependency] protected readonly SharedContainerSystem Container = default!;
[Dependency] private readonly SharedPopupSystem _popups = default!; [Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly SharedMoverController _mover = default!; [Dependency] private readonly SharedMoverController _mover = default!;
public override void Initialize() public override void Initialize()
@@ -49,15 +47,15 @@ public abstract class SharedJetpackSystem : EntitySystem
var gridUid = ev.ChangedGridIndex; var gridUid = ev.ChangedGridIndex;
var jetpackQuery = GetEntityQuery<JetpackComponent>(); var jetpackQuery = GetEntityQuery<JetpackComponent>();
foreach (var (user, transform) in EntityQuery<JetpackUserComponent, TransformComponent>(true)) var query = EntityQueryEnumerator<JetpackUserComponent, TransformComponent>();
while (query.MoveNext(out var uid, out var user, out var transform))
{ {
if (transform.GridUid == gridUid && ev.HasGravity && if (transform.GridUid == gridUid && ev.HasGravity &&
jetpackQuery.TryGetComponent(user.Jetpack, out var jetpack)) jetpackQuery.TryGetComponent(user.Jetpack, out var jetpack))
{ {
if (_timing.IsFirstTimePredicted) _popup.PopupClient(Loc.GetString("jetpack-to-grid"), uid, uid);
_popups.PopupEntity(Loc.GetString("jetpack-to-grid"), user.Jetpack, user.Owner);
SetEnabled(jetpack, false, user.Owner); SetEnabled(jetpack, false, uid);
} }
} }
} }
@@ -93,8 +91,7 @@ public abstract class SharedJetpackSystem : EntitySystem
{ {
SetEnabled(jetpack, false, uid); SetEnabled(jetpack, false, uid);
if (_timing.IsFirstTimePredicted && _network.IsClient) _popup.PopupClient(Loc.GetString("jetpack-to-grid"), uid, uid);
_popups.PopupEntity(Loc.GetString("jetpack-to-grid"), uid, uid);
} }
} }
@@ -118,8 +115,7 @@ public abstract class SharedJetpackSystem : EntitySystem
if (TryComp<TransformComponent>(uid, out var xform) && !CanEnableOnGrid(xform.GridUid)) if (TryComp<TransformComponent>(uid, out var xform) && !CanEnableOnGrid(xform.GridUid))
{ {
if (_timing.IsFirstTimePredicted) _popup.PopupClient(Loc.GetString("jetpack-no-station"), uid, args.Performer);
_popups.PopupEntity(Loc.GetString("jetpack-no-station"), uid, args.Performer);
return; return;
} }